Skip to main content
Vous pouvez suivre ce chemin vous-même, l’automatiser avec un script ou le confier à un agent IA. Passez à la vue Cloud UI pour afficher la version console.Cette page explique comment provisionner ClickHouse Managed Postgres, charger des données, les répliquer vers ClickHouse et exécuter des requêtes sur celles-ci, le tout depuis la ligne de commande avec le ClickHouse CLI (clickhousectl) et psql. Les commandes s’exécutent en mode non interactif ; clickhousectl renvoie du JSON avec --json.

Prérequis

Installez la ClickHouse CLI :
Vous avez également besoin de psql (outils du client PostgreSQL ; sous macOS, brew install libpq) et de jq.Les opérations en écriture (create, delete) nécessitent une authentification par clé API ; la connexion OAuth est en lecture seule :
Vous pouvez également définir les variables d’environnement CLICKHOUSE_CLOUD_API_KEY et CLICKHOUSE_CLOUD_API_SECRET. Vérifiez avec clickhousectl cloud auth status ; vous devriez voir une entrée avec la portée read/write.

Partie 1 : Créer Postgres et charger les données

Créer un service Postgres

Créez le service et enregistrez la réponse ; le mot de passe n’est affiché qu’une seule fois :
La réponse inclut l’ID du service, le nom d’hôte et une chaîne de connexion prête à l’emploi :
Extrayez les éléments nécessaires pour la suite de ce guide :
Si le mot de passe est perdu, générez-en un nouveau avec clickhousectl cloud postgres reset-password $PG_ID --generate.

Attendez que le service soit provisionné

Le provisionnement prend quelques minutes. Vérifiez régulièrement jusqu’à ce que l’état soit running :

Charger des données d’exemple

Créez deux tables, puis insérez 1 million d’événements avec psql :
L’insertion de 1 M de lignes s’effectue en environ 7 secondes sur c6gd.large (la plus petite taille), grâce au stockage NVMe. Vérifiez-le avec une requête ; le nombre de lignes varie d’une exécution à l’autre, car les données sont générées avec random() :

Partie 2 : Répliquer dans ClickHouse

Créer un service ClickHouse

Créez un service dans la même région et enregistrez la réponse ; le mot de passe n’apparaît que dans la réponse de création :
Attendez qu’il soit actif ; le ClickPipe nécessite une destination active :
Pour utiliser plutôt un service existant, définissez CH_ID à partir de clickhousectl cloud service list et CH_PASSWORD sur le mot de passe de l’utilisateur default, requis à l’étape pg_clickhouse.

Répliquer les tables vers ClickHouse

Créez un Postgres CDC ClickPipe sur le service ClickHouse, en pointant vers le nom d’hôte de Managed Postgres. Le pipe copie les lignes existantes, puis maintient ClickHouse synchronisé avec les changements ultérieurs :
Remarques :
  • Les tables répliquées sont créées dans la base de données default du service ClickHouse, selon les cibles de --table-mapping
  • La publication et le slot de réplication sont créés automatiquement, la publication étant limitée aux tables mappées ; passez --publication-name pour utiliser celle que vous gérez vous-même
  • Utilisez directement le nom d’hôte de Postgres ; la réplication n’est pas prise en charge via PgBouncer

Attendez que le pipe passe à l’état Running

Le pipe passe par Provisioning, Setup et (pour les tables plus volumineuses) Snapshot avant de passer à l’état Running, ce qui prend environ 4 minutes pour le premier pipe sur un service. Failed et InternalError sont des états terminaux :

Interroger les données répliquées dans ClickHouse

Exécutez des requêtes SQL sur le service ClickHouse directement depuis la CLI. Le premier appel crée automatiquement un endpoint Query API et une clé API limitée à ce service :
Les nouvelles écritures dans Postgres sont répliquées en continu. Insérez une ligne, puis interrogez régulièrement jusqu’à ce que le nombre atteigne 1 000 001 (généralement en moins d’une minute) :

Interroger ClickHouse depuis Postgres

L’extension pg_clickhouse permet à Postgres de servir de couche de requête unifiée pour les données transactionnelles et analytiques. Récupérez le nom d’hôte HTTPS de ClickHouse, puis configurez l’extension via psql :
Le heredoc est volontairement non guillemeté, afin que le shell substitue $CH_HOST et $CH_PASSWORD avant que le SQL n’arrive à Postgres. Les tables répliquées sont désormais visibles comme des tables étrangères dans le schéma organization ; les requêtes qui les ciblent s’exécutent dans ClickHouse.Mesurées sur c6gd.large avec ce jeu de données, les requêtes analytiques s’exécutent 6 à 9 fois plus vite via les tables étrangères (par exemple, un GROUP BY avec 5 agrégations : 176 ms via ClickHouse contre 1 133 ms en local ; un JOIN avec agrégations : 298 ms contre 2 764 ms).

Nettoyage

Supprimez d’abord le ClickPipe, puis le service Postgres. La suppression d’un service entraîne la suppression définitive de toutes ses données :
Un service ClickHouse en cours d’exécution ne peut pas être supprimé directement. Arrêtez-le, attendez qu’il soit stopped, puis supprimez-le :
Dernière modification le 24 juillet 2026