Extrémně rychlá pro analytické dotazy.
Instalace¶
docker run -d –name ch -p 8123:8123 -p 9000:9000 clickhouse/clickhouse-server
Tabulka¶
CREATE TABLE events ( event_date Date, user_id UInt64, event_type String ) ENGINE=MergeTree() PARTITION BY toYYYYMM(event_date) ORDER BY (event_type,event_date);
Dotazy¶
SELECT event_type, count(), uniq(user_id) FROM events WHERE event_date>=‘2024-01-01’ GROUP BY event_type ORDER BY count() DESC;
- 10-100x rychlejší než PG pro analytics
- Sloupcový formát
- 10x komprese
- SQL kompatibilní
Kdy nasadit ClickHouse¶
ClickHouse vyniká v analytických scénářích, kde zpracováváte miliardy řádků — typicky log analytics, event tracking, real-time dashboardy a ad-hoc reporting. Sloupcový formát ukládání znamená, že dotaz čte pouze sloupce, které potřebuje, což dramaticky snižuje I/O oproti řádkovým databázím.
Materialized views v ClickHouse umožňují předpočítávat agregace v reálném čase při vkládání dat. Například můžete automaticky počítat denní metriky bez nutnosti spouštět drahé batch dotazy. Pro import dat z PostgreSQL nebo MySQL se osvědčuje integrace přes Kafka a Debezium. ClickHouse není vhodný pro OLTP workloady (časté single-row updaty), ale pro analytiku je řádově rychlejší než tradiční relační databáze.
ClickHouse pro analytics¶
OLTP=PostgreSQL, OLAP=ClickHouse.