This topic describes the major changes in Alibaba Cloud ClickHouse community-compatible edition 26.3 LTS, including new features, performance optimizations, and improvements.
Overview
Alibaba Cloud ClickHouse community-compatible edition releases the new long-term support (LTS) version 26.3. As a major annual release following 25.3 LTS, version 26.3 focuses on unified batch-streaming data lake, native inverted index, high-concurrency write stability, complex query optimization, and open ecosystem extensibility.
Key highlights
|
Category |
Key improvements |
Business value |
|
Data lake ecosystem |
Native Apache Paimon support and DataLakeCatalog auto-mounting |
Seamless lakehouse queries with instant access for Flink CDC ingestion scenarios |
|
Native inverted index |
Inverted index GA with 7x to 10x improvement in log and text search |
Replace external search engines to reduce storage and O&M costs |
|
Data lake and OSS acceleration |
Parquet footer SLRU cache and Iceberg metadata prefetching |
2x to 5x speedup for I/O-intensive queries and OSS external table scans |
|
Complex query optimization |
Materialized CTE and intelligent JOIN reordering for all JOIN types |
Significant improvement in complex reporting and multi-dimensional analysis |
|
High-dimensional data and wide table TTL |
Sharded Map with 2x to 49x point lookup improvement and TTL vertical merge |
Lower point query latency and reduced memory overhead for background cleanup |
|
Open ecosystem |
Compatibility with 31 SQL dialects |
Migrate cross-engine SQL workloads without code changes |
Data lake ecosystem: Apache Paimon and unified Catalog
From 25.3 to 26.3 LTS, ClickHouse data lake analytics capabilities have been significantly upgraded:
-
Native Apache Paimon support: Version 26.3 LTS provides the native
paimontable function and Paimon table engine (including cluster-parallel query throughpaimonCluster). You can perform efficient read-only analytics on Paimon tables stored in OSS, S3, or HDFS, which is ideal for Flink CDC data lake ingestion scenarios. -
DataLakeCatalog auto-mounting: External metastores such as Hive Metastore, AWS Glue, and Alibaba Cloud DLF can be mounted directly as ClickHouse databases. The engine automatically detects Iceberg, Paimon, Delta Lake, and Hudi tables in the catalog without manual table creation.
-
Multi-dimensional data lake query acceleration:
-
Parquet footer SLRU cache: Enabled by default with
use_parquet_metadata_cache = 1. I/O read requests can be reduced by up to 50% for repeated queries on the same Parquet files. -
Iceberg metadata async prefetching: The
iceberg_metadata_async_prefetch_period_msparameter keeps local metadata fresh in the background, eliminating remote catalog bottlenecks. -
S3Queue incremental pull: Ordered mode now uses
StartAftersemantics to reduceListObjectsfrequency, lowering OSS API costs and latency.
-
Full-text search: Native inverted index GA
The native inverted index and full-text search capabilities in 26.3 LTS are now production-ready (GA).
-
Multi-fold performance improvement: In text fuzzy matching and keyword search scenarios, cold query performance improves by 7x to 10x with the inverted index enabled. In the GitHub Events log query benchmark, complex search latency drops from 193 seconds to 0.42 seconds.
-
Seamless SQL compatibility: No external Elasticsearch or third-party search plugins are required. Create an index by using
INDEX idx_text content TYPE invertedto automatically accelerateHAS(),LIKE / ILIKE, and JSON field extraction queries. -
Low storage and compute costs: Based on the column-store inverted index structure of ClickHouse, the index size is much smaller than that of traditional search engines, which significantly reduces storage costs for log, trace, and text analytics scenarios.
Compute and optimizer
Materialized CTE
Version 26.3 LTS introduces the materialized CTE syntax. By using the MATERIALIZED keyword, ClickHouse stores CTE results in a temporary in-memory table to avoid redundant computation and improve the execution efficiency of complex reporting and multi-dimensional analysis SQL queries.
Example:
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 ...;
Intelligent JOIN reordering for all JOIN types
The cost-based optimizer (CBO) in 26.3 LTS now supports automatic Build/Probe side swapping for LEFT ANTI JOIN, SEMI JOIN, and FULL JOIN, in addition to standard INNER JOIN and LEFT/RIGHT JOIN. The optimizer automatically builds the hash table from the smaller side based on table statistics, preventing out-of-memory (OOM) errors caused by improper manual SQL ordering.
Storage engine and data types
Sharded Map
For scenarios where the Map type stores user profile tags and dynamic features, version 26.3 LTS introduces a bucketed physical serialization layout. Single-key lookups improve by 2x to 49x because data within the Map is hash-bucketed by key.
Example:
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;
Wide table TTL cleanup: Vertical merge
Version 26.3 LTS introduces a vertical merge algorithm for TTL DELETE operations. The merge prioritizes primary key and TTL column filtering without reading irrelevant wide columns, which significantly reduces I/O and memory overhead during background data cleanup.
Adaptive lossless floating-point codec (ALP)
A new lossless floating-point compression codec CODEC(ALP, ZSTD) is available. ALP (Adaptive Lossless floating-Point) is optimized for Float32 and Float64 data in industrial monitoring and time-series metrics scenarios, delivering better compression ratios and decompression speed than the classic Gorilla encoding.
Open ecosystem: Cross-engine SQL dialect compatibility (Polyglot)
By integrating the open source Polyglot parsing library, version 26.3 LTS natively supports 31 external database SQL dialects, including Snowflake, BigQuery, PostgreSQL, Spark, Presto, and DuckDB. You only need to configure the following settings:
SET dialect = 'polyglot', polyglot_dialect = 'snowflake';
After that, you can reuse your existing SQL workloads.
Key performance optimizations
Query execution and optimizer
-
Query condition cache, expression JIT compilation, and JOIN runtime filters are enabled by default to reduce repeated scans and large table JOIN overhead.
-
RIGHT JOIN and FULL JOIN use ConcurrentHashJoin, with up to 2x performance improvement in some scenarios. A new JOIN ordering optimization automatically reorders multi-table JOINs based on statistics.
-
Primary key and partition key index pruning is extended: primary keys support arbitrary deterministic expressions for data skipping, and partition keys wrapped in deterministic function chains can still be pruned.
-
ORDER BY ... LIMIT Nqueries can significantly reduce scanned rows through skip indexes and dynamic threshold filters.
Storage engine and data skipping
-
Parquet reader v3 is enabled by default with page-level filter pushdown and PREWHERE support. Data lake reads automatically adjust pipelines based on processing threads, achieving approximately 40x improvement on multi-core machines.
-
Streaming skip index filtering during reads is enabled by default. Text indexes support more predicate forms and can be used in PREWHERE.
-
In heavy partition pruning scenarios, SELECT queries on tables with 10,000+ parts are up to 8x faster. Iceberg tables support PREWHERE optimization and async metadata prefetching.
Distributed and parallel execution
-
Parallel distributed INSERT SELECT is enabled by default and executed independently on each shard. Distributed IN subqueries automatically add DISTINCT to reduce cross-shard temporary data transfer.
-
Distributed index analysis supports SharedMergeTree and shared storage scenarios. Parallel replicas support lazy materialization with improved load distribution to reduce long-tail latency.
Functions and indexes
-
LIKE and regular expressions are automatically rewritten to more efficient implementations and enabled by default. StringZilla accelerates case-sensitive string search, and SIMD dynamic dispatch accelerates logical functions and boolean column conversion.
Memory, observability, and networking
-
Mark, uncompressed, and page caches use independent jemalloc arenas to reduce fragmentation. jemalloc dirty pages are cleaned in independent threads. System log tables add minmax and bloom_filter indexes to accelerate troubleshooting.
-
Block serialization and compression in distributed queries can be offloaded to pipeline threads to improve large-volume data transfer efficiency.
Performance benchmark: ClickBench comparison
Based on the official ClickBench version benchmark (Cold Queries perspective), version 26.3 LTS achieves continuous performance improvement compared to the previous LTS version 25.3:
|
Metric |
Improvement of 26.3 LTS over 25.3 LTS |
|
Cold query overall latency |
8% to 15% reduction in total time |
|
Data lake and storage scan |
2x to 5x speedup for I/O-intensive queries and OSS external table scans |
|
Wide table TTL compaction |
Peak memory usage reduced by more than 40% |
|
Text and log search |
Complex search latency reduced from 193 seconds to 0.42 seconds with inverted index |
|
High-dimensional Map point lookup |
2x to 49x improvement in single-key lookup with sharded Map |
Utility features
Version 26.3 LTS also includes a set of features that improve the development and O&M experience:
-
Natural sort (naturalSortKey): Sorts strings containing numbers in human-intuitive order. For example,
file2.txtis correctly sorted beforefile10.txt. -
Tree-form EXPLAIN output: Run
EXPLAIN pretty=1, compact=1to obtain a well-structured, visual execution plan tree. -
Unavailable shard fault tolerance: The
max_skip_unavailable_shards_numandmax_skip_unavailable_shards_ratioparameters provide bounded control over the ratio of fault nodes that can be skipped during large table queries in a cluster.
Upgrade recommendations
Pre-upgrade preparation
-
Clone or test environment verification: Deploy the new version in a cloned or test environment first to evaluate the impact of version changes on existing configurations and queries.
-
Check dependency compatibility: Confirm the compatibility of client drivers and third-party tools with the new version.
Important notes
-
Experimental feature validation: Materialized CTE and Polyglot dialects are marked as Experimental in this version. We recommend that you validate these features in a test cluster before using them in production.
-
Performance regression testing: After the upgrade, compare the execution time of key queries to ensure that optimizations such as Parquet cache, inverted index, and JOIN reordering take effect.
-
Monitoring and alerting adjustment: Adjust monitoring thresholds based on new metrics and changes.
Summary
ClickHouse 26.3 LTS is a release of both breadth and depth:
-
At the data lake and open ecosystem level, native Paimon support and compatibility with 31 SQL dialects bridge lakehouse integration and cross-engine reuse.
-
At the query and analytics level, GA inverted indexes, materialized CTEs, JOIN reordering, and sharded maps significantly expand ClickHouse capabilities in log search, complex analysis, and high-dimensional point lookups.
-
At the stability and cost level, TTL vertical merge and ALP Codec reduce operational complexity across data cleanup and storage compression.
The Alibaba Cloud ClickHouse team has completed cloud adaptation and full compatibility verification for the community 26.3 LTS release. You can quickly create a 26.3 LTS instance or upgrade your existing instance to the latest version in the Alibaba Cloud ClickHouse console to experience more efficient and stable real-time analytics.