對於 Unity Catalog 管理 tables 的預測優化
注意
針對在 2024 年 11 月 11 日之後建立的所有帳戶,Databricks 預設會啟用預測優化。
預測性優化消除了在 Azure Databricks 上手動管理 Unity Catalog 管理的 tables 維護作業的需要。
啟用預測優化後,Azure Databricks 會自動識別可從維護操作中受益的 tables,並為使用者執行這些操作。 維護作業只會視需要執行,消除了不必要執行維護作業的情況,並且消除了執行追蹤和疑難排解工作所產生的負擔。
重要
預測性優化只會在 Unity Catalog Managed tables上執行。
預測性優化不會在 Databricks SQL 或使用 Delta Live tables 管線所建立的串流 views 或具體化 Tables 上執行。
預測優化會執行哪些作業?
預測性優化會自動針對啟用的 tables執行下列作業:
作業 | 描述 |
---|---|
OPTIMIZE
(1) |
觸發已啟用的增量式叢集 tables。 請參閱 針對 Delta tables使用液體群集。 藉由優化檔案大小來改善查詢效能。 請參閱 Optimize 資料檔設定。 |
VACUUM |
刪除 table不再參考的數據檔,以減少記憶體成本。 請參閱 Remove 的未使用資料檔案與 vacuum。 |
ANALYZE
(2) |
觸發累加 update 統計數據以改善查詢效能。 |
(1)OPTIMIZE
在預測性優化執行時不會執行 ZORDER
。
(2) 的 ANALYZE
預測優化處於公開預覽狀態。 使用此 表單 註冊公開預覽版。 在初始公開預覽期間,ANALYZE
命令可以在 500 tables 或更少的 columns 上執行。
警告
window 命令的保留 VACUUM
是由預設為 7 天的 delta.deletedFileRetentionDuration
table 屬性所決定。 這表示 VACUUM
會移除過去 7 天內 Delta table 版本不再參考的數據檔。 如果您想要將數據保留較長時間(例如支援持續時間較長的時間移動),您必須先適當地 set 此 table 屬性,才能啟用預測優化,如下列範例所示:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
Where 預測優化是否執行?
預測優化識別出 tables 可以從 ANALYZE
、OPTIMIZE
和 VACUUM
作業中受益,並將其排入佇列,以便使用無伺服器計算執行這些作業。 您的帳戶會使用 Databricks 受控服務專屬的 SKU 來支付與這些工作負載相關聯的計算費用。 請參閱 Databricks 受控服務的定價。 Azure Databricks 提供系統 tables,以觀察預測優化作業、成本和影響。 請參閱 使用系統 tables 來追蹤預測優化。
預測優化的必要條件
您必須滿足下列需求,才能啟用預測優化:
您的 Azure Databricks 工作區必須位於 支援預測優化區域的進階方案 上。 請參閱 Azure Databricks 區域。
當您啟用預測優化時,必須使用 SQL 倉儲或 Databricks Runtime 12.2 LTS 或更新版本。
僅支援受控於 Unity Catalog 的 tables。
如果您需要記憶體帳戶的私人連線,則必須設定無伺服器私人連線能力。 請參閱從無伺服器計算設定私人連線能力。
啟用預測性優化
您必須在帳戶層級啟用預測優化。
注意
如果您的帳戶是在 2024 年 11 月 11 日之後建立的,則預設會啟用預測性優化。
您必須具備下列許可權,才能在指定的層級啟用或停用預測優化:
Unity Catalog 物件 | 權限 |
---|---|
客戶 | 帳戶管理員 |
Catalog | Catalog 擁有者 |
Schema | Schema 擁有者 |
注意
當您第一次啟用預測優化時,Azure Databricks 會自動在 Azure Databricks 帳戶中建立服務主體。 Azure Databricks 會使用此服務主體來執行要求的維護作業。 請參閱管理服務主體。
啟用帳戶的預測優化
帳戶管理員必須完成下列步驟,才能為帳戶中的所有 metastores 啟用預測優化:
- 存取帳戶主控台。
- 流覽至 [設定],然後流覽至 [功能啟用]。
- Select 啟用 在 預測優化旁。
注意
在不支持預測優化的區域中,Metastores 未啟用。
啟用或停用 catalog 或 schema 的預測優化功能
預測優化會使用繼承模型。 啟用 catalog後,架構會繼承該屬性。 在啟用的 Tables 內,schema 繼承預測優化。 若要覆蓋此繼承行為,您可以明確停用 catalog 或 schema的預測優化。
注意
您可以在帳戶層級啟用預測優化之前,先停用 catalog 或 schema 層級的預測優化。 如果稍後在帳戶上啟用預測性優化,tables 在這些物件中將被封鎖。
使用下列語法來啟用或停用預測優化:
ALTER CATALOG [catalog_name] {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
ALTER {SCHEMA | DATABASE} schema_name {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
檢查是否啟用預測性優化
[Predictive Optimization
] 字段是 Unity Catalog 屬性,用於指示是否啟用預測性優化。 如果預測優化繼承自父物件,則會在域值中指出。
重要
您必須在帳戶層級啟用預測優化,才能檢視此欄位。
使用下列語法來查看預測優化是否已啟用:
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name
使用系統 tables 來監控預測優化
Azure Databricks 提供系統 table 來追蹤預測優化作業的歷程記錄。 請參閱 預測優化系統 table 參考。
私人連結錯誤訊息
如果系統 table 將作業標示為失敗,加上 FAILED: PRIVATE_LINK_SETUP_ERROR
,您可能尚未正確設定無伺服器計算的專用連線。 請參閱從無伺服器計算設定私人連線能力。
限制
預測性優化在所有區域中都無法使用。 請參閱 Azure Databricks 區域。
預測性優化不會在使用 Z 順序的 OPTIMIZE
上執行 tables 命令。
預測性優化不會在 VACUUM
上執行 tables 作業,且檔案保留期 window 設定在預設值 7 天以下。 請參閱設定時間移動查詢的資料保留。
預測性優化不會對下列 tables執行維護作業: