ClickHouse: Release 25.6 Call

ClickHouse Release 25.6

ClickHouse release 25.6

1. (50 min) What's new in ClickHouse 25.6.

3. (10 min) Q&A.

Release 25.6

ClickHouse Summer Release.

— 25 new features 🌸

— 32 performance optimizations 🦋

— 105 bug fixes 🐝

Small And Nice Features

system.codecs

ClickHouse uses codecs for data compression and encryption.

Codecs in ClickHouse can be applied on a per-column, per-table level,
or based on data size or TTL.

The new system table, codecs provides introspection and embedded documentation for them.

Demo.

Developer: Jimmy Aguilar Mena.

Functions For Bitcoin Addresses

Bech32 — an encoding for Bitcoin addresses based on base32.

Example: bc1qc7slrfxkknqcq2jevvvkdgvrt8080852dfjewde450xdlk4ugp7szw5tk9

Two new functions:
bech32Encode(hrp, payload) — returns the encoded address;
bech32Decode(address) — returns a tuple of the human-readable part and the payload;

Developer: George Larionov.

Functions For Well-Known Binary

WKT (Well-Known Text) and WKB (Well-Known Binary)
— are standard formats for representing geometry data.

20.5: Data types for geometry: Point, Ring, Polygon, MultiPolygon...

21.4: Functions for WKT: wkt, readWKTPoint, readWKTPolygon...

25.5: Reading WKB from Parquet

25.6: Functions for WKB

Demo.

Developer: Konstantin Vedernikov.

Single Snapshot For SELECT

ClickHouse has certain transactional (ACID) guarantees for queries.

When SELECT reads from a table, it takes a snapshot of a table at the moment of query analysis. This snapshot is not affected by concurrently running INSERT/ALTER/DELETE/DROP queries.

25.5: snapshots are acquired for different subqueries
and table usages in a query.

25.6: a single snapshot across all table usages
when enable_shared_storage_snapshot_in_query is set.

Demo.

Developer: Amos Bird.

JSON In Parquet

SELECT '{"database": "ClickHouse", "is_it_good": true}'::JSON AS data INTO OUTFILE 'test.parquet'

ClickHouse has first-class support for JSON with column-oriented storage.

Parquet does not have full support for JSON,
it stores JSON as a string with annotation.

25.5: a string with JSON annotation in Parquet is read as String.

25.6: a string with JSON annotation in Parquet is read as JSON,
and JSON from ClickHouse is written to Parquet with a proper annotation.

Developer: Nihal Z. Miaji.

A New Tokenizer

Function tokens splits a string into parts.

It supports different tokenization algorithms:

SELECT tokens('Hello, world!'); SELECT tokens('Hello, world!', 'default'); SELECT tokens('Hello, world!', 'split');

Version 25.6 introduces a new algorithm, split, good for logs.

Demo

Developers: Elmi Ahmadov, Robert Schulze.

Functions For PromQL

ClickHouse does not (yet) support PromQL.

The implementation is in progress, and we need functions to support
all its capabilities.

New aggregate functions in 25.6:
timeSeriesInstantDeltaToGrid, timeSeriesInstantRateToGrid, timeSeriesRateToGrid, timeSeriesResampleToGridWithStaleness, timeSeriesDeltaToGrid, timeSeriesLastTwoSamples

SELECT timeSeriesDeltaToGrid( start_ts, end_ts, step_seconds, window_seconds)(timestamp, value)

Developer: Alexander Gololobov.

Custom Disks For Databases

Disk — is a filesystem abstraction in ClickHouse,
allowing to store tables data in a remote object storage
(S3, GCS, Azure, HDFS, static web servers...).

ClickHouse 25.6 allows to store not only tables' data,
but also databases metadata on custom disks!

Needed to manage databases on stateless servers.

Note: these databases cannot be shared between multiple servers.

Developer: Tuan Pham Anh.

Improvements for Data Lakes

System Table "iceberg_history"

