本頁面是指 探索中的
persist_for參數。
persist_for也可做為模型的一部分,詳情請參閱persist_for(適用於模型) 參數說明文件頁面。
persist_for也可用於衍生資料表,詳情請參閱persist_for(適用於衍生資料表) 參數說明文件頁面。
用量
explore: explore_name {
persist_for: "1 hour"
}
|
階層
persist_for |
預設值
模型的 persist_for 設定
接受
字串,包含整數,後接時間範圍 (秒、分鐘或小時)
特別規則
explore 層級的 persist_for 設定會覆寫模型層級的 persist_for 設定
|
定義
如要進行更完善的快取管理,包括將 Looker 快取政策與資料庫的 ETL (擷取、轉換及載入) 程序同步處理,請考慮使用
datagroup和persist_with,詳情請參閱「快取查詢」說明文件頁面。
persist_for 可讓您修改特定探索使用快取查詢結果的時間長度。Looker 的預設快取長度為 1 小時。快取結果會儲存在 Looker 執行個體的加密檔案中。
Looker 的快取機制運作方式如下:使用者執行特定查詢後,系統會快取該查詢的結果。如果再次執行完全相同的查詢 (所有內容都必須相同,包括資料列限制等),且時間間隔少於 persist_for 指定的間隔,系統就會傳回快取結果。否則,系統會對資料庫執行新查詢。
persist_for間隔到期時,系統會從快取中刪除資料。如要瞭解資料在快取中的儲存時間,請參閱「快取查詢」說明文件頁面。
如果同時為探索和其模型設定 persist_for,系統會優先採用探索設定的值,用於以該探索為準的查詢。
在「探索」中,您可以查看查詢是否從快取傳回,也可以強制從資料庫產生新結果。詳情請參閱「快取查詢」說明文件頁面。
範例
將快取長度調整為 2 小時:
explore: my_explore {
persist_for: "2 hours"
}
將快取長度調整為 30 分鐘:
explore: my_explore {
persist_for: "30 minutes"
}
關閉快取功能,讓使用者永遠不會收到查詢的快取結果:
explore: my_explore {
persist_for: "0 seconds"
}
注意事項
如果 persist_for 設為 0 seconds,使用者查詢時就不會從快取擷取資料。不過,Looker 需要磁碟快取進行內部程序,因此即使 persist_for 設為 0 seconds,加密資料仍會寫入快取。資料寫入快取後,系統會標記要刪除的資料,但這些資料最多可能在磁碟上保留 10 分鐘。詳情請參閱「快取查詢」說明文件頁面。
persist_for 不一定與資料匯入作業一致
許多公司每天都會將資料匯入分析資料庫。有時,他們會認為資料不會持續更新,因此執行新查詢沒有意義,所以將快取長度設為 24 小時 (如 persist_for: 24 hours)。不過,這樣做無法避免使用者取得比最近一次重新整理還舊的資料。
舉例來說,假設您在 1 月 1 日中午執行查詢,1 月 2 日上午匯入新資料,然後在 1 月 2 日中午再次執行查詢。由於查詢是在 persist_for 指定的 24 小時時間範圍內執行,因此即使 1 月 2 日載入了新資料,系統仍會傳回 1 月 1 日的資料。
如要讓快取與資料匯入作業保持一致,請使用資料群組和
persist_with,詳情請參閱查詢快取說明文件。
系統會快取已排定 Look 的結果
排定的 Look 執行時,系統會建立快取結果集,與使用者執行查詢時相同。如要預先快取特定 Look,請考慮儲存並排定該 Look。