Extrem schnell für analytische Abfragen.
Installation¶
docker run -d --name ch -p 8123:8123 -p 9000:9000 clickhouse/clickhouse-server
Tabelle¶
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);
Abfragen¶
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 schneller als PG für Analytik
- Spaltenformat
- 10x Kompression
- SQL-kompatibel
Wann ClickHouse einsetzen¶
ClickHouse glaenzt in analytischen Szenarien, in denen Sie Milliarden von Zeilen verarbeiten — typischerweise Log-Analytik, Event-Tracking, Echtzeit-Dashboards und Ad-hoc-Reporting. Das spaltenbasierte Speicherformat bedeutet, dass Abfragen nur die benoetigten Spalten lesen, was den I/O-Aufwand im Vergleich zu zeilenbasierten Datenbanken drastisch reduziert.
Materialized Views in ClickHouse ermoeglichen die Vorberechnung von Aggregationen in Echtzeit beim Einfuegen von Daten. Beispielsweise koennen Sie automatisch taegliche Metriken berechnen, ohne teure Batch-Abfragen ausfuehren zu muessen. Fuer den Datenimport aus PostgreSQL oder MySQL bewaehrt sich die Integration ueber Kafka und Debezium. ClickHouse ist nicht fuer OLTP-Workloads (haeufige Einzelzeilen-Updates) geeignet, aber fuer Analytik ist es um Groessenordnungen schneller als traditionelle relationale Datenbanken.
ClickHouse für Analytik¶
OLTP=PostgreSQL, OLAP=ClickHouse.