Delta Lake 的预测优化

重要

此功能目前以公共预览版提供。

预测优化无需手动管理 Azure Databricks 上 Delta 表的维护操作。

启用预测优化后,Azure Databricks 会自动标识受益于维护操作的表,并为用户运行这些表。 维护操作仅在必要时运行,消除了维护操作的非必要运行以及与跟踪和故障诊断性能相关的负担。

预测优化运行哪些操作?

预测优化为已启用的 Delta 表自动运行以下操作:

Operation 说明
OPTIMIZE 通过优化文件大小来提高查询性能。 请参阅在 Delta Lake 上使用 optimize 来压缩数据文件
VACUUM 通过删除表不再引用的数据文件来降低存储成本。 请参阅使用 vacuum 删除未使用的数据文件

注意

使用预测优化执行时,OPTIMIZE 不会运行 ZORDER

警告

VACUUM 命令的保留期由 delta.deletedFileRetentionDuration 表属性确定,默认为 7 天。 这意味着 VACUUM 会删除过去 7 天内 Delta 表版本不再引用的数据文件。 如果要将数据保留更长时间(例如支持在较长保留期间内按时间顺序查看),则必须在启用预测优化之前适当地设置此表属性,如以下示例所示:

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

预测优化在何处运行?

预测优化可识别将从 OPTIMIZEVACUUM 操作中受益的表,并将它们排队以使用作业计算运行。 你的帐户将使用特定于 Databricks 托管服务的 SKU 针对与这些工作负载关联的计算进行付费。 请参阅 Databricks 托管服务的定价。 Azure Databricks 为实现预测优化操作、成本和影响的可观测性提供了系统表。 请参阅使用系统表跟踪预测优化

注意

预测优化不会对使用液体聚类分析的表运行 OPTIMIZE 命令。

预测优化先决条件

必须满足以下要求才能启用预测优化:

  • 你的 Azure Databricks 工作区必须位于支持预测优化的区域中的高级计划中。 请参阅 Azure Databricks 区域

  • 启用预测优化时,必须使用 SQL 仓库或 Databricks Runtime 12.2 LTS 或更高版本。

  • 仅支持 Unity Catalog 托管表。

  • 如果存储帐户需要专用连接,则必须配置无服务器专用连接。 请参阅从无服务器计算配置专用连接

启用预测优化

必须在帐户级别启用预测优化。

必须具有以下特权才能在指定级别启用或禁用预测优化:

Unity Catalog 对象 权限
帐户​​ 帐户管理员
目录 目录所有者
架构 架构所有者

注意

首次启用预测优化时,Azure Databricks 会自动在 Azure Databricks 帐户中创建服务主体。 Azure Databricks 使用此服务主体来执行请求的维护操作。 请参阅管理服务主体

为帐户启用预测优化

帐户管理员必须完成以下步骤才能为帐户中的所有元存储启用预测优化:

  1. 访问帐户控制台。
  2. 导航到“设置”,然后导航到“功能启用”。
  3. 选择“预测优化”旁边的“已启用”

注意

不支持预测优化的区域中的元存储不会被启用。

启用或禁用目录或架构的预测优化

预测优化使用继承模型。 为目录启用预测优化时,架构将继承属性。 已启用架构中的表将继承预测优化。 若要替代此继承行为,可以显式禁用目录或架构的预测优化。

注意

可以先在目录或架构级别禁用预测优化,然后再在帐户级别启用它。 如果稍后在帐户上启用预测优化,系统会针对这些对象中的表阻止它。

使用以下语法启用或禁用预测优化:

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

使用系统表跟踪预测优化

Azure Databricks 提供了一个系统表来跟踪预测优化操作的历史记录。 请参阅预测优化系统表参考

限制

预测优化在所有区域中都不可用。 请参阅 Azure Databricks 区域

预测优化不会对使用液体聚类分析或 Z 顺序的表运行 OPTIMIZE 命令。

预测优化不会对以下表执行维护操作: