Databricks SQL 发行说明 2026

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

2026 年 5 月

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

2026 年 5 月 26 日

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

XPath 不再提取外部 DTD

通过 XML 计算 xpath 时,Azure Databricks不再加载文档中声明的外部文档类型定义(DTD)。 以前,当 XML 包含指向格式不正确的 URL 或无法访问的终结点的外部 DTD 引用时,XPath 可能会失败。 由于 DTD 验证独立于 XPath 评估,因此已成功的查询将返回与之前相同的结果。 以前仅在外部 DTD 检索期间失败的查询现在可以成功。

具有架构演变的 NULL 结构保留、 INSERTMERGE 和流式写入

INSERT对于MERGE使用架构演变的流式处理写入,源中的 NULL 结构现在存储在目标中为 NULL。 以前,该值被错误地具体化为非 null 结构,每个字段都设置为 NULL,而没有架构演变的相同操作会正确保留 NULL 结构。 如果代码依赖于接收字段均为 NULL 的非 null 结构,请更新代码以处理 NULL 结构。

Delta 表中的 NullType (VOID) 支持

Delta Lake 表现在支持 VOID 列。 以前, VOID 基于路径的数据帧读取和时间旅行查询会以无提示方式跳过列。 这些查询现在包括 VOID 输出中的列。 写入不受影响。 有关 VOID 类型 的限制及 VOID 列在架构中出现的位置,请参阅相关文档。

检查所有从具有 VOID 列的 Delta Lake 表读取数据的查询,以验证它们是否能正确处理新增列。 依赖于列计数或位置的查询(例如 INSERT INTO ... SELECT *,升级后可能开始失败)。 具体而言,启用了INSERT的某些查询可能会以无提示方式将数据转移到错误的列中。

SHOW CREATE TABLE 支持指标视图

SHOW CREATE TABLE 现在支持指标视图。 以前,在指标视图上运行此命令会引发错误。 指标视图的输出包含目录(例如 CREATE VIEW catalog.db.my_metric_view ...,)完全限定的三部分名称,使在正确的位置重新创建指标视图更容易。

修复了 LEFT OUTER JOIN LATERAL 删除行

现在修复了错误地从 LEFT OUTER JOIN LATERAL 查询中删除行的 bug。 使用此构造的查询现在返回正确的结果。 若要暂时还原到以前的行为,请设置为 spark.databricks.sql.optimizer.lateralJoinPreserveOuterSemantictrue

NATURAL JOIN 尊重不区分大小写的列匹配

NATURAL JOIN现在,spark.sql.caseSensitive设置为false时,正确使用不区分大小写的列匹配(默认情况下)。 之前,NATURAL JOIN 使用区分大小写的比较来识别常见列,导致仅因大小写不同的列(例如,IDid)未被识别为匹配。 这导致 NATURAL JOIN 以无提示方式生成交叉联接结果。 受此 bug 影响的查询现在返回具有正确联接列的正确结果。

Unity 目录中的 SQL UDF 依赖项验证

Unity 目录现在对 SQL 用户定义的函数(UDF)强制实施依赖项验证,以防止绕过访问控制。 以前,通过 REST API 创建的 SQL 函数可以引用用户无权访问的依赖项。 具有无效依赖项配置的 SQL UDF 现在被阻止执行。

针对使用 CRTAS 创建的已分区 Unity 目录表的优化写入

优化写入现在已正确应用于使用 CREATE OR REPLACE TABLE ... AS SELECT (CRTAS) 创建的已分区 Unity 目录表。 以前,新分区 Unity 目录表上的 CRTAS 未应用优化写入,导致每个分区的小型文件数较高。 此修复可能会增加写入延迟。 若要还原到以前的行为,请设置为 spark.databricks.delta.optimizeWrite.UCTableCRTAS.enabledfalse

修复 ESRI 定义的 SRID 102100 的 EPSG 认证机构错误

SRID 102100 的坐标引用系统(CRS)映射现在正确使用 ESRI:102100 ,而不是不正确的 EPSG:102100。 此修补程序可确保地理空间数据由正确的授权机构存储,以增强与其他系统的互操作性。

对临时表的 CREATE OR REPLACE 支持

CREATE OR REPLACE TEMP TABLE 现在支持语法,允许在单个语句中创建或替换 临时表 。 这样就无需显式删除并重新创建临时表。

Delta 表历史记录包括写入选项标志

Delta Lake 表历史记录(DESCRIBE HISTORY)现在在 operationParameters 列中包含用于 WRITEREPLACE TABLE 操作的写入选项标记。 当明确启用以下选项时,它们会在历史记录中以布尔标记的形式显示(仅在 true 时包含):

对于 WRITEREPLACE TABLE 操作:

  • isDynamicPartitionOverwrite:使用动态分区覆盖模式时存在
  • canOverwriteSchema:当启用了架构覆盖(overwriteSchema)时存在
  • canMergeSchema:启用架构合并时存在mergeSchema

对于 REPLACE TABLE 操作:

  • predicate:在使用 replaceWhere 时存在
  • isV1WriterSaveAsTableOverwrite:当替换由 .saveAsTable 覆盖触发时存在

新的地理空间函数

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

增强了对空间联接的支持

ST_DWithin(距离范围内)谓词现已支持用作空间联接的联接条件。 谓词的结合现在有资格进行空间联接,例如 condition AND st_predicate

SQL 编辑器中结果表的原生数据剖析

2026 年 5 月 1 日

现在,您可以在新的 Databricks SQL 编辑器中查看结果表格中各列的分析统计数据。 选择列标题,然后单击 边栏图标。打开选择详细信息 以查看分析统计信息。

2026 年 4 月

agg SQL 函数作为 measure 的同义词

2026 年 4 月 30 日

新的 agg 聚合函数是 度量值的同义词。 在查询agg(measure_column)中的度量值时,使用作为一种较短的替代方法。

Databricks SQL 2026.10 版本正在 Current 渠道中逐步推出

2026 年 4 月 23 日

Databricks SQL 版本 2026.10 正在逐步向 当前 渠道推出。 请参阅 2026.10 中的功能。

2026 年 3 月

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

2026 年 3 月 26 日

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

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

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

关于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 查询。

时间段内窗口度量值 offset

指标视图中的窗口测量支持使用一个offset字段,该字段按固定间隔沿order维度将窗口帧向后或向前偏移。 用于 offset 定义周期内度量值,例如逐年度量值或逐月度量值。 请参阅窗口框架的移动方式offset

trailingleading 窗口度量中包括或排除锚定行

窗口度量的 trailingleading 范围值可接受可选的 inclusiveexclusive 修饰符,用于控制锚定行是否属于滚动窗口。 默认值为 exclusive与以前的行为匹配。 请参阅“包含或排除锚定行”

矢量聚合和标量函数

新的 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 月