- utiliser le moteur de table
PostgreSQLpour lire depuis 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’effectuer 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 seule table.
1. Configuration de PostgreSQL
- Dans
postgresql.conf, ajoutez l’entrée suivante pour que PostgreSQL écoute sur les interfaces réseau :
- Créez un utilisateur pour permettre la connexion depuis ClickHouse. À des fins de démonstration, cet exemple octroie 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 les 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 le fichier de configuration
pg_hba.conf(adaptez cette commande selon votre version) :
- Vérifiez que le nouvel utilisateur
clickhouse_userpeut se connecter :
Si vous utilisez cette fonctionnalité dans ClickHouse Cloud, vous devrez შესაძლოა autoriser les adresses IP de ClickHouse Cloud à accéder à votre instance PostgreSQL.
Consultez la Cloud Endpoints API de ClickHouse pour obtenir des détails sur le trafic sortant.
2. Définir une Table dans ClickHouse
- Connectez-vous à
clickhouse-client:
- Créons une nouvelle base de données :
- Créez une table utilisant le moteur de table
PostgreSQL:
| paramètre | Description | exemple |
|---|---|---|
| host:port | nom d’hôte ou IP et port | postgres-host.domain.com:5432 |
| database | nom de la base de données PostgreSQL | db_in_psg |
| user | nom d’utilisateur pour se connecter à Postgres | clickhouse_user |
| password | mot de passe pour se connecter à Postgres | ClickHouse_123 |
Consultez la page de documentation sur le moteur de table PostgreSQL pour obtenir la liste complète des paramètres.
3 Tester l’intégration
- Dans ClickHouse, affichez les lignes initiales :
- De retour dans PostgreSQL, ajoutez deux lignes dans 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 - part 1.
Utilisation du moteur de base de données MaterializedPostgreSQL
psql) et la ClickHouse CLI (clickhouse-client) sont utilisées. Le serveur PostgreSQL est installé sur Linux. La configuration minimale ci-dessous s’applique si la base de données PostgreSQL est une nouvelle installation de test.
1. Dans PostgreSQL
- Dans
postgresql.conf, définissez les niveaux d’écoute minimaux, lewal levelde réplication et les slots de réplication :
logical et au moins 2 slots de réplication
- À l’aide d’un compte administrateur, créez un utilisateur pour la connexion depuis ClickHouse :
- créer une nouvelle base de données :
- connectez-vous à la nouvelle base de données avec
psql:
- créez une nouvelle table :
- insérez les lignes initiales :
- Configurez PostgreSQL pour autoriser le nouvel utilisateur de réplication à se connecter à la nouvelle base de données. Vous trouverez ci-dessous l’entrée minimale à ajouter au fichier
pg_hba.conf:
- rechargez la configuration
pg_hba.confavec une commande comme celle-ci (à adapter selon votre version) :
- Testez la connexion avec le nouvel utilisateur
clickhouse_user:
2. Dans ClickHouse
- connectez-vous à ClickHouse CLI
- Activez la fonctionnalité expérimentale PostgreSQL pour le moteur de base de données :
- Créez la nouvelle base de données qui sera répliquée et définissez la table initiale :
| parameter | Description | example |
|---|---|---|
| host:port | nom d’hôte ou adresse IP et port | postgres-host.domain.com:5432 |
| database | nom de la base de données PostgreSQL | db1 |
| user | nom d’utilisateur pour se connecter à Postgres | clickhouse_user |
| password | mot de passe pour se connecter à Postgres | ClickHouse_123 |
| settings | paramètres supplémentaires du moteur | materialized_postgresql_tables_list = ‘table1’ |
Pour le guide complet sur le moteur de base de données PostgreSQL, consultez 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 de base
- Dans PostgreSQL, ajoutez de nouvelles lignes :
- Dans ClickHouse, vérifiez que les nouvelles lignes sont bien visibles :
4. Résumé
Pour en savoir plus sur les fonctionnalités disponibles dans les options avancées, consultez la documentation de référence.