Passer au contenu principal

Prérequis

  • Si votre posture de sécurité ClickHouse nécessite une liste blanche d’adresses IP, ayez à disposition l’IP statique du service de synchronisation des données. Vous en aurez besoin à l’étape 1.
🚧 Tunneling SSH non pris en charge Les destinations ClickHouse ne prennent pas en charge le tunneling SSH. Votre instance ClickHouse doit être accessible via l’Internet public.

Étape 1 : autoriser l’accès

Créez une règle dans un groupe de sécurité ou les paramètres de pare-feu pour mettre en liste blanche :
  • Les connexions entrantes vers votre hôte et port (généralement 9440 pour TLS ou 9000 pour TCP) depuis l’IP statique.
  • Les connexions sortantes depuis les ports 1024 à 65535 vers l’IP statique.
📘 Mise en liste blanche du réseau
  • Cloud Hosted (US) : 35.192.85.117/32
  • Cloud Hosted (EU) : 104.199.49.149/32
Si vous êtes en cloud privé ou auto-hébergé, contactez votre représentant Metronome pour obtenir l’IP de sortie statique.

Étape 2 : créer un utilisateur en écriture

Créez un utilisateur de base de données pour écrire les données exportées.
  1. Ouvrez une connexion à votre base de données ClickHouse.
  2. Exécutez la commande SQL suivante pour créer un utilisateur pour le transfert de données :
CREATE USER <username>@'%' IDENTIFIED BY '<some-password>';
🚧 Règles de mot de passe Les mots de passe ne peuvent contenir que des caractères alphanumériques (A-Z, a-z, 0-9), des tirets (-) et des underscores (_).
  1. Accordez à l’utilisateur les privilèges requis sur la base de données :
GRANT SELECT ON information_schema.columns TO <username>;
GRANT CREATE, INSERT, DROP, ALTER, OPTIMIZE, SHOW, TRUNCATE ON <database>.* TO <username>@'%';
GRANT CREATE TEMPORARY TABLE, S3 ON *.* TO <username>@'%';
📘 Comprendre les permissions CREATE TEMPORARY TABLE et S3 Le service de synchronisation des données utilise ces permissions pour transférer efficacement les données vers ClickHouse. Il stocke les données dans un stockage d’objets sous forme de fichiers compressés, les copie dans des tables temporaires avec COPY INTO et les fusionne dans les tables cibles. La table temporaire ne persiste pas au-delà de la session.

Étape 3 : configurer un bucket de staging

Les destinations ClickHouse nécessitent un bucket de staging pour transférer efficacement les données. Configurez votre bucket de staging en utilisant l’une des options suivantes :
  • S3 — Suivez le guide de configuration du bucket de staging S3.
  • GCS — Suivez le guide de configuration du bucket de staging GCS.
  • Implicite — Utilisez les ressources de staging intégrées de votre cluster ClickHouse (voir ci-dessous).
📘 Utiliser l’option bucket implicite ClickHouse prend en charge la configuration des ressources de staging avec des identifiants d’environnement. Si ce paramètre est activé sur votre cluster ClickHouse, vous pouvez choisir l’option implicite lors de la configuration de la destination pour utiliser les ressources de staging configurées du cluster.
📘 Optionnel : ajouter une politique de cycle de vie de courte rétention Si vous utilisez S3 ou GCS pour le staging, vous pouvez configurer une règle de cycle de vie sur le bucket pour supprimer automatiquement les objets de plus de 2 jours. La logique de transfert nettoie les fichiers une fois terminée, cette étape est donc facultative.

Étape 4 : ajouter votre destination

🚧 Protocole de connexion Utilisez le protocole natif TCP de ClickHouse, pas HTTPS. Il est généralement exposé sur le port 9000.
Utilisez les détails suivants pour finaliser la configuration de la connexion :
  • Host name
  • Port
  • Cluster
  • Database name
  • Schema name
  • Username
  • Password
  • Staging bucket details
📘 Comprendre les champs database vs. schema Selon la version de votre intégration, la configuration demande à la fois une database et un schema, ou une connection database et une write database.
  • Database (également appelée connection_database) : la base de données utilisée pour établir la connexion avec ClickHouse.
  • Schema (également appelée write_database) : la base de données ou le schéma dans lequel le service écrit les données.
Ils peuvent avoir la même valeur, mais ce n’est pas obligatoire.

Interroger les données ClickHouse

Les tables ClickHouse résultantes utilisent le moteur de table ReplacingMergeTree pour effectuer efficacement les upserts. Utilisez le mot-clé FINAL lors de la sélection à partir de ces tables pour supprimer les doublons.
SELECT
  *
FROM
  schema.table FINAL
WHERE
  foo = bar
ORDER BY foo
LIMIT 10;