Overview
ClickHouse 26.1 is a major release featuring 25 new features, 43 performance optimizations, and 176 bug fixes. Key highlights include end-to-end deduplication of asynchronous inserts with materialized views, new syntax for indexing projections, full Variant type support across all functions, faster DISTINCT on LowCardinality columns, text index improvements with sparseGrams tokenizer, and an open-source Kubernetes operator.
What You'll Learn
How to use end-to-end deduplication for asynchronous inserts with materialized views in ClickHouse
How to use the new indexing projection syntax to reduce storage overhead
How to introspect MergeTree internals and Keeper state using new system tables and table functions
How to use the sparseGrams tokenizer to improve text index query performance
Why deduplication is scoped per table and how it ensures consistency across base tables and materialized views
Prerequisites & Requirements
- Understanding of ClickHouse MergeTree engine and data parts
- Familiarity with materialized views and incremental aggregation
- Basic understanding of asynchronous insert batching and idempotent operations
- ClickHouse 26.1 or later installed
- Understanding of ClickHouse Keeper (ZooKeeper alternative) for replication coordination(optional)
Key Questions Answered
How does ClickHouse 26.1 handle deduplication of asynchronous inserts with materialized views?
What is the new indexing projection syntax in ClickHouse 26.1?
What is the mergeTreeAnalyzeIndexes table function in ClickHouse?
How does the sparseGrams tokenizer improve ClickHouse text index performance?
Why were asynchronous inserts unsafe with materialized views before ClickHouse 26.1?
What new system tables and monitoring tools does ClickHouse 26.1 add for Keeper?
Does ClickHouse 26.1 support Variant type in all functions?
What is the ClickHouse open-source Kubernetes operator?
Key Statistics & Figures
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Key Actionable Insights
1Enable asynchronous insert deduplication with materialized views to build safe, retry-friendly ingestion pipelines. With ClickHouse 26.1, you can now use async inserts in pipelines that include dependent materialized views without risking duplicate data, making your ingestion architecture both performant and correct.This is especially important for real-world pipelines where network failures, timeouts, or node crashes force clients to retry inserts. Deduplication is scoped per table, so both base tables and materialized view targets independently filter duplicates.
2Adopt the new indexing projection syntax (PROJECTION name INDEX column TYPE basic) to simplify schema definitions. This cleaner syntax replaces the verbose SELECT _part_offset ORDER BY pattern while providing the same lightweight secondary index functionality with minimal storage overhead.This builds on the projection-as-secondary-index feature introduced in ClickHouse 25.6/25.11, which stores only the sorting key plus a _part_offset pointer rather than complete data copies.
3Use the mergeTreeAnalyzeIndexes table function to debug and optimize query performance by understanding exactly which data ranges survive index filtering. This provides granular visibility into how your primary and data skipping indexes prune data during query execution.This complements the existing mergeTreeIndex function which shows index file contents. Together they let you see both what's stored in indexes and how those indexes are applied at query time.
4Consider the sparseGrams tokenizer for text indexes when your workload involves searching through large text columns. While it requires significantly more storage and ingestion time, it can deliver approximately 36% faster query times by using fewer, more specific tokens during search.The tradeoff is substantial: in the Hacker News benchmark, sparseGrams used 16.19 GiB for secondary indices versus 2.00 GiB for splitByNonAlpha. Evaluate whether the query performance gain justifies the storage increase for your use case.
5Use the new system.zookeeper_info system table and embedded Keeper web dashboard for operational monitoring and debugging of your ClickHouse Keeper cluster. This provides visibility into cluster size, latency, leadership status, and data volume through SQL, a web UI, or HTTP API.Having multiple access methods (SQL, browser, HTTP API) means different team members can use their preferred interface for cluster operations and troubleshooting.
6Leverage the new files column in system.parts to monitor on-disk part layout and understand schema complexity. This can help diagnose issues with insert behavior, merge performance, and query execution related to part structure.The files count varies by part and is influenced by the number of columns, index types, and other metadata stored alongside the compressed data.