ClickHouse 26.4 發布:COUNT DISTINCT 提速 15 倍、SQL 標準相容性大幅擴充
ClickHouse Blog · 2026-05-08
ClickHouse 26.4 於 2026 年 5 月 8 日發布,帶來 39 項新特性、45 項效能最佳化與 238 個 bug fix。本版本的兩個主軸是 SQL 標準相容性提升與高核心數機器上的 COUNT DISTINCT 加速,後者在部分場景達到 3–15 倍加速比。
效能改進
COUNT DISTINCT 加速依賴 uniqExact 函式的執行期改寫。原有實作在高核心數機器上會生成大量短命執行緒,每次統計都承擔執行緒初始化成本;新實作透過減少執行緒生成次數並改為單次 hash table 合併,在 64 核以上機器上的加速效果最為顯著,實測最高達 15 倍。
文字索引(Text Index)對 LIKE 查詢的加速同樣值得注意:對使用 splitByNonAlpha tokenizer 的 inverted index,LIKE/ILIKE 模式現在可透過字典掃描而非全欄掃描執行,減少約 3 倍的資料處理量。
SQL 標準相容性
- VALUES 作為 Table Expression:允許在 FROM 子句直接使用
VALUES((1,'Alice'),(2,'Bob')) AS t(id, name),支援欄位命名,與 PostgreSQL/DuckDB 語法一致 - EXTRACT 擴充:新增 PostgreSQL 相容的時間單位,包含
EPOCH、DOW、CENTURY、MILLENNIUM - SET TIME ZONE:標準 SQL 語法支援時區設定,補充既有的 ClickHouse 設定方式
- NATURAL JOIN:依同名欄位自動等值連接,無需明確指定 ON 條件
- 複合 INTERVAL 字面量:如
INTERVAL '1 year 2 months 3 days'的標準寫法
EXPLAIN 與 JSON 改進
EXPLAIN PLAN pretty=1 現在以人類可讀格式輸出運算式,並顯示頂層輸出欄位與 JOIN 的 locality 資訊,使查詢計畫分析更直觀。JSONAllValues 函式新增支援,可從 JSON 欄位提取所有 leaf 值,搭配文字索引後可將 JSON 子欄位過濾的掃描量減少約 5 倍。
原始來源:ClickHouse Blog
DuckCon #7 阿姆斯特丹議程公布:Delta Lake 整合、Arrow Flight 與核心優化主題
DuckDB News · 2026-05-08
DuckDB 社群年度聚會 DuckCon #7 將於 2026 年在阿姆斯特丹舉行,官方於 5 月 8 日公布正式議程。本屆聚焦三個技術主軸:Delta Lake 生態系整合的現狀、Arrow Flight 協定支援,以及查詢執行核心的優化進展。
Delta Lake 整合進展
DuckDB 的 Delta 擴充(delta extension)自去年移除實驗標籤後已進入穩定通道,DuckCon #7 將有多個議程深入探討目前的整合狀態:包含 Delta Log 的解析機制、Deletion Vector 支援,以及與 Unity Catalog 的 federation 查詢。Delta 擴充現在可在 DuckDB 內直接讀取 Delta Lake 表格,無需額外的 Spark 或 PySpark 環境。
Arrow Flight 與互通性
Arrow Flight 是 Apache Arrow 定義的高效能資料傳輸協定,以 gRPC 為傳輸層、Arrow IPC 為資料格式。DuckCon 議程包含 DuckDB 作為 Flight 客戶端與伺服器端的雙向整合演示——這意味著 DuckDB 查詢結果可以 Arrow 格式高速串流至 Polars、Ray、cuDF 等下游框架,不需要 CSV/Parquet 的中間序列化步驟。
核心優化
議程同時包含 DuckDB 核心開發團隊對查詢執行引擎的最新優化報告,預計涵蓋向量化執行(vectorized execution)的改進、SIMD 指令集的應用,以及在 Arm/Apple Silicon 平台上的效能調整。DuckDB 0.10 以來的記憶體管理重構也是預告的主題之一,針對大型 join 與 group-by 操作的記憶體溢出策略。
原始來源:DuckDB News