1. (50 min) What's new in ClickHouse 25.6.
3. (10 min) Q&A.
ClickHouse Summer Release.
— 25 new features 🌸
— 32 performance optimizations 🦋
— 105 bug fixes 🐝
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.
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.
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.
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.
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.
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.
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.
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.
A new system table containing information about available snapshots
of all Iceberg tables.
Plays nicely with the time travel feature.
Demo
Developer: Smita Kulkarni.
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.
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.
By optimizing the integer division operation:
Developer: Delyan Kratunov.
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.
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.
A command-line tool for ClickHouse monitoring and diagnostic.
Written in Rust — the best language for terminal applications!
Demo
Developer: Azat Khuzhin.
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.
A new Terraform provider:
Developer: Alexey Milovidov.
A small library (6 KB) for C and WASM that tokenizes ClickHouse queries.
Can be embedded into JavaScript:
const lexer_base64 = "AGFzbQEAAAABHAVgAX8Bf2ACf38AYAAAYAR/f39/AGADf39/AX8DCQgCAQEDBAAAAAUDAQACBkULfwFBkIgEC38AQYAIC38AQYAIC38AQYQIC38AQZAIC38AQZCIBAt/AEGACAt/AEGQiAQLfwBBgIAIC38AQQALfwBBAQsHlgMTBm1lbW9yeQIAEV9fd2FzbV9jYWxsX2N0b3JzAAAYX1pOMkRCNUxleGVyOW5leHRUb2tlbkV2AAEdX1pOMkRCNUxleGVyMTNuZXh0VG9rZW5JbXBsRXYAAhdjbGlja2hvdXNlX2xleGVyX2NyZWF0ZQADG2NsaWNraG91c2VfbGV4ZXJfbmV4dF90b2tlbgAEJWNsaWNraG91c2VfbGV4ZXJfdG9rZW5faXNfc2lnbmlmaWNhbnQABR9jbGlja2hvdXNlX2xleGVyX3Rva2VuX2lzX2Vycm9yAAYdY2xpY2tob3VzZV9sZXhlcl90b2tlbl9pc19lbmQABxVjbGlja2hvdXNlX2xleGVyX3NpemUDAQxfX2Rzb19oYW5kbGUDAgpfX2RhdGFfZW5kAwMLX19zdGFja19sb3cDBAxfX3N0YWNrX2hpZ2gDBQ1fX2dsb2JhbF9iYXNlAwYLX19oZWFwX2Jhc2UDBwpfX2hlYXBfZW5kAwgNX19tZW1vcnlfYmFzZQMJDF9fdGFibGVfYmFzZQMKDAEBCrQtCAMAAQtNAQF/IAAgARACAkACQAJAIAEoAgwiAkUNACAAKAIIIAEoAgAgAmpNDQBBMCECIABBMDoAAAwBCyAALQAAIgJBAkkNAQsgASACOgAQCwvqKwEJfyABKAIEIgQgASgCCCIDTwRAIAAgAzYCCCAAIAM2AgQgAEEnOgAADwsgAUEEaiEGAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQtAAAiCkEgaw5eARYEEyAUJAMGBxEPDBAOEgICAgICAgICAgIbDRcVGBkdJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQIHgkaJAUkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAocCwALIApBCWtBBUkNACAKQeIBRw0jIARBA2oiASADSw0eIAQtAAFBiAFHDR4gBC0AAkGSAUcNHiAAIAE2AgggACAENgIEIABBFDoAAAwwCyAGIARBAWoiATYCAAJAIAEgA08NAANAIAEtAAAiAkEJa0EFTyACQSBHcQ0BIAYgAUEBaiIBNgIAIAEgA0cNAAsgAyEBCwwwCyABLQAQQQ9GBEAgBiAEQQFqIgE2AgAgASADTw0sA0AgAS0AACICQTBrQf8BcUEKTwRAIAJB3wBHDS4gAUEBaiICIANPDS4gAi0AAEEwa0H/AXFBCUsNLgsgBiABQQFqIgE2AgAgASADRw0ACyADIQEMLAsgCkEwRyAEQQJqIgEgA09yDSggBEEBaiECAkAgBC0AASIFQeEATQRAIAVBwgBGDSAgBUHYAEYNAQwqCyAFQeIARg0fIAVB+ABHDSkLQQEhBSABLQAAIglBMGtB/wFxQQpJDSdBACAJQcEAayIJQf8BcUEmTw0pGkK/gICA8AcgCa2Ip0EBcUUNKgwnCyAGIAYoAgBBAWoiAjYCAAJAA0ACQCACIANGDQADQCACLQAAIgFBJ0YgAUHcAEZyDQEgAkEBaiICIANHDQALIAMhAgsgBiACNgIAQSohBQJAIAIgA08NAAJAIAItAAAiAUHcAEcEQCABQSdHDQMgBiACQQFqIgE2AgBBBCEFIAEgA08NBCABLQAAQSdGDQEMBAsgBiACQQFqIgE2AgAgASADTw0BCyAGIAJBAmoiAjYCAAwBCwsgAyEBCyAAIAE2AgggACAENgIEIAAgBToAAA8LIAYgBigCAEEBaiICNgIAAkADQAJAIAIgA0YNAANAIAItAAAiAUEiRiABQdwARnINASACQQFqIgIgA0cNAAsgAyECCyAGIAI2AgBBKyEFAkAgAiADTw0AAkAgAi0AACIBQdwARwRAIAFBIkcNAyAGIAJBAWoiATYCAEEFIQUgASADTw0EIAEtAABBIkYNAQwECyAGIAJBAWoiATYCACABIANPDQELIAYgAkECaiICNgIADAELCyADIQELIAAgATYCCCAAIAQ2AgQgACAFOgAADwsgBiAGKAIAQQFqIgI2AgACQANAAkAgAiADRg0AA0ACQCACLQAAQdwAaw4FAgAAAAIACyACQQFqIgIgA0cNAAsgAyECCyAGIAI2AgBBLCEFAkAgAiADTw0AAkACQAJAIAItAABB3ABrDgUBBAQEAAQLIAYgAkEBaiIBNgIAQQUhBSABIANPDQQgAS0AAEHgAEYNAQwECyAGIAJBAWoiATYCACABIANPDQELIAYgAkECaiICNgIADAELCyADIQELIAAgATYCCCAAIAQ2AgQgACAFOgAADwsgACAENgIEIABBBjoAAAwsCyAAIAQ2AgQgAEEHOgAADCsLIAAgBDYCBCAAQQg6AAAMKgsgACAENgIEIABBCToAAAwpCyAAIAQ2AgQgAEEKOgAADCgLIAAgBDYCBCAAQQs6AAAMJwsgACAENgIEIABBDDoAAAwmCyAAIAQ2AgQgAEENOgAADCULAkAgBCABKAIATQ0AAkAgBEEBaiICIANPDQAgAi0AAEEwa0H/AXFBCUsNACABLQAQIgFBCUtBASABdEGsBXFFcg0BCyAAIAI2AgggACAENgIEIABBDzoAACAGIAI2AgAPCyAGIARBAWoiAjYCACAEIQUgAiADTw0aIARBAmohAUEBIQUDQCABQQFrLQAAIgJBMGtB/wFxQQpPBEAgBSACQd8AR3JBAXEgASADT3INFSABLQAAQTBrQf8BcUEJSw0VCyAGIAE2AgAgASADRkEAIQUgAUEBaiEBRQ0ACyABQQJrIQUgAyECDBoLIAAgBDYCBCAAQRM6AAAMIwsgBiAEQQFqIgI2AgACQCACIANPDQAgAi0AACIBQS1HBEAgAUE+Rw0BIAAgBDYCBCAAQRc6AAAMJQsMHwsgACACNgIIIAAgBDYCBCAAQRQ6AAAPCyAAIAQ2AgQgAEEQOgAADCELIAYgBEEBaiICNgIAAkAgAiADTw0AIAItAAAiAUEqRwRAIAFBL0cNAQweCyAGIARBAmoiATYCACADIARBBGoiAk8EQEEBIQgDQAJAAkACQAJAIAEtAAAiBUEqRwRAIAVBL0cNAyABLQABQSpHDQMgBiACNgIAIAhBAWohCAwBCyABLQABQS9HDQIgBiACNgIAIAhBAWsiCEUNAQsgAiEBDAILIAAgAjYCCCAAIAQ2AgQgAEEBOgAADwsgBiABQQFqIgE2AgALIAFBAmoiAiADTQ0ACwsgACADNgIIIAAgBDYCBCAAQSk6AAAgBiADNgIADwsgACACNgIIIAAgBDYCBCAAQRU6AAAPCyAGIARBAWoiATYCAAJAIAEgA08NACABLQAAQf4BcUEgRw0AAkADQCABLQAAQQpGDQEgAUEBaiIBIANHDQALIAMhAQsMHQsMIQsgACAENgIEIABBFjoAAAweCyAGIARBAWoiATYCAAJAIAEgA08NACABLQAAQT1HDQAgBiAEQQJqIgE2AgALIAAgATYCCCAAIAQ2AgQgAEEcOgAADwsgBiAEQQFqIgE2AgACQCABIANPDQAgAS0AAEE9Rw0AIAAgBDYCBCAAQR06AAAMHgsgACABNgIIIAAgBDYCBCAAQS06AAAPCyAGIARBAWoiAjYCAAJAIARBAmoiASADTw0AIAItAABBPUcNACABLQAAQT5HDQAgACAENgIEIABBIjoAACAAIARBA2oiADYCCAwfCwJAIAIgA08NAAJAAkAgAi0AAEE9aw4CAAECCyAAIAE2AgggACAENgIEIABBIDoAAAwbCyAAIAE2AgggACAENgIEIABBHToAAAwaCyAAIAI2AgggACAENgIEIABBHjoAAA8LIAYgBEEBaiIBNgIAAkAgASADTw0AIAEtAABBPUcNACAAIAQ2AgQgAEEhOgAADBwLIAAgATYCCCAAIAQ2AgQgAEEfOgAADwsgACAENgIEIABBGDoAAAwZCyAAIAQ2AgQgAEEaOgAADBgLIAYgBEEBaiIBNgIAAkAgASADTw0AIAEtAABBOkcNACAAIAQ2AgQgAEEbOgAADBkLIAAgATYCCCAAIAQ2AgQgAEEZOgAADwsgBiAEQQFqIgE2AgACQCABIANPDQAgAS0AAEH8AEcNACAAIAQ2AgQgAEEkOgAADBgLIAAgATYCCCAAIAQ2AgQgAEEjOgAADwsgBiAEQQFqIgE2AgACQCABIANPDQAgAS0AAEHAAEcNACAAIAQ2AgQgAEEmOgAADBcLIAAgATYCCCAAIAQ2AgQgAEElOgAADwsgBiAEQQFqIgE2AgACQCABIANPDQAgAS0AAEHHAEcNACAAIAQ2AgQgAEEOOgAADBYLDBYLIARBBWogA08NBCAELQABQYABRw0EAkAgBC0AAiIHQZgBaw4FAAUFBQAFCyAGIAE2AgAgACECQQRBBSAHQZgBRiIAGyEBQSpBKyAAGyEAIAYoAgAhBSAHQQFqwEH/AXEhCQNAAkACQCADIAVGDQADQCAFLQAAQeIBRg0BIAVBAWoiBSADRw0ACyADIQULIAYgBTYCAAJAAkAgAyAFQQJqIgdNBEAgACEBDAELIAUtAABB4gFHDQEgBS0AAUGAAUcNASAHLQAAIAlHDQEgBiAFQQNqIgM2AgALIAIgAzYCCCACIAQ2AgQgAiABOgAADAELIAYgBUEBaiIFNgIADAELCw8LIAMgBGsiBUECSQ0CQQEhAQNAIAEgBGotAABBJEcEQCAFIAFBAWoiAUcNAQwECwsgAUF/Rg0CAn8gAUEBaiICIAIiB2ogBSIBTQRAIAQgB2ohCCACQQFqIQkDQEEAIQUCQAJAA0AgBSAIai0AACAEIAVqLQAARgRAIAIgBUEBaiIFRw0BDAILCyACIAVHDQELIAcMAwsgCEEBaiEIIAcgCWohBSAHQQFqIQcgASAFTw0ACwtBfwsiAUF/Rg0CIAEgBGogAmohAUERIQgMBAtBACEFIAEtAABB/gFxQTBGDQgMCwsgAUEBayECIAFBAmshBQwGC0EBIQVBEiEIIARBAWoiASADTw0BIAEtAAAiAkHfAEYgAkE6a0H/AXFB9QFLcg0AIAJB3wFxQdsAa0H/AXFB5gFJDQELIARBAmogA08NAyAELQABQSdHDQMgCkHhAEsNASAKQcIARiAKQdgARnINAgwDCyAAIAE2AgggACAENgIEIAAgCDoAAAwLCyAKQfgARg0AIApB4gBHDQELIAAhASAGKAIAIgAtAAAhAiAGIABBAmoiADYCAAJAIAJBIHJB+ABGBEAgACADTw0BA0AgAC0AACICQTBrQf8BcUEKSSACQeEAa0EGSXJFIAJBwQBrQQVLcQ0CIAYgAEEBaiIANgIAIAAgA0cNAAsgAyEADAELAkAgACADRg0AA0AgAC0AAEH+AXFBMEcNASAAQQFqIgAgA0cNAAsgAyEACyAGIAA2AgALQSohAiAAIANJBEAgAEEBaiADIAAtAABBJ0YiABshA0EEQSogABshAgsgASADNgIIIAEgBDYCBCABIAI6AAAgBiADNgIADwsgCkEwa0H/AXFBCkkgCkHfAXFBwQBrQf8BcUEaSXIgCkHfAEZyIAVyQQFGBEAgBEEBaiEFA0ACQCAGIAUiATYCACABIANPDQAgAUEBaiEFIAEtAAAiB0EwayECIAdBJEYgB0HfAEZyIAJB/wFxQQpJIAdB3wFxQcEAa0H/AXFBGklycg0BCwsMEAsCQCADIAQiAU0NAANAAn9BASABLQAAIgJBCWtBBUkNABpBASACQSBGDQAaIAJBwgFHIAFBAWoiByADT3JFBEBBAiAHLQAAIgJBhQFGIAJBoAFGcg0BGgwDCyABQQJqIgUgA08NAgJAAkACQAJAAkAgAkHhAWsOAwECAwALIAJB7wFHDQYgBy0AAEG7AUcNBiAFLQAAQb8BRg0DDAYLIActAABBoAFHDQUgBS0AAEGOAUYNAgwFCwJAAkAgBy0AAEGAAWsOAgABBgtBAyAFLAAAIgJBi39IIAJBfnFBqH9Gcg0DGkEDIAJB/wFxIgJBiwFrQQNJIAJBrwFGcg0DGgwFCyAFLQAAQeEAakH/AXFBAkkNAQwECyAHLQAAQYABRw0DIAUtAABBgAFHDQMLQQMLIAFqIgEgA0kNAAsLIAYgATYCACABIARNBEAgAUEBaiECA0ACQCAGIAIiATYCACABIANPDQAgAUEBaiECIAEsAABBQEgNAQsLDA0LDAkLAkAgBUECaiIBIANPDQAgAi0AAEEgckHlAEcNACAGIAE2AgACQCAFQQNqIgIgA08NAAJAIAEtAABBK2sOAwABAAELIAYgAjYCACACIQELAkAgASADTw0AQQEhAgNAIAEtAAAiBUEwa0H/AXFBCk8EQCACIAVB3wBHckEBcQ0CIAFBAWoiAiADTw0CIAItAABBMGtB/wFxQQlLDQILIAYgAUEBaiIBNgIAQQAhAiABIANHDQALIAMhAgwBCyABIQILIAAgAjYCCAwNC0EBIQggASECIAUhBwwCCyAEQQFqIQJBAAshBwsgBiACNgIAAkACQCACIANPDQADQCACLQAAIgVBMGshAQJAAkAgBwRAIAFB/wFxQQpJIAVBwQBrQQZJcg0CIAVB4QBrQQZPDQEMAgsgAUH/AXFBCkkNAQsgCCAFQd8AR3JBAXFFBEACQAJAIAJBAWoiCSADTw0AIAktAAAiBUEwayEBIAdFDQEgAUH/AXFBCkkgBUHBAGtBBklyDQAgBUHhAGtBBk8NBgsgAyAJRw0CDAQLIAFB/wFxQQpJDQEMBAsgBUEuRw0CIAYgAkEBaiICNgIAIAIgA08NAkEBIQgDQCACLQAAIgVBMGshAQJAAkAgBwRAIAFB/wFxQQpJIAVBwQBrQQZJcg0CIAVB4QBrQQZPDQEMAgsgAUH/AXFBCkkNAQsgCCAFQd8AR3JBAXENBAJAIAJBAWoiCSADTw0AIAktAAAiBUEwayEBIAcEQCABQf8BcUEKSSAFQcEAa0EGSXINASAFQeEAa0EGTw0HDAELIAFB/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.
Example with the eBird dataset:
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.
— 🇺🇸 Denver, June 26
— 🇮🇳 Bangalore, June 27
— 🇦🇺 Perth, July 2
— 🇺🇸 Atlanta, July 8
— 🇺🇸 Philadelphia, July 10
— 🇺🇸 Los Gatos, July 10
— 🇺🇸 New York, July 15
— 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