Zum Inhalt springen

Ein ClickHouse-Warehouse verbinden

Diese Anleitung führt Sie durch das Verbinden einer ClickHouse-Datenbank (ClickHouse Cloud oder selbstgehostet) mit Saiku Cloud. Fünf Minuten, wenn Ihr Warehouse bereits öffentlich ist; zehn, wenn Sie einen Read-only-Benutzer erstellen müssen.

Plan-Auswirkung: Jeder Saiku-Cloud-Plan (Starter, Team, Business) unterstützt ClickHouse-BYOC.

Was Sie brauchen

  • Eine ClickHouse 23.8+-Instanz (ältere Versionen funktionieren, aber die Dialekt-Oberfläche, gegen die wir testen, ist 23.8+).
  • Netzwerkerreichbarkeit — siehe Schritt 1.
  • Admin-Zugriff auf Ihr Warehouse, damit Sie einen Read-only-Benutzer erstellen können (oder die Anmeldedaten eines bestehenden Read-only-Benutzers).

Schritt 1 — Unsere Egress-IP auf die Allowlist setzen

Die Queries von Saiku Cloud an Ihr Warehouse stammen alle von einer einzigen statischen IP:

87.99.153.244

Fügen Sie diese zur Netzwerk-Allowlist Ihres Warehouses hinzu, bevor Sie die Verbindung testen. Hinweise pro Provider:

  • ClickHouse Cloud: Konsole → Ihr Service → Einstellungen → Network → IP access list. Fügen Sie 87.99.153.244 als Single-IP-Regel hinzu.
  • Selbstgehostet: Firewall davor (UFW, iptables, Security Group Ihres Cloud-Providers) plus <allow_for_users> in users.xml, wenn Sie eingegrenzt haben, wer sich verbinden darf.

Die IP ist stabil — wir verpflichten uns zu mindestens 30 Tagen Vorlauf vor jeder Rotation. Vollständige Policy: unsere Verpflichtung zur Egress-IP-Stabilität.

Schritt 2 — Einen Read-only-Benutzer in ClickHouse erstellen

Saiku Cloud liest immer nur von Ihrem Warehouse — schreibt niemals, ändert niemals Schemas. Die Least-Privilege-Form:

-- Als Default-Benutzer oder ein anderer Superuser:
CREATE USER saiku_read IDENTIFIED WITH plaintext_password BY 'pick-something-strong';
-- Lese-Zugriff auf die Datenbank(en) gewähren, die Saiku sehen soll.
-- Pro Datenbank wiederholen.
GRANT SELECT ON analytics.* TO saiku_read;

Ein paar Hinweise:

  • plaintext_password ist die einfachste Auth-Methode; ClickHouse Cloud unterstützt auch sha256_password und double_sha1_password. Beide funktionieren mit unserer JDBC-Verbindung — der Treiber hasht vor dem Transport.
  • ClickHouse Cloud hat ein UI für die Benutzerverwaltung (Konsole → Users), falls Sie kein SQL schreiben möchten.
  • Settings-Profil: Erwägen Sie, ein separates Profil für saiku_read mit einem strengen max_memory_usage + max_execution_time-Cap zu erstellen, damit eine außer Kontrolle geratene Abfrage Ihren produktiven Workload nicht beeinträchtigen kann. Siehe ClickHouse-Quota-Dokumentation.

Schritt 3 — Die JDBC-URL bauen

Die Form:

jdbc:clickhouse://<host>:<port>/<database>?ssl=true

Konkrete Beispiele:

  • ClickHouse Cloud: jdbc:clickhouse://my-service.us-east-1.aws.clickhouse.cloud:8443/default?ssl=true&sslMode=STRICT
  • Selbstgehostet mit HTTPS-Reverse-Proxy: jdbc:clickhouse://ch.yourcompany.com:443/analytics?ssl=true
  • Selbstgehostet Klartext (nur privates Netzwerk): jdbc:clickhouse://ch.internal:8123/analytics. Die Egress-IP von Saiku Cloud muss auf der Netzwerkebene erlaubt sein; Klartext ist OK INNERHALB eines vertrauenswürdigen Netzwerks, aber nicht über das offene Internet.

Schlüsselparameter:

  • ssl=true — aktiviert TLS. Erforderlich für ClickHouse Cloud + empfohlen für jedes öffentliche Deployment.
  • sslMode=STRICT — verifiziert, dass das Server-Zertifikat zu einer CA gehört, der wir vertrauen + verifiziert, dass der Hostname passt. ClickHouse Cloud verwendet Let’s Encrypt, sodass dies out of the box funktioniert.
  • compress=true — opt-in clientseitige Komprimierung (standardmäßig LZ4). Verkürzt die JDBC-Payload-Größe für große Result Sets; meist ein Gewinn für BI-Workloads. Der shaded clickhouse-jdbc-all-Treiber bündelt die nativen LZ4-, Brotli- und Zstd-Libs.

