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
PostgreSQLpour lire les données d’une table PostgreSQL - utiliser le moteur de base de données expérimental
MaterializedPostgreSQLpour synchroniser une base de données PostgreSQL avec une base de données ClickHouse
Utilisation du moteur de table PostgreSQL
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
- Dans
postgresql.conf, ajoutez l’entrée suivante pour que PostgreSQL écoute sur les interfaces réseau :
- Créez un utilisateur permettant de se connecter depuis ClickHouse. À des fins de démonstration, cet exemple accorde tous les privilèges de superutilisateur.
- Créez une nouvelle base de données dans PostgreSQL :
- Créez une nouvelle table :
- Ajoutons quelques lignes pour effectuer des tests :
- 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 :
- Rechargez la configuration
pg_hba.conf(adaptez cette commande à votre version) :
- Vérifiez que le nouvel utilisateur
clickhouse_userpeut 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
- Connectez-vous à
clickhouse-client:
- Créons une nouvelle base de données :
- Créez une table qui utilise
PostgreSQL:
Consultez la page de documentation PostgreSQL table engine pour obtenir la liste complète des paramètres.
3
Tester l’intégration
- Dans ClickHouse, affichez les premières lignes :
- De retour dans PostgreSQL, ajoutez quelques lignes à la table :
- Ces deux nouvelles lignes devraient apparaître dans votre table ClickHouse :
- Voyons ce qui se passe lorsque vous ajoutez des lignes à la table ClickHouse :
- Les lignes ajoutées dans ClickHouse devraient apparaître dans la table PostgreSQL :
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
1
Dans PostgreSQL
- Dans
postgresql.conf, définissez les niveaux d’écoute minimums, le wal level de réplication et les slots de réplication :
logical et au moins 2 replication slots- Avec un compte Admin, créez un utilisateur pour vous connecter depuis ClickHouse :
- créez une nouvelle base de données :
- connectez-vous à la nouvelle base de données avec
psql:
- créez une nouvelle table :
- ajouter les premières lignes :
- 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:
- rechargez la configuration
pg_hba.confavec une commande semblable à celle-ci (à adapter selon votre version) :
- Testez la connexion avec le nouvel utilisateur
clickhouse_user:
2
Dans ClickHouse
- connectez-vous à l’interface CLI de ClickHouse
- Activez la fonctionnalité expérimentale PostgreSQL pour le moteur de base de données :
- Créez la nouvelle base de données à répliquer et définissez la table initiale :
Pour consulter le guide complet sur le moteur de base de données PostgreSQL, rendez-vous sur https://clickhouse.com/docs/engines/database-engines/materialized-postgresql/#settings
- Vérifiez que la table initiale contient des données :
3
Tester la réplication
- Dans PostgreSQL, ajoutez de nouvelles lignes :
- Dans ClickHouse, vérifiez que les nouvelles lignes sont visibles :
4
Résumé
Ce guide d’intégration présente un exemple simple de réplication d’une base de données contenant une table. Des options plus avancées permettent toutefois de répliquer l’intégralité de la base de données ou d’ajouter de nouvelles tables et de nouveaux schémas aux réplications existantes. Bien que les commandes DDL ne soient pas prises en charge par cette réplication, le moteur peut être configuré pour détecter les modifications structurelles et recharger les tables en conséquence.
Pour découvrir davantage de fonctionnalités des options avancées, consultez la documentation de référence.