Delta Lake 的預測優化
重要
這項功能處於公開預覽狀態。
預測優化不需要手動管理 Azure Databricks 上 Delta 數據表的維護作業。
啟用預測優化后,Azure Databricks 會自動識別受益於維護作業的數據表,併為使用者執行這些數據表。 維護作業只會視需要執行,消除維護作業的不必要的執行,以及追蹤和疑難解答效能的相關負擔。
預測優化會執行哪些作業?
預測優化會自動針對已啟用的 Delta 資料表執行下列作業:
作業 | 描述 |
---|---|
OPTIMIZE |
藉由優化檔案大小來改善查詢效能。 請參閱在 Delta Lake 上使用 Optimize 壓縮資料檔案 \(部分機器翻譯\)。 |
VACUUM |
藉由刪除數據表不再參考的數據檔來降低記憶體成本。 請參閱 使用真空移除未使用的數據檔。 |
注意
OPTIMIZE
使用預測性優化執行時不會執行 ZORDER
。
警告
命令的 VACUUM
保留時間範圍取決於 delta.deletedFileRetentionDuration
資料表屬性,預設為7天。 這表示 VACUUM
會移除過去 7 天內 Delta 數據表版本不再參考的數據檔。 如果您想要將數據保留更長的時間(例如支援持續時間較長的時間移動),您必須先適當地設定此資料表屬性,才能啟用預測優化,如下列範例所示:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
預測優化在何處執行?
預測優化可識別受益於 OPTIMIZE
和 VACUUM
作業的數據表,並將其排入佇列,以使用作業計算來執行。 您的帳戶會使用 Databricks 受控服務專屬的 SKU 來支付與這些工作負載相關聯的計算費用。 請參閱 Databricks 受控服務的定價。 Azure Databricks 提供系統數據表,以觀察預測優化作業、成本和影響。 請參閱 使用系統數據表來追蹤預測優化。
注意
預測性優化不會在使用液體群集的數據表上執行 OPTIMIZE
命令。
預測優化的必要條件
您必須滿足下列需求,才能啟用預測優化:
您的 Azure Databricks 工作區必須位於支援預測優化的區域中 進階版 方案上。 請參閱 Azure Databricks 區域。
當您啟用預測優化時,必須使用 SQL 倉儲或 Databricks Runtime 12.2 LTS 或更新版本。
僅支援 Unity 目錄受控數據表。
如果您需要記憶體帳戶的私人連線,則必須設定無伺服器私人連線能力。 請參閱 從無伺服器計算設定私人連線。
啟用預測性優化
您必須在帳戶層級啟用預測優化。
您必須具備下列許可權,才能在指定的層級啟用或停用預測優化:
Unity Catalog 物件 | Privilege |
---|---|
客戶 | 帳戶管理員 |
目錄 | 目錄擁有者 |
結構描述 | 架構擁有者 |
注意
當您第一次啟用預測優化時,Azure Databricks 會自動在 Azure Databricks 帳戶中建立服務主體。 Azure Databricks 會使用此服務主體來執行要求的維護作業。 請參閱管理服務主體。
啟用帳戶的預測優化
帳戶管理員必須完成下列步驟,才能啟用帳戶中所有中繼存放區的預測優化:
- 存取帳戶主控台。
- 流覽至 [設定],然後流覽至 [功能啟用]。
- 選取 [預測性優化] 旁的 [已啟用]。
注意
未啟用不支援預測優化之區域中的中繼存放區。
啟用或停用目錄或架構的預測優化
預測優化會使用繼承模型。 為目錄啟用時,架構會繼承 屬性。 已啟用架構內的數據表會繼承預測優化。 若要覆寫此繼承行為,您可以明確停用目錄或架構的預測優化。
注意
您可以在帳戶層級啟用預測優化之前,先停用類別目錄或架構層級的預測優化。 如果稍後在帳戶上啟用預測優化,則會封鎖這些對象中的數據表。
使用下列語法來啟用或停用預測優化:
ALTER CATALOG [catalog_name] {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
ALTER {SCHEMA | DATABASE} schema_name {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
檢查是否啟用預測性優化
欄位 Predictive Optimization
是 Unity 目錄屬性,可詳細說明是否已啟用預測性優化。 如果預測優化繼承自父物件,則會在域值中指出。
使用下列語法來查看預測優化是否已啟用:
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name
使用系統數據表來追蹤預測優化
Azure Databricks 提供系統數據表來追蹤預測優化作業的歷程記錄。 請參閱 預測優化系統數據表參考。
限制
預測性優化在所有區域中都無法使用。 請參閱 Azure Databricks 區域。
預測性優化不會在使用液體群集或 Z 順序的數據表上執行 OPTIMIZE
命令。
預測性優化不會對下表執行維護作業:
- 載入至工作區做為 Delta Sharing 收件者的數據表。
- 具體化檢視。 請參閱 在 Databricks SQL 中使用具體化檢視。
- 串流數據表。 請參閱 使用 Databricks SQL 中的串流數據表載入數據。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應