Aller au contenu

Connexion d'un entrepôt ClickHouse

Ce guide vous accompagne dans la connexion d’une base de données ClickHouse (ClickHouse Cloud ou auto-hébergée) à Saiku Cloud. Cinq minutes si votre entrepôt est déjà public ; dix si vous devez créer un utilisateur en lecture seule.

Impact niveau : chaque niveau Saiku Cloud (Starter, Team, Business) prend en charge BYOC ClickHouse.

Ce dont vous aurez besoin

  • Une instance ClickHouse 23.8+ (les versions antérieures fonctionnent, mais la surface de dialecte que nous testons est 23.8+).
  • Une joignabilité réseau — voir l’étape 1.
  • Un accès admin à votre entrepôt pour créer un utilisateur en lecture seule (ou les identifiants d’un utilisateur existant en lecture seule).

Étape 1 — Autoriser notre IP de sortie

Les requêtes de Saiku Cloud vers votre entrepôt proviennent toutes d’une unique IP statique :

87.99.153.244

Ajoutez ceci à la liste d’autorisations réseau de votre entrepôt avant de tester la connexion. Notes par fournisseur :

  • ClickHouse Cloud : Console → votre service → Settings → Network → IP access list. Ajoutez 87.99.153.244 comme règle d’IP unique.
  • Auto-hébergé : pare-feu en façade (UFW, iptables, le security group de votre fournisseur cloud) plus <allow_for_users> dans users.xml si vous avez restreint qui peut se connecter.

L’IP est stable — nous nous engageons à un préavis d’au moins 30 jours avant toute rotation. Politique complète : notre engagement de stabilité de l’IP de sortie.

Étape 2 — Créer un utilisateur en lecture seule dans ClickHouse

Saiku Cloud ne lit que votre entrepôt — jamais d’écriture, jamais d’altération de schemas. La forme à privilège minimum :

-- As the default user or another superuser:
CREATE USER saiku_read IDENTIFIED WITH plaintext_password BY 'pick-something-strong';
-- Grant read access to the database(s) you want Saiku to see.
-- Repeat for each database.
GRANT SELECT ON analytics.* TO saiku_read;

Quelques notes :

  • plaintext_password est la méthode d’auth la plus simple ; ClickHouse Cloud prend aussi en charge sha256_password et double_sha1_password. L’un ou l’autre fonctionne pour notre connexion JDBC — le pilote hash avant le transit.
  • ClickHouse Cloud dispose d’une interface pour la gestion des utilisateurs (Console → Users) si vous préférez ne pas écrire de SQL.
  • Profil de paramètres : envisagez de créer un profil distinct pour saiku_read avec un plafond strict de max_memory_usage + max_execution_time afin qu’une requête en fuite ne puisse pas impacter votre charge de production. Voir la doc des quotas ClickHouse.

Étape 3 — Construire l’URL JDBC

La forme :

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

Exemples concrets :

  • ClickHouse Cloud : jdbc:clickhouse://my-service.us-east-1.aws.clickhouse.cloud:8443/default?ssl=true&sslMode=STRICT
  • Auto-hébergé avec reverse-proxy HTTPS : jdbc:clickhouse://ch.yourcompany.com:443/analytics?ssl=true
  • Auto-hébergé texte clair (réseau privé seulement) : jdbc:clickhouse://ch.internal:8123/analytics. L’IP de sortie de Saiku Cloud doit être autorisée au niveau réseau ; le texte clair est OK À L’INTÉRIEUR d’un réseau de confiance mais pas sur Internet ouvert.

Paramètres clés :

  • ssl=true — active TLS. Requis pour ClickHouse Cloud + recommandé pour tout déploiement public.
  • sslMode=STRICT — vérifie que le certificat serveur remonte à une CA que nous trustons + vérifie que le nom d’hôte correspond. ClickHouse Cloud utilise Let’s Encrypt donc cela fonctionne d’office.
  • compress=true — compression côté client en opt-in (LZ4 par défaut). Réduit la taille de payload JDBC pour les grands résultats ; généralement un gain pour les charges BI. Le pilote shaded clickhouse-jdbc-all embarque les libs natives LZ4 + Brotli + Zstd.

