ClickHouse selbst hosten: Analysen in Millisekunden
ClickHouse beantwortet Auswertungen über Milliarden Zeilen in Sekundenbruchteilen, liegt unter Apache 2.0 auf GitHub und läuft mit einem Docker-Befehl. Was die Datenbank anders macht, warum sie gerade überall auftaucht und wofür sie sich lohnt…

Die Ereignistabelle in Deiner Postgres-Datenbank ist auf 200 Millionen Zeilen gewachsen, und die Auswertung fürs Dashboard braucht inzwischen vierzig Sekunden. Du hast Indizes gesetzt, die Abfrage umgeschrieben und den Server vergrößert, aber es wird nicht besser, und währenddessen wird auch noch der Shop langsam, weil die Auswertung dieselbe Datenbank belastet. An dieser Stelle ist nicht Deine Abfrage das Problem, sondern die Bauart der Datenbank. ClickHouse ist für genau diesen Fall gebaut, liegt unter Apache 2.0 auf GitHub und läuft mit einem einzigen Docker-Befehl.
Was ClickHouse eigentlich macht
ClickHouse ist eine spaltenorientierte Datenbank für Analysen, in der Fachsprache eine OLAP-Datenbank. Der Unterschied zu Postgres oder MySQL steckt darin, wie die Daten auf der Festplatte liegen, und dieser eine Unterschied erklärt fast alles Weitere.
Postgres speichert zeilenweise: Alle Felder eines Datensatzes liegen zusammen. Das ist ideal, wenn Du eine Bestellung komplett laden oder ändern willst. Fragst Du dagegen „was war der Durchschnittsumsatz pro Monat“, muss die Datenbank alle Zeilen von der Platte holen, obwohl sie nur zwei der dreißig Spalten braucht.
ClickHouse speichert spaltenweise: Alle Werte einer Spalte liegen zusammen. Für dieselbe Frage liest die Datenbank nur die Spalten datum und betrag und ignoriert den Rest komplett. Dazu kommt, dass gleichartige Werte nebeneinander liegen und sich dadurch stark komprimieren lassen, oft um den Faktor zehn und mehr. Weniger Daten von der Platte bedeutet weniger Wartezeit, und ClickHouse verarbeitet die eingelesenen Blöcke anschließend vektorisiert über alle CPU-Kerne. Aus vierzig Sekunden werden so regelmäßig Millisekunden.
Bedienen tust Du das Ganze mit SQL, das Dir vertraut vorkommen wird. Die wichtigste neue Vokabel ist die Tabellen-Engine MergeTree, die Du beim Anlegen einer Tabelle angibst und die die Sortierung der Daten auf der Platte bestimmt. Diese Sortierung ist bei ClickHouse die eigentliche Stellschraube für Geschwindigkeit, nicht der klassische Index.
Warum die Datenbank gerade überall auftaucht
Der erste Grund ist schlicht das Tempo. Auswertungen über Milliarden Zeilen laufen in Sekundenbruchteilen, und zwar auf gewöhnlicher Hardware statt auf einem Cluster. Das Projekt zählt auf GitHub inzwischen rund 49.000 Sterne.
Der zweite Grund ist die Rechnung. Bei den großen Cloud-Warehouses zahlst Du nach gescanntem Datenvolumen oder Rechenzeit, was mit dem Erfolg mitwächst und schwer planbar bleibt. Selbst gehostet zahlst Du den Server, sonst nichts. Bei Datenmengen, die ein einzelner kräftiger Server noch trägt, und das sind mehr Fälle als viele denken, ist der Unterschied erheblich.
Der dritte Grund ist der Bereich Observability. Logs, Metriken und Traces sind genau die Sorte Daten, für die ClickHouse gebaut ist: einmal geschrieben, danach nur noch gelesen, und in großen Mengen. Deshalb ersetzen inzwischen viele Teams ihren Elasticsearch-Cluster durch ClickHouse und sparen dabei einen guten Teil der Hardware.
Und dann gibt es noch clickhouse local, ein Werkzeug, das die Einstiegshürde praktisch auf null senkt: Damit jagst Du SQL-Abfragen direkt gegen CSV-, JSON- oder Parquet-Dateien auf Deiner Festplatte, ohne vorher irgendetwas zu installieren oder zu importieren. Für eine 2 GB große Exportdatei, die Excel nicht mehr öffnet, ist das der schnellste Weg zu einer Antwort.
Open Source auf GitHub, ohne Kleingedrucktes
Der Quellcode liegt unter ClickHouse/ClickHouse auf GitHub, und die Lizenz ist Apache 2.0. Das ist eine von der Open Source Initiative anerkannte Lizenz ohne Nutzungsbeschränkung: Du darfst ClickHouse einsetzen, ändern, weitergeben und sogar als eigenen gehosteten Dienst anbieten.
Das ist erwähnenswert, weil bei vergleichbaren Werkzeugen inzwischen oft quelloffene, aber eingeschränkte Lizenzen verwendet werden. Bei Airbyte selbst hosten: Daten automatisch zusammenführen ist genau das der Fall. Bei ClickHouse gibt es diese Einschränkung nicht, und die selbst gehostete Version ist auch nicht funktional beschnitten: Es gibt keine Enterprise-Features, die hinter einer Bezahlschranke fehlen.
ClickHouse selbst hosten
Am schnellsten kommst Du über Docker zum Ziel. Der offizielle Befehl:
docker run -d --name clickhouse -p 8123:8123 -p 9000:9000 -e CLICKHOUSE_PASSWORD=DEIN_PASSWORT --ulimit nofile=262144:262144 clickhouse/clickhouse-serverErsetz DEIN_PASSWORT durch ein eigenes, sicheres Passwort. Port 8123 ist die HTTP-Schnittstelle, über die sich Dashboard-Werkzeuge verbinden, Port 9000 das schnellere native Protokoll für den mitgelieferten Client. Das --ulimit erhöht die Zahl gleichzeitig geöffneter Dateien, was ClickHouse wegen der vielen Spaltendateien tatsächlich braucht; ohne diese Angabe läuft der Server bei größeren Tabellen in Fehler.
Eine SQL-Konsole bekommst Du direkt im laufenden Container:
docker exec -it clickhouse clickhouse-client --passwordDer Client fragt danach nach dem Passwort, das Du oben gesetzt hast. Ab hier arbeitest Du mit ganz normalem SQL, legst mit CREATE DATABASE und CREATE TABLE los und prüfst mit SHOW TABLES, was da ist.
Für einen echten Produktivbetrieb nimm statt des Containers die Pakete aus dem offiziellen Repository, weil Du damit Konfiguration, Logrotation und Systemd-Dienst sauber im Griff hast. Auf Debian und Ubuntu läuft das über sudo apt-get install -y clickhouse-server clickhouse-client nach dem Einbinden des ClickHouse-Repositorys, und gestartet wird der Dienst mit sudo service clickhouse-server start.
Zur Dimensionierung: ClickHouse ist erstaunlich genügsam und läuft schon auf zwei Kernen, skaliert aber sehr direkt mit CPU-Kernen und Arbeitsspeicher. Für ernsthafte Auswertungen sind vier bis acht Kerne und 16 GB RAM ein guter Startpunkt, dazu schneller Speicher. Wenn Du dafür einen Server brauchst, bekommst Du über diesen Affiliate-Link zu DigitalOcean (Affiliate Link) Startguthaben zum Ausprobieren.
Ein Sicherheitshinweis, der wirklich wichtig ist: ClickHouse bringt einen Benutzer default mit, der ohne die Umgebungsvariable oben gar kein Passwort hat. Setz das Passwort also von Anfang an, binde die Ports nicht an eine öffentliche IP-Adresse und halte 8123 und 9000 in der Firewall geschlossen. Eine offen im Netz stehende ClickHouse-Instanz ist eine offene Datenbank für jeden.
Wofür man es in der Praxis einsetzt
Diese fünf Fälle begegnen einem am häufigsten.
Das Dashboard, das nicht mehr wartet. Die Ereignis- und Bestelldaten wandern aus Postgres nach ClickHouse, und die Auswertungen laufen dort. Die Produktivdatenbank ist dabei gleich mit entlastet. Zum Anzeigen passt Metabase: Das Beste kostenlose Open Source Dashboard-Tool für Selbsthosting, das ClickHouse direkt anbinden kann.
Produktanalyse in Echtzeit. Jeder Klick, jeder Seitenaufruf, jedes Feature-Ereignis wird als Zeile geschrieben. Weil ClickHouse bei gebündelten Einfügungen Millionen Zeilen pro Sekunde aufnimmt und trotzdem sofort auswertbar bleibt, kannst Du eine Frage wie „wie viele Nutzer haben die neue Funktion in der letzten Stunde angefasst“ stellen und die Antwort sofort bekommen. Wichtig dabei: Schreib in Stapeln von einigen tausend Zeilen statt Zeile für Zeile, denn einzelne kleine Einfügungen sind der klassische Anfängerfehler und bremsen ClickHouse spürbar aus.
Logs und Observability. Anwendungs- und Zugriffslogs landen statt in Elasticsearch in ClickHouse. Die Kompression sorgt dafür, dass sich eine deutlich längere Historie vorhalten lässt, ohne dass der Speicherbedarf explodiert.
Zeitreihen aus Sensoren. Messwerte aus Smart-Home- oder Industrieanlagen sind der Idealfall: viele gleichartige Zahlen, chronologisch, nie geändert. Solche Daten komprimiert ClickHouse besonders gut.
Auswertung von Dateien ohne Import. Mit clickhouse local fragst Du eine 5 GB große CSV- oder Parquet-Datei direkt per SQL ab, ohne Datenbank, ohne Schema, ohne Ladevorgang.
Wo ClickHouse nicht die richtige Wahl ist
Drei Grenzen solltest Du kennen, bevor Du anfängst, und die erste ist die wichtigste.
ClickHouse ist kein Ersatz für Deine Anwendungsdatenbank. Es ist nicht für viele kleine Schreib- und Änderungsoperationen gebaut, kennt keine klassischen Transaktionen und keine Fremdschlüssel. Deine Bestellungen, Nutzerkonten und Warenkörbe bleiben in Postgres oder MySQL. ClickHouse kommt als zweite Datenbank daneben, nicht an deren Stelle.
Einzelne Zeilen zu ändern oder zu löschen ist unangenehm. UPDATE und DELETE gibt es zwar, sie laufen aber als aufwändige Hintergrundoperation und nicht sofort. Wer regelmäßig einzelne Datensätze korrigieren muss, arbeitet gegen die Bauart der Datenbank an.
Und bei kleinen Datenmengen bringt es nichts. Unter ein paar Millionen Zeilen ist Postgres mit einem passenden Index genauso schnell und deutlich einfacher zu betreiben. Der Aufwand lohnt erst, wenn die Datenmenge Dir tatsächlich wehtut.
Fazit
ClickHouse lohnt sich ab dem Moment, in dem Auswertungen an ihrer Datenmenge scheitern und Dein Ausweichmanöver bisher darin bestand, den Datenbankserver größer zu buchen. Dann bekommst Du für den Preis eines mittleren Servers Antwortzeiten, für die man sonst ein Cloud-Warehouse mit variabler Rechnung bucht, und das ohne Lizenzkosten und ohne funktionale Einschränkung in der freien Version.
Wenn Du Dich für den Aufbau entscheidest, brauchst Du neben ClickHouse noch zwei Teile: etwas, das die Daten aus Deinen Quellsystemen holt, und etwas, das sie anzeigt. Für den ersten Teil ist Airbyte der naheliegende Weg, für den zweiten Metabase. Alle drei lassen sich selbst hosten, und zusammen ergeben sie einen Auswertungs-Stack, der ohne einen einzigen Abo-Vertrag auskommt.
Weiterlesen.
Web & CodeAirbyte selbst hosten: Daten automatisch zusammenführen
Airbyte holt Daten aus über 600 Quellen wie Stripe, HubSpot oder Postgres und schreibt sie automatisch dorthin, wo Du sie auswerten willst. Was das Tool leistet, warum es gerade so beliebt wird und wie Du es mit einem Befehl selbst hostest…
Sonoya Redaktion
Web & CodeMetabase: Das Beste kostenlose Open Source Dashboard-Tool für Selbsthosting
Wenn Du auf der Suche nach einem leistungsstarken, flexiblen und zugleich kostenlosen Dashboard-Tool bist, das sich selbst hosten lässt, dann ist Metabase genau das Richtige.
Sonoya Redaktion
Web & CodeAnleitung: Linkwarden mit Docker selbst hosten
Linkwarden sammelt Deine Lesezeichen, liest Artikel im Reader-Modus und archiviert jede Seite als Screenshot, PDF und HTML. So richtest Du den Open-Source-Bookmark-Manager mit Docker Compose auf Deinem eigenen Server ein, damit alle Daten bei Dir bleiben …
Sonoya Redaktion
Web & CodeAnleitung: linkding mit Docker selbst hosten
Deine Lesezeichen liegen verstreut in mehreren Browsern und werden über fremde Clouds synchronisiert? linkding ist ein minimalistischer, selbst gehosteter Bookmark-Manager. Hier richtest Du ihn Schritt für Schritt mit Docker auf Deinem eigenen Server ein, vom Container bis zur Browser-Erweiterung…
Sonoya Redaktion
Web & Coden8n-Daten automatisch auf DigitalOcean Spaces sichern
n8n speichert Deine Workflows und vor allem Deine Zugangsdaten in einem Docker-Volume auf dem Server. Geht das Droplet verloren, ist ohne Backup alles weg, denn ein automatisches Volume-Backup gibt es nicht. In dieser Anleitung sicherst Du Deine n8n-Daten jede Nacht automatisch auf DigitalOcean Spaces…
Sonoya Redaktion
Web & CodePostiz: Open-Source-Alternative zu Buffer & Co.
Postiz plant Deine Social-Media-Posts für über 30 Netzwerke, ist quelloffen und lässt sich selbst hosten. Was das Tool kann, was es kostet, wie Du es kostenlos testest und drei Wege, wie Du daraus echten Nutzen oder ein eigenes Angebot machst.
Sonoya Redaktion