ClickHouse ist eine spaltenorientierte Open-Source-Datenbank für Analytics (OLAP), ursprünglich von Yandex entwickelt und seit 2016 öffentlich. Weil Daten spaltenweise statt zeilenweise gespeichert und komprimiert werden (LZ4, ZSTD), beantwortet sie Aggregationen über Milliarden Zeilen in Sekundenbruchteilen. Der wichtigste Zugang ist der Client clickhouse-client, der wie mysql funktioniert.

Erste Schritte

clickhouse-client --query "SELECT 1"
clickhouse-client --query "SELECT count() FROM auftraege" --format JSONEachRow

Der Server läuft als clickhouse-server --config-file /etc/clickhouse-server/config.xml, standardmäßig auf TCP-Port 9000. Ohne Server verarbeitet clickhouse-local lokale Dateien direkt — praktisch für Ad-hoc-Analysen von CSVs.

Wichtige Kommandos

  • Tabellen anlegen: CREATE TABLE messwerte (datum DateTime, wert Float32) ENGINE = MergeTree ORDER BY datum
  • Daten laden: INSERT INTO messwerte FORMAT CSV
  • Aggregationen: SELECT toDate(datum) tag, sum(wert) FROM messwerte GROUP BY tag
  • Weitere Tools: clickhouse-benchmark (Query-Performance testen), clickhouse-format (SQL formatieren), clickhouse-copier (Daten zwischen Clustern kopieren)

Praxis-Tipps

  • Die MergeTree-Engine-Familie ist der Standard: Partitionierung, TTL und Replikation (ReplicatedMergeTree) sind eingebaut.
  • Spaltenorientierung lohnt sich, wenn Queries nur wenige Spalten lesen — typisch für Dashboards und Reports.
  • Materialized Views verdichten eingehende Daten kontinuierlich zu Aggregaten.

Verwandte Grundlagen: MySQL-Befehle, PostgreSQL-Befehle, Kafka-Befehle, Spark-Befehle, InfluxDB-Befehle, Elasticsearch-Befehle, Dockerfile-Befehle.