Étape 4 — Connectez-vous via l’assistant Saiku Cloud

  1. Connectez-vous à https://cloud.saiku.bi/.

  2. Naviguez vers Connexions dans la barre latérale gauche.

  3. Sous 1. Choisir le type d’entrepôt, cliquez sur la tuile ClickHouse.

  4. Renseignez :

    • URL JDBC — l’URL de l’étape 3.
    • Nom d’utilisateursaiku_read (ou le nom que vous avez donné à l’utilisateur à l’étape 2).
    • Mot de passe — le mot de passe de l’étape 2.
  5. Cliquez sur Tester la connexion.

Une bannière de résultat verte : ✓ Connection successful plus la version ClickHouse détectée → passez à l’étape 5.

Une bannière de résultat rouge → voir Dépannage.

Étape 5 — Enregistrer la connexion

Après un test réussi, l’assistant affiche une section 3. Enregistrer la connexion. Renseignez :

  • Mot de passe (ressaisir pour enregistrer) — le même mot de passe.
  • LibelléProduction ClickHouse ou Entrepôt analytique.

Cliquez sur Enregistrer la connexion.

Dépannage

✗ Connection failed (HOST_UNREACHABLE) ou (TIMEOUT)

  1. Mauvais port — vous avez utilisé 9000 (protocole natif) au lieu de 8123 (HTTP) ou 8443 (HTTPS). Le correctif est à l’étape 3.
  2. Pare-feu / allowlist d’IP — l’étape 1 n’a pas été appliquée. La « IP access list » de ClickHouse Cloud met parfois une minute à se propager après l’enregistrement ; réessayez.
  3. DNSnslookup <host> depuis votre laptop. S’il résout vers une IP privée, le garde-fou SSRF afficherait HOST_DENIED (pas HOST_UNREACHABLE).

✗ Connection failed (AUTH_FAILED)

Erreur ClickHouse 192 / 193 / 516. Le nom d’utilisateur ou le mot de passe est incorrect.

  • Sensibilité à la casse du nom d’utilisateur — les noms d’utilisateur ClickHouse sont sensibles à la casse.
  • Hôtes autorisés — votre utilisateur peut être restreint à des IP spécifiques via <allow_for_hosts> dans users.xml. Ajoutez 87.99.153.244 à cette liste, ou retirez la clause <allow_for_hosts> pour autoriser depuis n’importe où (et vous appuyer sur le pare-feu).
  • plaintext_password vs sha256_password — les deux fonctionnent avec notre pilote, mais si vous avez désaligné le type de hash stocké de l’utilisateur et le mot de passe fourni, la vérification de hash côté serveur échoue. Généralement seulement un problème lorsque vous migrez un utilisateur entre types de hash.

✗ Connection failed (DATABASE_NOT_FOUND)

Erreur ClickHouse 81. L’hôte accepte vos identifiants mais le nom de base de données dans l’URL JDBC n’existe pas. Vérifiez-le :

SHOW DATABASES;

✗ Connection failed (DIALECT_UNSUPPORTED)

L’URL ne commence pas par jdbc:clickhouse:. Si vous avez collé une URL jdbc:ch:, le résolveur de dialecte la reconnaît comme un schéma distinct et l’accepte aussi — mais assurez-vous que l’URL elle-même commence par l’un de ces deux.

Toute autre chose

Faites une capture d’écran de l’assistant avec la bannière de résultat rouge visible (en particulier la ligne Kind: ...) et envoyez-la à support@saiku.bi.

Enterprise : réseau privé

Pour les clients Enterprise utilisant une configuration de réseau privé, la règle d’IP de sortie est remplacée par un peering VPC. Le flux de l’assistant de connexion est par ailleurs identique. Contactez votre équipe de compte pour provisionner le peering.

Essayer avec FoodMart

Vous voulez tester Saiku Cloud avec ce dialecte avant de connecter vos propres données ? Téléchargez le jeu de données d’exemple FoodMart packagé pour ClickHouse :

Jeu de données d’exemple FoodMart pour ClickHouse