Looker Studio 有報表專屬的快取系統。製作專屬廣告活動時 連接器可以導入自訂快取,以加快報表製作速度, 避免年利率限制
例如,假設您正在建立提供歷史天氣資料的連接器 特定郵遞區號最近 7 天的資料你的連接器品質良好 但您擷取資料的外部 API 採用嚴格的頻率 API 只會每天更新資料,因此如特定郵遞區號, 不必在一天內多次擷取相同的資料使用此應用程式 解決方案指南,為每個郵遞區號實作每日快取。
需求條件
- Firebase 即時資料庫。如果沒有存取權,請建立 Google Cloud Platform (GCP) 專案,並追蹤 入門指南:自行建立 Firebase 即時資料庫執行個體。
- 可讀取及寫入 Firebase Realtime 資料的 GCP 服務帳戶 資料庫。
- 可從來源擷取資料的社群連接器。
限制
- 這項解決方案無法與 Looker Studio 進階服務搭配使用。時間 使用 Looker Studio 進階服務,也就是應用程式中的連接器程式碼 指令碼無法存取資料。因此無法快取資料 使用 Apps Script。
- 報表編輯者和檢視者無法重設這個快取。
解決方案
實作服務帳戶
- 在 Google Cloud 專案中建立服務帳戶。
- 請確認這個服務帳戶具備雲端專案中的 BigQuery 存取權。
- 必要的 Identity and Access Management (IAM) 角色:
Firebase Admin
- 必要的 Identity and Access Management (IAM) 角色:
- 下載 JSON 檔案即可取得服務帳戶金鑰。儲存檔案的
資源指令碼屬性中所列的內容。將
金鑰,應在 Apps Script UI 中類似:
- 在您的 Apps Script 專案中加入 Apps Script 的 OAuth2 程式庫。
- 為服務帳戶實作必要的 OAuth2 程式碼:
實作要在 Firebase 中讀取及寫入的程式碼
您將使用 Firebase Database REST API 來讀取和寫入 Firebase 即時資料庫。下列程式碼實作 存取這個 API
實作 getData()
不含快取的現有 getData()
程式碼的結構應如下所示
輸入:
如要在 getData()
程式碼中使用快取,請按照下列步驟操作:
- 判斷「區塊」或「unit」代表應快取的資料
建立一個不重複的鍵,用於在快取中儲存最低資料單位。
實作範例時,使用的是來自configparams
的zipcode
做為鍵
選用:針對每位使用者的快取,請建立含有基準金鑰和 使用者身分。導入範例:
js var baseKey = getBaseKey(request); var userEmail = Session.getEffectiveUser().getEmail(); var hasheduserEmail = getHashedValue(userEmail); var compositeKey = baseKey + hasheduserEmail;
如果有快取資料,請檢查快取是否為最新資料。
在這個範例中,特定郵遞區號的快取資料會與 目前日期。從快取擷取資料時,快取的日期就是 系統會對照目前日期進行檢查var cacheForZipcode = { data: <data being cached>, ymd: <current date in YYYYMMDD format> }
如果快取資料不存在,或是快取資料不是最新資料,請擷取資料 並儲存在快取中
在以下範例中,main.js
包含具有快取的 getData()
程式碼
範例程式碼
其他資源
Chrome 使用者體驗連接器提供約 20 GB BigQuery 的資訊主頁 提供給數千名使用者使用這個連接器使用 Firebase 即時資料庫 以及 Apps Script Cache Service,兩者都適用雙層快取方法。詳情請見 code。