A new system table containing information about available snapshots
of all Iceberg tables.

Plays nicely with the time travel feature.

Demo

Developer: Smita Kulkarni.

Performance Improvements

Speed-up For Distributed Queries

By parallelization of the work for serialization and compression
of the blocks sent over the network.

Example: SELECT SearchPhrase, count() AS c FROM hits WHERE SearchPhrase != '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10

25.5: 0.601 sec.
25.6: 0.322 sec.

Developer: Nikita Taranov.

Workload Scheduler For Concurrent Queries

The workload scheduler already supports many resource types:
CPU usage, disk reads and writes.

The new resource type, QUERY, allows scheduling by the number of concurrently running queries:

CREATE RESOURCE query (QUERY); CREATE WORKLOAD all; CREATE WORKLOAD production IN all SETTINGS max_concurrent_threads = 100, max_queries_per_second = 10, max_burst_queries = 20; CREATE WORKLOAD analytics IN production SETTINGS max_concurrent_threads = 60, weight = 9; CREATE WORKLOAD ingestion IN production; SET workload = 'analytics';

Developer: Sergei Trifonov.

Optimization For Bloom Filter Index

By optimizing the integer division operation:

Developer: Delyan Kratunov.

Filtering By Multiple Projections

CREATE TABLE t ( a String, b UInt64, c Int32, PROJECTION p_b (SELECT * ORDER BY b), PROJECTION p_c (SELECT * ORDER BY c) ) ORDER BY a; SELECT * FROM t WHERE a = 'Hello' AND b > 123 AND c < 456;

What projection the query should use?

— it should analyze all of them on the fly!

Developer: Amos Bird.

Something Interesting

Time Data Type

New data types, Time and Time64, representing relative time.

SELECT '123:45:07'::Time; SELECT '-123:45:07.123456'::Time64(6); SELECT now()::Time;

For compatibility with other SQL DBMS.

Developer: Yarik Briukhovetskyi.

chdig

A command-line tool for ClickHouse monitoring and diagnostic.

Written in Rust — the best language for terminal applications!

Demo

Developer: Azat Khuzhin.

Window Functions lag/lead

lag(x, [offset], [default]) OVER ([PARTITION BY grouping_column] [ORDER BY sorting_column] | [ window_name])

ClickHouse already has better functions lagInFrame, leadInFrame.

But the simpler lag/lead functions are needed for SQL compatibility.

Developer: Dmitry Novik.

Bonus

Integrations

A new Terraform provider:

A New ClickHouse Website

http://localhost:8123/

Developer: Alexey Milovidov.

ClickHouse Lexer Library

A small library (6 KB) for C and WASM that tokenizes ClickHouse queries.

Can be embedded into JavaScript:

