2026 年发布了以下 Databricks SQL 功能和改进。
注释
下面列出的发行日期和内容在多数情况下只对应于 Azure 公有云的实际部署。
本资料提供了 Azure 公共云上 Azure Databricks 服务的演变历程,供参考,但可能与 21Vianet 运营的 Azure 实际部署不一致。
2026 年 2 月
Databricks SQL 版本 2025.40 在 Current 中推出
2026 年 2 月 23 日
Databricks SQL 版本 2025.40 正在逐步部署到 当前 通道。 请参阅 2025.40 中的功能。
Databricks SQL 版本 2025.40 现已在预览版中提供
2026 年 2 月 11 日
Databricks SQL 版本 2025.40 现已在 预览 频道中提供。 查看以下部分,了解新功能、行为更改和 bug 修复。
SQL 脚本现已普遍可用
SQL 脚本 现已正式发布。 使用 SQL 编写过程逻辑,包括条件语句、循环、局部变量和异常处理。
参数标记现在在更多 SQL 上下文中受支持
现在,可以在允许适当类型字面值的任何位置使用命名参数标记(:param)和未命名参数标记(?)。 这包括 DDL 语句,如 CREATE VIEW v AS SELECT ? AS c1,列类型,如 DECIMAL(:p, :s),以及注释,如 COMMENT ON t IS :comment。 这使您能够参数化各种 SQL 语句,而不必将代码暴露于 SQL 注入攻击。 请参阅 参数标记。
IDENTIFIER 子句扩展到更多 SQL 适用范围
该 IDENTIFIER 子句(将字符串转换为 SQL 对象名称)现在几乎在每个允许标识符的上下文中都得到支持。 结合扩展的参数标记和文字串合并支持,您可以将从列别名(AS IDENTIFIER(:name))到列定义(IDENTIFIER(:pk) BIGINT NOT NULL)的所有内容参数化。 请参见 IDENTIFIER 子句。
随处支持的文本字符串合并
顺序字符串字面量,例如 'Hello' ' World',现在在所有允许字符串字面量的上下文中合并为 'Hello World',包括 COMMENT 'This' ' is a ' 'comment'。 请参阅 STRING 类型。
新BITMAP_AND_AGG函数
现在可以使用新的 BITMAP_AND_AGG 函数来补充现有的函数库 BITMAP 。
用于近似去重计数的新 Theta Sketch 函数
新的函数库,使用 Datasketches Theta Sketch 提供近似非重复计数和集合运算,现已推出:
-
theta_sketch_agg聚合函数 -
theta_union_agg聚合函数 -
theta_intersection_agg聚合函数 -
theta_sketch_estimate函数 -
theta_union函数 -
theta_difference函数 -
theta_intersection函数
近似分量的新 KLL 草图函数
现在提供了用于生成用于近似分位计算的 KLL 草图的新函数库:
-
kll_sketch_agg_bigint聚合函数 -
kll_sketch_get_quantile_bigint函数 -
kll_sketch_merge_bigint函数 -
kll_sketch_agg_double聚合函数 -
kll_sketch_get_quantile_double函数 -
kll_sketch_merge_double函数 -
kll_sketch_agg_float聚合函数 -
kll_sketch_get_quantile_float函数 -
kll_sketch_merge_float函数 -
kll_sketch_get_n_bigint函数 -
kll_sketch_get_rank_bigint函数 -
kll_sketch_to_string_bigint函数 -
kll_sketch_get_n_double函数 -
kll_sketch_get_rank_double函数 -
kll_sketch_to_string_double函数 -
kll_sketch_get_n_float函数 -
kll_sketch_get_rank_float函数 -
kll_sketch_to_string_float函数
可以使用 kll_merge_agg_bigint、 kll_merge_agg_double和 kll_merge_agg_float在聚合上下文中合并多个 KLL 草图。
指标视图中的 SQL 窗口函数
现在可以在指标视图中使用 SQL 窗口函数来计算运行总计、排名和其他基于窗口的计算。
指标视图中聚合函数的 FILTER 子句
现在,可以将FILTER子句与度量值聚合函数一起使用,在指标视图中定义每聚合筛选器以引用指标视图度量值。
新的地理空间函数
现已提供以下新的地理空间函数:
-
st_azimuth函数:返回从第一个点到第二个点以弧度为单位的北基方位角[0, 2π)。 -
st_boundary函数:返回输入几何图形的边界。 -
st_closestpoint函数:返回在第一个几何图形上,最接近第二个几何图形的点的 2D 投影。 -
st_geogfromewkt函数:解析地理的扩展著名文本(EWKT)描述。 -
st_geomfromewkt函数:解析几何图形的扩展已知文本(EWKT)描述。
对现有几何和地理函数的 EWKT 输入支持
以下功能现在接受扩展已知文本(EWKT)作为输入:
改进了地理空间函数性能
通过随机空间联接支持改进了空间联接性能。 以下 ST 函数现在具有 Photon 实现:
FSCK REPAIR TABLE 默认包含了元数据修复
FSCK REPAIR TABLE 现在,在检查缺少的数据文件之前包括初始元数据修复步骤,允许它处理具有损坏检查点或无效分区值的表。 此外, dataFilePath 输出架构中的 FSCK REPAIR TABLE DRY RUN 列现在可为 null,以支持数据文件路径不适用的新问题类型。
DESCRIBE TABLE 输出包括一个元数据列
现在 DESCRIBE TABLE [EXTENDED] 的输出在所有表类型中都包括一个 metadata 列。 此列包含在表上定义为 JSON 字符串的语义元数据(显示名称、格式和同义词)。
MERGE、UPDATE 和流式写入操作中保留的 NULL 结构体
NULL 结构现在在 Delta Lake MERGE、UPDATE 以及包含结构类型转换的流式写入操作中保留为 NULL。 以前,NULL 结构扩展为所有字段均设置为 NULL 的结构。
Parquet 文件中的分区列以具体形式生成
分区的 Delta Lake 表现在具体化新写入的 Parquet 数据文件中的分区列。 以前,分区值仅存储在 Delta Lake 事务日志元数据中。 直接读取 Delta Lake 写入的 Parquet 文件的负载在新写入的文件中包含额外的分区列。
时间戳分区值遵循会话时区
现在,时间戳分区值可以通过 spark.sql.session.timeZone 配置进行正确调整。 以前,它们使用 JVM 时区错误地转换为 UTC。
更新时间旅行限制
Azure Databricks 现在阻止时间旅行查询超出所有表的 deletedFileRetentionDuration 阈值。 该 VACUUM 命令忽略保留期参数,但值为 0 小时除外。 不能设置 deletedFileRetentionDuration 大于 logRetentionDuration。
“SHOW TABLES DROPPED” 命令遵循 LIMIT 子句的限制。
SHOW TABLES DROPPED 现在正确地遵守该 LIMIT 条款。