資料與儲存 2026 年 6 月 2 日

2026-06-02 — ClickHouse 26.5 LIMIT 下推 20×、DuckDB-Iceberg 1.5.3 MERGE INTO 與 v3 規格

primary=https://clickhouse.com/blog/clickhouse-release-26-05 primary=https://duckdb.org/2026/05/29/new-iceberg-features.html

ClickHouse 26.5:ORDER BY/GROUP BY 的 LIMIT 下推與 Filesystem 表函式

ClickHouse · 2026-06-01

ClickHouse 26.5 於 2026 年 6 月 1 日釋出,包含 38 項新功能、51 項效能優化與 224 個 bug 修正,本版本效能優化數量為歷史最高。兩項查詢執行優化尤其顯著,在 TPC-H 基準測試中展示出雙位數倍的速度提升。

ORDER BY...LIMIT 下推至 Join 之前

傳統上 ORDER BY ... LIMIT N 在 JOIN 完成後才執行,意味著 JOIN 必須先產出完整的大型結果集再排序截斷。26.5 實作了將 LIMIT 操作推移至 JOIN 之前的優化,讓資料庫在 JOIN 前先縮減每個輸入集的規模。TPC-H scale factor 100 的測試結果:

指標改善幅度
執行速度20.4×
峰值記憶體~175× 減少

GROUP BY...LIMIT(無 ORDER BY)優化

當查詢包含 GROUP BY ... LIMIT N 但沒有 ORDER BY(即不需要特定排序,只需取任意 N 個群組),ClickHouse 現在避免建構不必要的群組。同樣在 TPC-H scale factor 100 上:

指標改善幅度
執行速度11.9×
峰值記憶體~185× 減少

Filesystem 表函式與其他新功能

新的 filesystem() 表函式允許以 SQL 查詢本機檔案系統,列出檔案元資料(路徑、權限、修改時間、檔案大小、內容),不再需要切換至 shell 命令。

其他值得注意的新功能:

  • url_base 設定:搭配 url() 表函式使用相對路徑,避免重複輸入完整 URL
  • 負數 LIMIT BY:從每個群組末尾選取資料列,適合查詢各群組最小值
  • Multi-Path SQL/JSONJSON_VALUE/JSON_QUERY 接受多個路徑,每次解析 JSON 一次即可處理所有路徑
  • 實驗性 Web Terminal:瀏覽器內建的 ClickHouse 互動式用戶端

原始來源:ClickHouse Blog — ClickHouse Release 26.5


DuckDB-Iceberg 1.5.3:MERGE INTO、Schema Evolution 與 Iceberg v3 刪除向量

DuckDB · 2026-05-29

DuckDB 1.5.3 同步更新了 DuckDB-Iceberg 擴充套件,補齊了生產環境 lakehouse 工作負載所需的多項關鍵功能:upsert 操作、DDL schema 變更、高基數分區策略,以及 Iceberg 規格第三版的新特性支援。

MERGE INTO 支援

Iceberg 表現在完整支援 MERGE INTO 語句,允許在沒有主鍵的情況下執行 upsert 操作:依照匹配條件對每一列決定 INSERT、UPDATE 或 DELETE。實作上 DuckDB 將 MERGE 分解為一個讀取-決策-寫入的三階段操作,並利用 Iceberg 的 copy-on-write 語意確保原子性。

Schema Evolution(DDL 操作)

先前版本對 Iceberg 表的 ALTER TABLE 操作支援有限。1.5.3 補全了以下操作:

  • 欄位重新命名(Rename Column)
  • 新增欄位(Add Column)
  • 刪除欄位(Drop Column)
  • 規格版本調整(format-version upgrade)

以上操作均為純 metadata 操作,不觸碰底層 Parquet 資料檔,因此執行速度接近即時。

進階分區策略

新增 bucket(雜湊分桶)與 truncate(前綴截斷)兩種分區轉換(partition transforms),這是 Iceberg 規格中針對高基數欄位(如 UUID、用戶 ID)的官方分區方式。Bucket 分區將值雜湊到 N 個桶中,避免資料傾斜;Truncate 以字串或數字的前 N 個字元/位為分區鍵,適合時間序列 ID。

Iceberg v3 特性

本次更新開始支援 Iceberg v3 規格新增的特性:

  • VARIANT 與 TIMESTAMP_NS 資料型別:支援半結構化資料與奈秒精度時間戳
  • 欄位預設值:新增欄位時可設定預設值,舊資料列讀取時自動套用
  • 二進位刪除向量(Binary Deletion Vectors):相較於 v2 的 Parquet 刪除檔,v3 改用更緊湊的 Roaring Bitmap 二進位格式,大幅降低小批次刪除操作的儲存開銷

原始來源:DuckDB Blog — New DuckDB-Iceberg Features in v1.5.3


End of article
0
Would love your thoughts, please comment.x
()
x