通过


Databricks SQL 发行说明 2026

2026 年发布了以下 Databricks SQL 功能和改进。

2026 年 3 月

Databricks SQL 版本 2026.10 现已在预览版中提供

2026 年 3 月 26 日

Databricks SQL 版本 2026.10 现已在 预览 频道中提供。 查看以下部分,了解新功能、行为更改和 bug 修复。

观察指标错误不再导致查询失败

观察指标收集期间的错误不再导致查询执行失败。 以前,OBSERVE 子句中的错误(例如除以零)可能会阻止整个查询或导致其失败。 现在,查询会成功完成,但当你调用observation.get时会引发错误。

MEASURE 聚合函数的 FILTER 子句

MEASURE 聚合函数现在支持 FILTER 子句。 以前,筛选器会被默默忽略。

关于Unity Catalog中CRTAS操作的优化写入

CREATE OR REPLACE TABLE 分区的 Unity 目录表上的 AS SELECT (CRTAS) 操作现在默认应用优化写入,生成较少的较大文件。 若要禁用,请设置为 spark.databricks.delta.optimizeWrite.UCTableCRTAS.enabledfalse.

时间戳分区值使用会话时区

时间戳分区值现在使用 SQL 仓库会话时区。 如果在 Databricks SQL 版本 2025.40 之前写入了时间戳分区,请在写入新数据之前运行 SHOW PARTITIONS 以验证分区元数据。

DESCRIBE FLOW 保留关键字

DESCRIBE FLOW 命令现已可用。 如果有一个名为flow的表,使用DESCRIBE schema.flowDESCRIBE TABLE flowDESCRIBE `flow` 反引号。

SpatialSQL 布尔集操作

ST_DifferenceST_IntersectionST_Union 使用以下改进的新实现:

  • 有效的输入几何图形始终生成结果,不再引发错误。 无效的输入不会引发错误,但可能不会产生有效的结果。
  • 性能快约 2 倍。
  • 由于不同的公式和操作顺序,行段交点在第 15 位小数位之后,结果可能会有所不同。
  • 结果规范化为一致、可比较的输出:
    • 点按坐标值排序。
    • 线串是从最长可能的路径构建的。
    • 多边形环旋转,因此第一个点具有最小的坐标值。
  • 此规范化适用于所有情况,但使用两个非重叠几何图形进行调用 ST_Difference 时除外,其中第一个几何图形返回未修改。

SQLSTATE 的异常类型

异常类型 现在支持 SQLSTATE。 如果代码按字符串匹配分析异常或捕获特定异常类型,请更新错误处理逻辑。

MICROSOFT Azure Synapse 的 DATETIMEOFFSET 数据类型支持

DATETIMEOFFSET 数据类型现在可用于Microsoft Azure Synapse 连接。

Google BigQuery 表注释

Google BigQuery 表描述被解析并显示为表注释。

使用 INSERT 语句的架构演变

WITH SCHEMA EVOLUTION 子句与 SQL INSERT 语句结合使用,在插入作期间自动改进目标表的架构。 支持INSERT INTOINSERT OVERWRITEINSERT INTO ... REPLACE表单的子句。 例如:

INSERT WITH SCHEMA EVOLUTION INTO students TABLE visiting_students_with_additional_id;

目标 Delta Lake 表的架构已更新,以适应源中的其他列或扩展类型。 有关详细信息,请参阅 架构演变INSERT 语句语法

在INSERT操作中保留了NULL结构体的值

INSERT 当源表和目标表具有不同的结构字段顺序时,具有架构演变或隐式强制转换的操作现在会保留 NULL 结构值。

parse_timestamp SQL 函数

parse_timestamp SQL 函数使用多个模式分析时间戳字符串,并在 Photon 引擎上运行,以提高在分析采用多种格式的时间戳时的性能。 有关日期时间模式格式的信息,请参阅< c0>日期时间模式。

具有可选限制的max_by和min_by

聚合函数max_by,min_by现在接受可选的第三个参数limit(最多 100,000 个)。 提供时,这些函数将返回一个包含最多 limit 个值的数组,这些值对应于排序表达式的最大值(或最小值),从而简化无需窗口函数或公共表表达式(CTE)的 top-K 和 bottom-K 查询。

矢量聚合和标量函数

新的 SQL 函数对 ARRAY<FLOAT> 向量进行操作,以用于嵌入和相似性工作负载:

聚合函数:

  • vector_avg:返回组中向量以元素表示的平均值。
  • vector_sum:返回组中矢量的按元素计算的总和。

标量函数:

请参阅 内置函数

复合语句中的 SQL 游标支持

SQL 脚本 复合语句现在支持游标处理。 使用 DECLARE CURSOR 定义游标,然后使用 OPEN 语句FETCH 语句CLOSE 语句 来运行查询,并逐行处理。 游标可以使用参数标记和条件处理器,例如 NOT FOUND,用于逐行处理。

近似 top-k 概略函数

新功能支持构建和组合用于分布式 top-K 聚合的近似 top-K 草图。

有关详细信息,请参阅 approx_top_k 聚合函数内置函数

元组草图函数

元组草图的新聚合和标量函数支持通过键摘要对进行不同的计数和聚合。

聚合函数:

标量函数:

请参阅 内置函数

Unity Catalog Python UDTF 的自定义依赖项

Unity 目录 Python 用户定义的表函数(UDTF)现在可以为外部库使用自定义依赖项,因此可以使用超出默认 SQL 仓库环境中可用包以外的其他包。 请参阅 使用自定义依赖项扩展 UDF

新的地理空间函数

现已提供以下地理空间函数:

Photon 对地理空间函数的支持

以下地理空间函数现在在 Photon 引擎上运行,以提高性能:

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 提供近似非重复计数和集合运算,现已推出:

近似分量的新 KLL 草图函数

现在提供了用于生成用于近似分位计算的 KLL 草图的新函数库:

可以使用 kll_merge_agg_bigintkll_merge_agg_doublekll_merge_agg_float在聚合上下文中合并多个 KLL 草图。

指标视图中的 SQL 窗口函数

现在可以在指标视图中使用 SQL 窗口函数来计算运行总计、排名和其他基于窗口的计算。

新的地理空间函数

现已提供以下新的地理空间函数:

对现有几何和地理函数的 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 MERGEUPDATE 以及包含结构类型转换的流式写入操作中保留为 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 respects LIMIT 条款

SHOW TABLES DROPPED 现在正确地遵守该 LIMIT 条款。

2026 年 1 月