persist_for (適用於探索)

本頁面是指 探索中的 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 (擷取、轉換及載入) 程序同步處理,請考慮使用 datagrouppersist_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。