Schritt 4 — Verbinden über den Saiku-Cloud-Wizard

  1. Melden Sie sich bei https://cloud.saiku.bi/ an.

  2. Navigieren Sie zu Verbindungen in der linken Seitenleiste.

  3. Klicken Sie unter 1. Warehouse-Typ wählen auf das ClickHouse-Kachel.

  4. Füllen Sie aus:

    • JDBC-URL — die URL aus Schritt 3.
    • Benutzernamesaiku_read (oder wie auch immer Sie den Benutzer in Schritt 2 benannt haben).
    • Passwort — das Passwort aus Schritt 2.
  5. Klicken Sie auf Verbindung testen.

Ein grüner Ergebnis-Banner: ✓ Connection successful plus die erkannte ClickHouse-Version → weiter zu Schritt 5.

Ein roter Ergebnis-Banner → siehe Fehlerbehebung.

Schritt 5 — Die Verbindung speichern

Nach einem erfolgreichen Test rendert der Wizard einen Abschnitt 3. Verbindung speichern. Füllen Sie aus:

  • Passwort (zum Speichern erneut eingeben) — dasselbe Passwort.
  • LabelProduction ClickHouse oder Analytics warehouse.

Klicken Sie auf Verbindung speichern.

Fehlerbehebung

✗ Connection failed (HOST_UNREACHABLE) oder (TIMEOUT)

  1. Falscher Port — Sie haben 9000 (Native Protocol) statt 8123 (HTTP) oder 8443 (HTTPS) verwendet. Die Behebung ist in Schritt 3.
  2. Firewall / IP-Allowlist — Schritt 1 wurde nicht angewendet. Die „IP access list” von ClickHouse Cloud braucht manchmal eine Minute zum Propagieren nach dem Speichern; erneut versuchen.
  3. DNSnslookup <host> von Ihrem Laptop. Wenn er auf eine private IP auflöst, würde der SSRF-Schutz HOST_DENIED anzeigen (nicht HOST_UNREACHABLE).

✗ Connection failed (AUTH_FAILED)

ClickHouse-Fehler 192 / 193 / 516. Benutzername oder Passwort ist falsch.

  • Case-Sensitivität des Benutzernamens — ClickHouse-Benutzernamen sind case-sensitiv.
  • Erlaubte Hosts — Ihr Benutzer könnte über <allow_for_hosts> in users.xml auf bestimmte IPs eingeschränkt sein. Fügen Sie 87.99.153.244 dieser Liste hinzu oder entfernen Sie die <allow_for_hosts>-Klausel, um von überall zu erlauben (und sich auf die Firewall zu verlassen).
  • plaintext_password vs. sha256_password — beides funktioniert mit unserem Treiber, aber wenn Sie den gespeicherten Hash-Typ des Benutzers und das angegebene Passwort nicht abgleichen, schlägt der serverseitige Hash-Check fehl. Meist nur ein Problem, wenn Sie einen Benutzer zwischen Hash-Typen migrieren.

✗ Connection failed (DATABASE_NOT_FOUND)

ClickHouse-Fehler 81. Der Host akzeptiert Ihre Anmeldedaten, aber der Datenbankname in der JDBC-URL existiert nicht. Verifizieren Sie ihn:

SHOW DATABASES;

✗ Connection failed (DIALECT_UNSUPPORTED)

Die URL beginnt nicht mit jdbc:clickhouse:. Wenn Sie eine jdbc:ch:-URL eingefügt haben, matcht der Dialekt-Resolver dies als separates Schema und akzeptiert es ebenfalls — aber stellen Sie sicher, dass die URL selbst mit einem dieser beiden beginnt.

Alles andere

Machen Sie einen Screenshot des Wizards mit sichtbarem rotem Ergebnis-Banner (Kind: ...-Zeile insbesondere) und senden Sie ihn an support@saiku.bi.

Enterprise: privates Netzwerk

Für Enterprise-Kunden, die ein privates Netzwerk-Setup betreiben, wird die Egress-IP-Regel durch VPC-Peering ersetzt. Der Flow des Connection-Wizards ist ansonsten identisch. Kontaktieren Sie Ihr Account-Team, um das Peering bereitzustellen.

Mit FoodMart ausprobieren

Möchten Sie Saiku Cloud mit diesem Dialekt testen, bevor Sie Ihre eigenen Daten verbinden? Laden Sie den FoodMart-Sample-Datensatz, gepackt für ClickHouse, herunter:

FoodMart-Sample-Datensatz für ClickHouse