Passer au contenu principal
Un guide complet de migration de PostgreSQL vers ClickHouse, avec des conseils sur la modélisation des données et les concepts équivalents, est disponible ici. La suite explique comment connecter ClickHouse à PostgreSQL.
Cette page présente les options suivantes pour intégrer PostgreSQL à ClickHouse :
  • utiliser le moteur de table PostgreSQL pour lire les données d’une table PostgreSQL
  • utiliser le moteur de base de données expérimental MaterializedPostgreSQL pour synchroniser une base de données PostgreSQL avec une base de données ClickHouse
Découvrez notre service Managed Postgres. S’appuyant sur un stockage NVMe physiquement co-localisé avec les ressources de calcul, il offre des performances jusqu’à 10x supérieures pour les workloads limités par le disque par rapport aux solutions reposant sur un stockage en réseau comme EBS, et vous permet de répliquer vos données Postgres vers ClickHouse à l’aide du connecteur Postgres CDC dans ClickPipes.

Utilisation du moteur de table PostgreSQL

Le moteur de table PostgreSQL permet d’exécuter des opérations SELECT et INSERT sur des données stockées sur un serveur PostgreSQL distant depuis ClickHouse. Cet article illustre les méthodes de base pour l’intégration à l’aide d’une table.

1. Configurer PostgreSQL

  1. Dans postgresql.conf, ajoutez l’entrée suivante pour que PostgreSQL écoute sur les interfaces réseau :
  1. Créez un utilisateur permettant de se connecter depuis ClickHouse. À des fins de démonstration, cet exemple accorde tous les privilèges de superutilisateur.
  1. Créez une nouvelle base de données dans PostgreSQL :
  1. Créez une nouvelle table :
  1. Ajoutons quelques lignes pour effectuer des tests :
  1. Pour configurer PostgreSQL afin d’autoriser les connexions à la nouvelle base de données avec le nouvel utilisateur pour la réplication, ajoutez l’entrée suivante au fichier pg_hba.conf. Mettez à jour la ligne d’adresse avec le sous-réseau ou l’adresse IP de votre serveur PostgreSQL :
  1. Rechargez la configuration pg_hba.conf (adaptez cette commande à votre version) :
  1. Vérifiez que le nouvel utilisateur clickhouse_user peut se connecter :
Si vous utilisez cette fonctionnalité dans ClickHouse Cloud, vous devrez peut-être autoriser l’accès à votre instance PostgreSQL depuis les adresses IP de ClickHouse Cloud. Consultez la Cloud Endpoints API de ClickHouse pour obtenir des détails sur le trafic d’egress.

2. Définir une table dans ClickHouse

  1. Connectez-vous à clickhouse-client :
  1. Créons une nouvelle base de données :
  1. Créez une table utilisant PostgreSQL :
Les paramètres minimaux requis sont :
Consultez la page de documentation du moteur de table PostgreSQL pour obtenir la liste complète des paramètres.

3 Tester l’intégration

  1. Dans ClickHouse, affichez les lignes initiales :
La table ClickHouse devrait être automatiquement remplie avec les deux lignes déjà présentes dans la table PostgreSQL :
  1. De retour dans PostgreSQL, insérez quelques lignes dans la table :
  1. Ces deux nouvelles lignes devraient apparaître dans votre table ClickHouse :
La réponse doit être :
  1. Voyons ce qui se passe lorsque vous ajoutez des lignes à la table ClickHouse :
  1. Les lignes ajoutées dans ClickHouse doivent apparaître dans la table PostgreSQL :
Cet exemple a montré l’intégration de base entre PostgreSQL et ClickHouse à l’aide du moteur de table PostrgeSQL. Consultez la page de documentation du moteur de table PostgreSQL pour découvrir d’autres fonctionnalités, comme la spécification de schémas, le renvoi d’un sous-ensemble de colonnes et la connexion à plusieurs répliques. Consultez également le billet de blog ClickHouse and PostgreSQL - a match made in data heaven - partie 1.

Utilisation du moteur de base de données MaterializedPostgreSQL

Le moteur de base de données PostgreSQL utilise les fonctionnalités de réplication de PostgreSQL pour créer une réplique de la base de données contenant tout ou partie des schémas et des tables. Cet article vise à illustrer les méthodes de base d’intégration à l’aide d’une base de données, d’un schéma et d’une table. Dans les procédures suivantes, la CLI PostgreSQL (psql) et la ClickHouse CLI (clickhouse-client) sont utilisées. Le serveur PostgreSQL est installé sur Linux. La configuration ci-dessous présente les paramètres minimaux si la base de données PostgreSQL est une nouvelle installation de test.

1. Dans PostgreSQL

  1. Dans postgresql.conf, définissez les niveaux d’écoute minimums, le wal level de réplication et les slots de réplication :
ajoutez les entrées suivantes :
*ClickHouse nécessite au minimum le wal level logical et au moins 2 replication slots
  1. Avec un compte Admin, créez un utilisateur pour vous connecter depuis ClickHouse :
*pour les besoins de la démonstration, tous les droits de superutilisateur ont été accordés.
  1. créez une nouvelle base de données :
  1. connectez-vous à la nouvelle base de données avec psql :
  1. créez une nouvelle table :
  1. ajouter les premières lignes :
  1. Configurez PostgreSQL pour autoriser les connexions à la nouvelle base de données avec le nouvel utilisateur pour la réplication. Voici l’entrée minimale à ajouter au fichier pg_hba.conf :
*à des fins de démonstration, cette méthode utilise l’authentification par mot de passe en clair. mettez à jour la ligne d’adresse avec soit le sous-réseau, soit l’adresse du serveur, conformément à la documentation PostgreSQL
  1. rechargez la configuration pg_hba.conf avec une commande semblable à celle-ci (à adapter selon votre version) :
  1. Testez la connexion avec le nouvel utilisateur clickhouse_user :

2. Dans ClickHouse

  1. connectez-vous au ClickHouse CLI
  1. Activez la fonctionnalité expérimentale PostgreSQL pour le moteur de base de données :
  1. Créez la nouvelle base de données à répliquer et définissez la table initiale :
options minimales :
Pour le guide complet du moteur de base de données PostgreSQL, consultez https://clickhouse.com/docs/engines/database-engines/materialized-postgresql/#settings
  1. Vérifiez que la table initiale contient des données :

3. Tester la réplication de base

  1. Dans PostgreSQL, ajoutez de nouvelles lignes :
  1. Dans ClickHouse, vérifiez que les nouvelles lignes sont bien visibles :

4. Résumé

Ce guide d’intégration s’est appuyé sur un exemple simple montrant comment répliquer une base de données avec une table. Il existe toutefois des options plus avancées, notamment pour répliquer l’ensemble de la base de données ou ajouter de nouvelles tables et de nouveaux schémas aux réplications existantes. Bien que les commandes DDL ne soient pas prises en charge pour cette réplication, le moteur peut être configuré pour détecter les modifications et recharger les tables lorsque des changements de structure sont effectués.
Pour en savoir plus sur les fonctionnalités disponibles dans les options avancées, consultez la documentation de référence.
Dernière modification le 2 juillet 2026