Databricks SQL 2026 年版本說明

以下 Databricks SQL 功能與改進於 2026 年發布。

2026 年 4 月

aggSQL 函式作為measure的同義詞

2026年4月30日

新的 agg 函數是 測度的同義詞。 查詢metric view中的度量時,請使用agg(measure_column)作為較簡短的選擇。

2026 年 3 月

Databricks SQL 2026.10 版本現已提供預覽版

2026年3月26日

Databricks SQL 2026.10 版本現已在 預覽 頻道提供。 請檢閱下一節,以瞭解新功能、行為變更和 Bug 修正。

觀察指標錯誤不再會讓查詢失敗

觀察指標收集過程中的錯誤不再會導致查詢執行失敗。 過去,OBSERVE 子句中的錯誤(如除以零)可能會阻塞或使整個查詢失敗。 現在,查詢成功完成,當你呼叫 observation.get時,錯誤會被觸發。

Unity 目錄 CRTAS 操作的最佳寫入

在分區的 Unity Catalog 資料表上執行 CREATE OR REPLACE AS TABLESELECT (CRTAS)操作現在預設會套用最佳化寫入,產生較少但較大的檔案。 要停用,請設 spark.databricks.delta.optimizeWrite.UCTableCRTAS.enabledfalse

時間戳分區值使用會話時區

時間戳分區值現在使用 SQL 倉庫會話時區。 如果你在 Databricks SQL 2025.40 版本之前寫入的時間戳分割區,請先執行 SHOW PARTITIONS 分割區元資料驗證,再寫入新資料。

描述流程保留關鍵字

DESCRIBE FLOW現在這個指令已經可用了。 如果你有一個名為 flow的表格,請使用 DESCRIBE schema.flowDESCRIBE TABLE flow,或 DESCRIBE `flow` 反引號。

SpatialSQL 布林集合運算

ST_DifferenceST_IntersectionST_Union使用具有以下改進的新實作:

  • 有效的輸入幾何形狀總是會產生結果,且不再產生錯誤。 無效輸入不會產生錯誤,但可能不會產生有效的結果。
  • 效能大約快了兩倍。
  • 線段交叉點在小數點數第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 引擎上執行,以提升解析多種格式時間戳記的效能。 有關Datetime模式格式的資訊,請參見 Datetime模式

max_by與min_by,並有可選的限制

聚合函數max_by,min_by現在接受一個可選的第三參數limit(最多100,000個)。 提供時,函式會回傳一個最多 limit 對應排序表達式最大(或最小)值的陣列,簡化了上 K 與下 K 查詢,無需視窗函數或 CTE。

向量聚合函數與純量函數

新的 SQL 函式可在嵌入和相似度工作負載中運行於ARRAY<FLOAT>向量。

彙總函式:

  • vector_avg:回傳群中向量的元素平均值。
  • vector_sum:回傳群中向量的元素總和。

純量函數:

參見 內建功能

複合語句中的 SQL 游標支援

SQL 腳本複合語句現在支援游標處理。 使用 DECLARE CURSOR 定義游標,接著使用 OPEN 陳述式FETCH 陳述式CLOSE 陳述式 ,依序執行查詢並消耗列。 游標可以使用參數標記和條件處理程式,例如 NOT FOUND 進行逐行處理。

近似頂K素描函數

新功能可建立並結合分布式近似 top-K 草圖以進行 top-K 聚合:

欲了解更多資訊,請參閱 approx_top_k 彙總函數內建函數

元組草圖函數

新的元組草圖彙總與標量函數支援在鍵彙總對上的獨立計數與聚合。

彙總函式:

純量函數:

參見 內建功能

Unity Catalog Python UDTFs 的自訂相依性

Unity Catalog 的 Python 使用者自訂表格函式(UDTF)現在可以為外部函式庫使用自訂相依性,因此你可以使用超越預設 SQL 倉庫環境中可用的套件。 請參閱 使用自訂相依性擴充 UDF

新的地理空間函數

以下地理空間函數現已可用:

光子對地理空間函數的支援

以下地理空間函數現已在 Photon 引擎上運行,以提升效能:

2026年2月

Databricks SQL 2025.40 版本正在目前推出

2026年2月23日

Databricks SQL 版本 2025.40 正在推送至 Current 頻道。 詳見 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 上下文

幾乎在所有允許使用識別碼的情境中,現在都支援將字串轉換為 SQL 物件名稱的 IDENTIFIER 子句。 結合擴充參數標記和字串合併支援,你可以參數化從欄位別名(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 函數現已具備光子實作:

FSCK REPAIR TABLE 預設包含元資料修復

FSCK REPAIR TABLE 現在在檢查遺失的資料檔案之前包含一個初步的元資料修復步驟,使其能處理損壞的檢查點或無效的分割區值的資料表。 此外, dataFilePath 輸出結構中的 FSCK REPAIR TABLE DRY RUN 欄位現在可為空,以支援資料檔案路徑不適用的新議題類型。

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 尊重 LIMIT 條款

SHOW TABLES DROPPED 現在正確地遵守該 LIMIT 條款。

2026年1月