Databricks 会自动升级 Unity Catalog 托管表,以使用已正式发布的推荐功能,而无需更改代码或手动执行 ALTER TABLE 语句。 自动升级在启用新功能之前验证客户端是否兼容。
自动升级具有以下优势:
- 减少对工作区中每种表与功能组合的各项兼容性要求进行验证所需的管理负担。 如果你有包含数千个表的目录,这尤其有用。
- 在托管表上自动获取最新的性能和可靠性改进。
- 安全地升级表。 自动升级仅在验证工作负荷兼容性后启用功能。
有关这些功能带来的优势的更多详细信息,请参阅 自动升级:适用于 lakehouse 表的最佳实践功能。
自动升级的工作原理
自动升级监视 Unity 目录托管表访问模式,并使用观察窗口验证访问模式是否兼容,然后再启用任何功能。 在公共预览版中升级的观察时段为 50 天,对于正式版的升级,为 100 天。 请参阅 支持的功能。
自动升级使用无服务器计算在后台对表进行升级。 此过程不收取任何费用。
架构和表
自动升级的行为取决于发布该功能时架构是新的还是已经存在的。 创建新表时,它会从其架构的默认属性继承特征。 下表描述了每个情况:
| Schema | 表 | Behavior |
|---|---|---|
| 新增内容 | 新增内容 | 自动升级在创建时设置架构级默认值,以便表立即继承所有受支持的功能。 |
| 现有 | 新增内容 | 仅当在上一观察窗口中验证的工作负荷访问了架构中的所有表时,自动升级才会启用该功能。 否则,如果单个未经验证的工作负荷访问架构中的任何表,则自动升级将忽略新表。 请参阅 已验证的工作负荷。 |
| 现有 | 现有 | 当以下所有内容均为 true 时,自动升级会启用一项功能:
|
已验证的工作负载
如果工作负载从 Databricks 集群访问该表,且该集群的 Databricks Runtime 版本不低于该功能所需的最低版本,则该工作负载被视为已针对特定功能经过验证。
自动升级会考虑未验证的以下工作负载:
- 外部客户端和第三方服务,如 Flink 或 Presto。 请参阅 Unity 目录集成。
- 提供直接表访问的 Azure Databricks 服务(例如 Zerobus)会绕过标准 Databricks Runtime 的访问模式。 请参阅 Zerobus 引入连接器概述。
如果在观察窗口内,某个架构中的任何表曾被低于该功能最低要求版本的 Databricks Runtime 或外部客户端访问过,自动升级就不会在该架构中的任何表上启用相应功能。
支持的功能
自动升级适用于下表中所述的一部分正式版功能。 功能可用性可能因区域而异。
Important
自动液体聚类分析仅适用于新表。 与其他功能不同,在创建表时默认添加它,并且永远不会应用于现有表。
已正式发布升级的功能
以下功能已正式发布,自动升级将其应用到指定的表类型。 自动升级系统现也已正式可用。
每项功能都会逐步推出,自发布日期开始,并在约六个月内覆盖所有客户。
| 功能 | 表类型 | 最低兼容的 Databricks Runtime 版本 | 它的作用是什么 | 发行日期 |
|---|---|---|---|---|
| 自动液体聚类分析 |
|
15.4 LTS(长期技术支持) | 自动根据经常查询的列组织表数据,以提高查询性能,而无需手动分区。 自动升级不会将此功能应用于现有表。 | 2026 年 5 月 22 日 |
| 检查点 V2 |
|
13.3 LTS | 支持更多并发编写器,并减少大型或频繁更新表的写入冲突。 | 2026 年 5 月 19 日,适用于新架构中的新表 2026 年 7 月 13 日针对现有架构中的所有表 |
| 行跟踪 |
|
14.1 | 维护隐藏行标识符,用于增量处理。 启用行跟踪后,可以使用 自动更改数据馈送 ,而无需进行其他配置。 请参阅 AUTO CDC API。 | 2026 年 7 月 25 日,适用于新模式中的新表 2026 年 7 月 13 日适用于现有架构中的所有表 |
| 目录提交 |
|
16.4 LTS(长期支持版本) | 将提交集中到 Unity Catalog 中,以支持多表事务、改善外部写入的互操作性,并允许跨引擎实施治理策略。 | 2026 年 7 月 13 日 |
| Parquet v2 |
|
18.1 | 使用高级 Parquet 编码、数据页头和 INT64 时间戳来提高查询性能并减少 Delta Lake 表上的存储。 |
2026 年 6 月 25 日 |
公共预览中的升级功能
以下功能通常已正式发布,但其自动升级目前处于公开预览阶段,并且需要注册加入。
仅当你在公共预览版中注册时,自动升级才适用于这些功能,在注册后立即生效:
| 功能 | 表类型 | 最低兼容的 Databricks Runtime 版本 | 它的作用是什么 |
|---|---|---|---|
| 目录提交 |
|
16.4 LTS(长期支持版本) | 将提交集中到 Unity Catalog 中,以支持多表事务、改善外部写入的互操作性,并允许跨引擎实施治理策略。 |
| 列映射 |
|
15.4 LTS(长期技术支持) | 使你无需重写数据即可重命名和删除列。 |
| Parquet v2 |
|
18.1 | 使用高级 Parquet 编码、数据页头和 INT64 时间戳来提高查询性能并减少 Delta Lake 表上的存储。 |
Requirements
- 无服务器计算必须在你的区域中可用。
- 表必须是 Delta Lake 或 Apache Iceberg 格式的 Unity 目录托管表。
观察已启用的功能
要检查自动升级是否已在某张表上启用了某项功能,请在 Catalog Explorer 的SET TBLPROPERTIES选项卡中查找 操作,或使用 DESCRIBE HISTORY <table_name>。 如果自动升级执行了该操作,则用户名字段会显示哈希值而不是用户名,例如 4d137f29-62。 请参阅 什么是目录资源管理器? 和 “查看表历史记录”。
自动升级在新模式中的表上启用功能后,请在 Catalog Explorer 的属性选项卡中查看该模式的默认设置。 例如,启用了行跟踪的架构会显示一个诸如 catalog.schema.enableRowTracking: "true" 这样的属性。 现有架构没有自动升级可观测性属性。
要查看账户范围内的信息,请查询自动升级系统表。 此表记录了自动升级为表添加的每项功能、其添加时间以及受影响的表,以便您审核所有工作区中的升级活动。 请参阅 自动升级系统表参考。
管理推荐功能
管理员可以撤销升级带来的更改,或在单个表上禁用功能。
还原更改
在启用该功能之前,使用 RESTORE 将表的数据和元数据恢复到之前的版本。
RESTORE TABLE <table_name> TO VERSION AS OF <version>;
RESTORE TABLE <table_name> TO TIMESTAMP AS OF <timestamp>;
有关表历史记录和还原的详细信息,请参阅 将表还原到早期状态 。
禁用表的功能
若要关闭单个表上的功能,请执行以下操作:
ALTER TABLE <table_name> DROP FEATURE <feature_name>
手动关闭功能后,自动升级不会再次打开该功能。
局限性
- 通过 Delta Lake Sharing 共享的表(包括 Databricks-to-Open 和 Databricks-to-Databricks)不包括在自动升级范围内。 请参阅 什么是 OpenSharing?。
- 自动升级不具备批量回滚机制,无法在一个账户中的所有表上统一关闭某项功能。 请参阅 “管理自动升级”建议的功能。
- 不支持具体化视图和流式处理表。
- 绕过 Unity Catalog 并通过路径直接访问表的工作负载不会被自动升级跟踪。 如果工作负荷使用基于路径的访问,请联系帐户团队讨论兼容性。
- 外部表不会自动升级。 外部表通常通过文件路径访问,绕过 Unity 目录,Unity 目录无法可靠地跟踪这些访问模式。 请参阅处理外部表。
常见问题解答
以下解答有关自动升级的常见问题。
Unity 目录托管表的自动升级是什么?
请参阅此页面顶部的简介。
自动升级如何检查兼容性?
请参阅 已验证的工作负荷。
自动升级会自动修改我的数据表吗?
Yes. 确认某项功能可安全用于某个表后,Databricks 会通过轻量级后台作业将该功能应用到该表。 你仍然可以针对单个表关闭这些功能。
如果我关闭表上的某项功能,自动升级以后会再次将其开启吗?
No. 关闭由自动升级添加的某项功能后,自动升级不会再为该表启用该功能。
自动升级是否会更改我现有的表?
是的,但只有在观察期确认所有访问过该表的客户端都支持该功能之后才可以。 自动液体聚类分析是例外:它仅适用于新创建的表,从不应用于现有表,因为这样做会更改其现有数据布局。
自动升级与预测优化有何不同?
预测优化通过压缩和真空等操作维护数据布局,并可以选择使用自动液体聚类分析。 自动升级会启用新的表功能,例如行跟踪或检查点 V2。 两者相辅相成:一个确保表得到良好维护,另一个确保表保持最新。 自动液体聚类分析通过自动升级应用于新表。 请参阅 Unity Catalog 托管表的预测性优化。
自动升级如何验证表是否可安全升级?
自动升级仅启用通常可用的功能,这些功能不会大幅降低性能或提高成本。 自动升级会在观察窗口期内等待,要求所有访问该表的客户端都兼容,跳过其无法完全验证的表,并允许你随时关闭表上的任何功能。
如果我的表已更改,如何判断它是自动升级?
自动升级所做的每一项更改都会显示在表的输出和目录资源管理器的DESCRIBE HISTORY“历史记录”选项卡中,这与你自己的更改明显不同。 若要查看整个账户范围内的情况,请查询 system.storage.table_auto_upgrade_operations_history 以了解任一功能何时被添加到任一表中。 请参阅 “查看表历史记录”。
自动升级是否会破坏我的外部工具或开源工具读取的表?
No. 由外部或开源客户端访问的表不在适用范围内。 仅当自动升级可以验证访问表的每个客户端是否支持该功能时,才会执行。
哪些表有资格自动升级?
我的表还要多久才会升级? 何时会看到更改?
自动升级使用观察窗口来捕获不频繁的工作负荷,例如每月批处理作业、季度报告和临时分析,然后再执行操作。 验证表兼容后,不久将通过后台作业应用该功能。 首次推出功能时,在客户和表中逐步推出该功能,因此可能需要大约六个月的时间才能访问具有兼容工作负载的表。
要在 Databricks 中自动启用表功能,我需要做什么?
无需执行任何操作。 自动升级会评估和升级符合条件的表,而无需配置。
是否可以关闭整个账户的自动升级,或者针对架构、目录或工作区关闭自动升级?
自动升级不能完全关闭,但可以随时关闭表上的任何单个功能。 执行此操作后,自动升级不会再次针对该表启用该功能。
自动升级是否要花费任何费用?
自动升级过程(后台 ALTER TABLE 操作)不收取任何费用。
通过自动升级提供的功能需要额外付费吗?
通常,从自动升级中排除大幅增加成本的功能。 多个应用的功能,例如删除向量和 Parquet v2,降低了存储和计算成本。 行跟踪会在超大表上增加少量的一次性前期开销,因为它会为每一行分配唯一标识符;但它也能通过启用增量刷新而非全量重算,帮助你降低物化视图的相关开销。
如何跟踪将来通过自动升级推出的功能?
检查 支持的功能 以查看哪些功能为公共预览版,哪些功能将很快向所有客户推出。 若要在新功能发布时获得通知,请在Azure Databricks发行说明页面上设置 RSS 源。 还可以查看即将推出什么?