模型持久化
目前適用於 PostgreSQL、MySQL 和 Redshift。
Metabase 可以持久化模型的結果,讓您的模型 (以及基於這些模型的問題) 載入速度更快。
Metabase 會將模型結果儲存在您的資料倉儲 (而非 Metabase 應用程式資料庫) 中客製化的結構描述中的表格中。當人們提出基於模型的問題時,Metabase 將使用具有儲存結果的表格,而不是重新執行模型的查詢。
模型持久化不適用於資料沙箱。
在 Metabase 中開啟模型持久化
若要持久化模型以加快載入速度,您需要為以下項目開啟模型持久化
為您的 Metabase 開啟模型持久化
若要為您的 Metabase 開啟模型持久化,請前往管理設定 > 效能 > 模型持久化。
您可以設定模型根據預設頻率 (每 1 小時、2 小時等) 重新整理,或選取自訂選項以使用 cron 語法 來指定您自己的更新頻率。
cron 排程器使用報表時區 (如果已選取)。否則,排程器將使用系統時區 (在 Metabase Cloud 中預設為 GMT)。
我們建議您排程模型以與來源表格更新新資料的頻率一致的頻率重新整理。
如果有人變更模型的查詢定義,則基於該模型的任何問題都將重新執行模型的查詢,直到下一次排定的模型重新整理。
為每個資料庫開啟模型持久化
一旦您為 Metabase 開啟模型持久化,您需要為每個特定資料庫設定它,因為 Metabase 將需要在您的資料倉儲中建立結構描述以儲存持久化的模型。
-
前往管理設定 > 資料庫 > [您的資料庫] > 開啟模型持久化。如果您提供給 Metabase 以連線到資料庫的憑證是寬鬆的,Metabase 應該為您完成所有工作:Metabase 將檢查結構描述是否已存在,否則嘗試建立它。如果連線的憑證缺乏在資料庫中建立結構描述的必要權限,您將需要自行在資料庫中建立結構描述。
-
若要手動在您的資料倉儲中建立結構描述,請點擊資訊圖示以取得結構描述名稱。
-
在您的資料庫中建立結構描述—確保您使用步驟 1 中的確切結構描述名稱。例如,如果您以 PostgreSQL 作為您的資料倉儲執行,您將透過執行
CREATE SCHEMA IF NOT EXISTS schema_name
來建立結構描述,其中schema_name
是 Metabase 在資訊圖示中顯示的任何內容。 -
確保 Metabase 用於連線到您的資料倉儲的憑證可以管理和寫入該結構描述。
為個別模型開啟模型持久化
個別模型持久化僅適用於 Pro 和 Enterprise 方案 (自架和 Metabase Cloud 均適用)。
您也可以為個別模型開啟或關閉持久化。在檢視模型時,點擊右上角的 … 並選取編輯設定。將持久化模型資料切換為開啟 (您需要策展存取權才能執行此操作)。
對於資料更新頻率與您為該資料庫中的其他模型設定的排程不同的模型,或者對於在該資料庫中使用頻率高於或低於其他模型的模型,切換個別模型的持久化功能非常有用。
重新整理模型持久化結果
若要重新整理模型的結果,請前往模型並點擊三點選單 (…) 並選取編輯設定。在開啟的資訊側邊欄中,您將看到關於 Metabase 何時上次重新整理模型結果的注意事項,以及重新整理結果的圖示。
檢視模型持久化記錄
您可以透過點擊右上角的齒輪圖示並選取管理設定 > 工具 > 模型快取記錄來檢視模型持久化的記錄。請參閱管理工具。
持久化模型與快取之間的差異
持久化模型與快取結果不同
- 模型持久化在您的資料倉儲中;快取結果儲存在應用程式資料庫中。Metabase 將快取結果儲存在其應用程式資料庫中。Metabase 將模型持久化在您連線的資料倉儲中,作為表格。
- Metabase 重新整理模型結果並使快取結果失效。Metabase 將根據您設定的排程重新整理模型的結果。也就是說,Metabase 將重新執行模型的查詢,並將結果儲存在您的資料倉儲中。對於已儲存問題和儀表板的快取結果,Metabase 不會自動執行查詢;它會在人們檢視問題或儀表板時快取結果,並根據您設定的快取原則使快取結果失效。
延伸閱讀
閱讀其他 Metabase 版本的文件。