本文介紹雲資料庫ClickHouse26.3 LTS社區相容版的主要變更內容,包括新特性、效能最佳化和改進。
版本概述
阿里雲ClickHouse社區相容版正式發布全新的長期支援版本26.3 LTS。作為繼25.3 LTS之後的又一年度大版本,26.3 LTS聚焦流批一體資料湖、原生倒排索引、高並發寫入穩定性、複雜分析查詢最佳化與開放生態擴充,旨在為您提供更高效、更穩定的即時分析能力。
升級亮點預覽
|
能力方向 |
核心提升 |
典型業務價值 |
|
資料湖生態 |
原生Apache Paimon支援、DataLakeCatalog自動掛載 |
湖倉一體無縫查詢,Flink CDC入湖情境即查即用 |
|
原生倒排索引 |
倒排索引GA,日誌/文本檢索效能提升7~10倍 |
替代外部搜尋引擎,降低儲存與營運成本 |
|
資料湖與OSS加速 |
Parquet頁尾SLRU緩衝、Iceberg中繼資料預取 |
I/O密集型查詢與OSS外部表格掃描2x~5x提速 |
|
複雜查詢最佳化 |
物化CTE、全類型JOIN智能重排序 |
複雜報表與多維分析SQL執行效率顯著提升 |
|
高維資料與寬表TTL |
分桶Map點查提升2~49倍;TTL垂直合并 |
降低點查延遲與後台清理的記憶體開銷 |
|
開放生態 |
31種SQL方言相容 |
跨引擎SQL業務代碼即遷即用 |
資料湖生態重大突破:Apache Paimon與統一Catalog編目
從25.3到26.3 LTS,ClickHouse資料湖分析能力實現了跨越式升級,關鍵能力包括:
-
原生Apache Paimon支援:26.3 LTS提供原生的
paimon表函數與Paimon表引擎(含叢集並行查詢paimonCluster),支援直接對儲存在OSS、S3或HDFS上的Paimon表進行高效唯讀分析,匹配Flink CDC入湖情境。 -
DataLakeCatalog自動化掛載:支援將外部Metastore(如Hive Metastore、AWS Glue、阿里雲DLF等)直接掛載為ClickHouse資料庫。引擎會自動識別Catalog內的Iceberg、Paimon、Delta Lake及Hudi表,無需手動建表即可直接查詢。
-
資料湖查詢多維加速:
-
Parquet頁尾SLRU緩衝:預設啟用
use_parquet_metadata_cache = 1,重複查詢相同Parquet檔案時,I/O讀請求最高可減少50%。 -
Iceberg中繼資料非同步預取:通過
iceberg_metadata_async_prefetch_period_ms在後台保持本地中繼資料新鮮度,擺脫遠程Catalog瓶頸。 -
S3Queue增量高效拉取:有序模式下改用
StartAfter語義,減少ListObjects頻率,降低OSS API成本並縮短延遲。
-
全文檢索索引重磅升級:原生倒排索引生產可用
26.3 LTS的原生倒排索引與全文檢索索引能力正式達到Production-Ready(GA)狀態。
-
效能成倍躍升:在文本模糊比對與關鍵詞檢索情境中,啟用倒排索引後冷查詢效能可提升7~10倍。在典型日誌查詢測試集(如GitHub Events)中,複雜檢索時延從193秒降至0.42秒。
-
無縫相容SQL文法:無需引入外部Elasticsearch或第三方檢索外掛程式,直接通過
INDEX idx_text content TYPE inverted建立索引,即可自動加速HAS()、LIKE / ILIKE以及JSON欄位提取檢索。 -
低存算成本:基於ClickHouse獨特的列存倒排結構,索引體積大幅小於傳統搜尋引擎,極大降低了日誌、Trace與文本分析情境的儲存成本。
計算與最佳化器
物化CTE(MATERIALIZED CTE)
26.3 LTS引入了物化CTE文法。通過MATERIALIZED關鍵字,ClickHouse將CTE的計算結果暫存至臨時記憶體表中,避免冗餘計算,大幅提升複雜報表與多維分析SQL的執行效率。
樣本:
SET enable_materialized_cte = 1;
WITH top_users AS MATERIALIZED (
SELECT user_id, count() AS cnt
FROM events
GROUP BY user_id
ORDER BY cnt DESC
LIMIT 1000
)
SELECT *
FROM top_users
INNER JOIN (SELECT user_id FROM top_users WHERE ...) ON ...;
全類型JOIN智能重排序
26.3 LTS的基於代價的最佳化器(CBO)能力進一步延伸,除了標準的INNER JOIN和LEFT/RIGHT JOIN外,現已全面支援對LEFT ANTI JOIN、SEMI JOIN以及FULL JOIN進行自動Build/Probe側交換。最佳化器會根據表統計資訊,自動將資料量較小的一側構建為Hash Table,有效避免因手動SQL順序不當導致的記憶體溢出(OOM)。
儲存引擎與資料類型
分桶Map(Sharded Map)
針對使用Map類型儲存使用者畫像標籤、動態特徵的情境,26.3 LTS引入了分桶物理序列化布局。通過將Map內部的資料按Key進行Hash分桶儲存,在進行單Key尋找時,查詢效率可提升2~49倍。
樣本:
CREATE TABLE user_profiles (
id UInt64,
attributes Map(String, UInt64)
) ENGINE = MergeTree
ORDER BY id
SETTINGS map_serialization_version = 'with_buckets', max_buckets_in_map = 32;
寬表TTL清理:垂直合并(Vertical Merge)
26.3 LTS正式為TTL DELETE引入了垂直合并演算法:優先對主鍵與TTL列進行合并過濾,無需讀取無關的寬列資料,顯著降低後台清理資料時的I/O與記憶體開銷。
自適應浮點數壓縮演算法(ALP Codec)
全新的浮點數無損壓縮編碼CODEC(ALP, ZSTD)正式上線。ALP(Adaptive Lossless floating-Point)專門針對工業監控、時序指標等情境中的Float32/Float64資料進行了結構化壓縮最佳化,壓縮比與解壓速度均優於經典的Gorilla編碼。
開放生態:跨引擎SQL方言相容(Polyglot)
通過整合開源Polyglot解析庫,26.3 LTS原生支援包含Snowflake、BigQuery、PostgreSQL、Spark、Presto、DuckDB在內的31種外部資料庫SQL方言。使用者只需設定:
SET dialect = 'polyglot', polyglot_dialect = 'snowflake';
即可直接複用現有的SQL業務代碼。
關鍵效能最佳化
查詢執行與最佳化器
-
預設啟用查詢條件緩衝、運算式JIT編譯以及JOIN運行時過濾器,顯著降低重複掃描與大表JOIN開銷。
-
RIGHT / FULL JOIN改用ConcurrentHashJoin,部分情境效能提升最多2倍;新增JOIN順序最佳化,根據統計資訊自動重排多表JOIN。
-
主鍵與分區鍵索引裁剪能力擴充:主鍵支援任意確定性運算式用於資料跳過,分區鍵被確定性函數鏈包裹時仍可分區裁剪。
-
ORDER BY ... LIMIT N查詢可通過跳過索引與動態閾值過濾器顯著減少掃描行數。
儲存引擎與資料跳過
-
預設啟用Parquet reader v3,支援頁級過濾下推與PREWHERE;資料湖讀取按處理線程數自動調整管道,多核機器上提升約40倍。
-
預設啟用讀取期間流式跳過索引過濾;文本索引支援更多謂詞形式並可用於PREWHERE。
-
重度分區裁剪情境下,10K+ part表的SELECT查詢速度提升最多8倍;Iceberg表支援PREWHERE最佳化與非同步中繼資料預取。
分布式與並存執行
-
預設啟用並行分布式INSERT SELECT,在每個分區上獨立執行;分布式IN子查詢自動添加DISTINCT,顯著減少分區間暫存資料表傳輸。
-
分布式索引分析支援SharedMergeTree / 共用儲存情境,可按part數量與索引大小觸發;並行副本支援懶物化並改進負載分配,減少長尾延遲。
函數與索引
-
LIKE / Regex自動重寫為更高效的實現並預設啟用;StringZilla加速大小寫敏感字串搜尋;SIMD動態分發加速邏輯函數與布爾列轉換。
記憶體、可觀測性與網路
-
mark、未壓縮和頁緩衝使用獨立jemalloc arena降低片段,jemalloc髒頁在獨立線程中清理;系統日誌表新增minmax / bloom_filter索引加速排查。
-
分散式查詢中block的序列化與壓縮可卸載到管道線程,提升巨量資料量傳輸效率。
效能基準:ClickBench版本對比
根據官方ClickBench版本基準測試(Cold Queries視角),26.3 LTS相比上一個LTS版本25.3,在綜合效能表現上取得了持續提升:
|
測試維度 |
26.3 LTS相對25.3 LTS提升 |
|
冷查詢綜合時延 |
總體耗時降低8%~15% |
|
資料湖與儲存掃描 |
I/O密集型查詢與OSS外部表格掃描效能2x~5x提速 |
|
寬表TTL整理消耗 |
峰值記憶體佔用下降超過40% |
|
文本/日誌檢索 |
倒排索引加持下,複雜檢索時延從193秒降至0.42秒 |
|
高維Map點查 |
分桶Map單Key尋找效率提升2~49倍 |
實用小功能
26.3 LTS還包含了一系列提升開發與營運體驗的功能:
-
自然排序(naturalSortKey):支援按照人類直覺對包含數位字串排序,例如使
file2.txt正確排在file10.txt前面。 -
樹狀EXPLAIN輸出:執行
EXPLAIN pretty=1, compact=1即可擷取結構清晰、視覺效果佳的執行計畫樹。 -
不可用分區容錯控制:提供
max_skip_unavailable_shards_num與max_skip_unavailable_shards_ratio參數,綁定控制叢集大表查詢時跳過故障節點的比例。
升級建議
升級前準備
-
複製/測試環境驗證:先在複製環境或測試環境部署新版本,評估版本變更對現有配置和查詢的影響。
-
檢查依賴相容性:確認用戶端驅動、第三方工具與新版本的相容性。
重點關注事項
-
實驗性功能驗證:物化CTE及Polyglot方言在目前的版本標註為Experimental,建議在生產環境廣泛應用前先在測試叢集進行業務驗證。
-
效能迴歸測試:升級後對比關鍵查詢的執行時間,確保Parquet緩衝、倒排索引、JOIN重排序等最佳化生效。
-
監控警示調整:根據新增指標和變更調整監控閾值。
總結
ClickHouse 26.3 LTS是一個兼具廣度與深度的年度大版本:
-
在資料湖與開放生態層面,原生Paimon支援與31種SQL方言相容打通了湖倉一體與跨引擎複用的關鍵路徑。
-
在查詢與分析層面,倒排索引GA、物化CTE、JOIN重排序與分桶Map顯著拓展了ClickHouse在日誌檢索、複雜分析和高維點查情境的能力邊界。
-
在穩定性與成本層面,TTL垂直合并與ALP Codec從資料清理到儲存壓縮全方位降低了營運複雜度。
阿里雲ClickHouse團隊已完成社區26.3 LTS版本的雲上適配與全量相容性驗證。您可以在阿里雲ClickHouse控制台快速建立26.3 LTS執行個體或將現有執行個體升級至最新版本,體驗更高效、更穩定的即時分析能力。