const lexer_base64 = "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R3JBAXENBAJAIAJBAWoiCSADTw0AIAktAAAiBUEwayEBIAcEQCABQf8BcUEKSSAFQcEAa0EGSXINASAFQeEAa0EGTw0HDAELIAFB/wFxQQlLDQYLIAMgCUYNBAsgBiACQQFqIgI2AgBBACEIIAIgA0kNAAsMAgsgBiACQQFqIgI2AgBBACEIIAIgA0cNAAsLIAJBAWoiASADTw0AIAItAAAhBQJAIAcEQCAFQSByQfAARw0CDAELIAVBIHJB5QBHDQELIAYgATYCAAJAIAJBAmogA08NAAJAIAEtAABBK2sOAwABAAELIAYgAUEBaiIBNgIAIAEgA08NAgtBASECA0AgAS0AACIFQTBrQf8BcUEKTwRAIAIgBUHfAEdyQQFxDQMgAUEBaiICIANPDQMgAi0AAEEwa0H/AXFBCUsNAwsgBiABQQFqIgE2AgBBACECIAEgA0cNAAsMAQsgAiEBCwJ/AkACQCABIANPDQAgAS0AACICQd8ARiACQTBrQf8BcUEKSXJFIAJB3wFxQcEAa0H/AXFBGUtxDQAgAUEBaiEFA0AgBiAFIgE2AgAgASADTw0CIAFBAWohBSABLQAAIgdBMGshAiAHQd8ARiACQf8BcUEKSXIgB0HfAXFBwQBrQf8BcUEaSXINAAsgAUEBawwCCyAAIAE2AggMCgsgAUEBawshAwJAIAEgBE0NACAEQQFrIQYDQCAGQQFqIgYtAAAiAkEkRiACQd8ARnIgAkEwa0H/AXFBCklyRSACQd8BcUHBAGtB/wFxQRpPcUUEQCADIAZLDQEMAgsLIAAgATYCCCAAIAQ2AgQgAEEvOgAADwsMCQsgBiAEQQJqIgE2AgACQCABIANGDQADQCABLQAAQQpGDQEgAUEBaiIBIANHDQALIAMhAQsLIAAgATYCCCAAIAQ2AgQgAEEBOgAACyAGIAE2AgAPCyAAIAE2AgggACAENgIEIABBADoAAA8LIAAgBEEBaiIANgIIDAILIAAgBEECaiIANgIIDAELIAAgATYCCCAAIAQ2AgQgAEEoOgAADwsgBiAANgIADwsgACAENgIEIABBAzoAAA8LIAAgATYCCCAAIAQ2AgQgAEECOgAACyUAIABBADoAECAAIAM2AgwgACACNgIIIAAgATYCBCAAIAE2AgALNgEBfyMAQRBrIgMkACADQQRqIAAQASABIAMoAgg2AgAgAiADKAIMNgIAIAMtAAQgA0EQaiQACwcAIABBAUsLBwAgAEEnSwsHACAAQSdGCwsIAQBBgAgLARQAeQlwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQEFY2xhbmdZMjAuMC4wZ2l0IChnaXRAZ2l0aHViLmNvbTpsbHZtL2xsdm0tcHJvamVjdC5naXQgNmNiYzY0ZWQ5MjJjYzY5YmMyOTJkMzk0YmE1YzY4MWZhMzA5ZjQwNCkAaw90YXJnZXRfZmVhdHVyZXMGKw9tdXRhYmxlLWdsb2JhbHMrE25vbnRyYXBwaW5nLWZwdG9pbnQrC2J1bGstbWVtb3J5KwhzaWduLWV4dCsPcmVmZXJlbmNlLXR5cGVzKwptdWx0aXZhbHVl"; const binary = atob(lexer_base64); const bytes = new Uint8Array(binary.length); for (let i = 0; i < binary.length; i++) { bytes[i] = binary.charCodeAt(i); } lexer_module = await WebAssembly.instantiate(bytes);

Developer: Alexey Milovidov.

Visualizations On The Map

Example with the eBird dataset:

https://adsb.exposed/?dataset=Birds

https://clickhouse.com/openhouse

ClickHouse Government

ClickHouse, delivered as a solution that
handles the complexities of government networks.

Self-managed on AWS within any government network
(FedRAMP, IL2, 4, 5, 6).

Access NIST 800-53 (Risk Management Framework)
compliance documentation and robust FIPS 140-3 support.

Meetups

— 🇺🇸 Denver, June 26
— 🇮🇳 Bangalore, June 27
— 🇦🇺 Perth, July 2
— 🇺🇸 Atlanta, July 8
— 🇺🇸 Philadelphia, July 10
— 🇺🇸 Los Gatos, July 10
— 🇺🇸 New York, July 15

Reading Corner 📖

https://clickhouse.com/blog/


OpenAI and Anthropic's journey with ClickHouse
— The case of quadrillion rows in Tesla
— Observability without OTel and Prometheus
— How we built Distributed Cache
— "Coffeeshop Benchmark" — ClickHouse vs. Snowflake and Databricks
— Building agents with ClickHouse MCP
Langfuse — A new data stack for modern LLM applications

Q&A