共用方式為


對於 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.deletedFileRetentionDurationtable 屬性所決定。 這表示 VACUUM 會移除過去 7 天內 Delta table 版本不再參考的數據檔。 如果您想要將數據保留較長時間(例如支援持續時間較長的時間移動),您必須先適當地 set 此 table 屬性,才能啟用預測優化,如下列範例所示:

ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');

Where 預測優化是否執行?

預測優化識別出 tables 可以從 ANALYZEOPTIMIZEVACUUM 作業中受益,並將其排入佇列,以便使用無伺服器計算執行這些作業。 您的帳戶會使用 Databricks 受控服務專屬的 SKU 來支付與這些工作負載相關聯的計算費用。 請參閱 Databricks 受控服務的定價。 Azure Databricks 提供系統 tables,以觀察預測優化作業、成本和影響。 請參閱 使用系統 tables 來追蹤預測優化

預測優化的必要條件

您必須滿足下列需求,才能啟用預測優化:

啟用預測性優化

您必須在帳戶層級啟用預測優化。

注意

如果您的帳戶是在 2024 年 11 月 11 日之後建立的,則預設會啟用預測性優化。

您必須具備下列許可權,才能在指定的層級啟用或停用預測優化:

Unity Catalog 物件 權限
客戶​​ 帳戶管理員
Catalog Catalog 擁有者
Schema Schema 擁有者

注意

當您第一次啟用預測優化時,Azure Databricks 會自動在 Azure Databricks 帳戶中建立服務主體。 Azure Databricks 會使用此服務主體來執行要求的維護作業。 請參閱管理服務主體

啟用帳戶的預測優化

帳戶管理員必須完成下列步驟,才能為帳戶中的所有 metastores 啟用預測優化:

  1. 存取帳戶主控台。
  2. 流覽至 [設定],然後流覽至 [功能啟用]。
  3. 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執行維護作業:

  • Tables 被載入至工作區作為 Delta Sharing recipients。
  • 外部 tables。
  • 具體化的 views。 請參閱 views中使用具體化
  • 串流 tables。 請參閱在 Databricks SQL中使用串流 載入數據