Prérequis
- Accès à votre base de données PostgreSQL source.
psql,pg_dumpetpg_restoreinstallés sur votre machine locale. Ils servent à créer des tables vides dans votre base de données cible. Ils sont généralement inclus dans les installations de PostgreSQL. Sinon, vous pouvez les télécharger depuis le site officiel de PostgreSQL.- Votre base de données source doit être accessible depuis ClickHouse Managed Postgres. Assurez-vous que toutes les règles de pare-feu ou tous les paramètres de groupe de sécurité nécessaires autorisent cette connectivité. Vous pouvez obtenir l’adresse IP de sortie de votre instance Managed Postgres comme suit :
La configuration
- La base de données source doit avoir
wal_leveldéfini surlogical. - La base de données source doit avoir
max_replication_slotsdéfini sur au moins1. - Pour RDS (utilisé ici comme exemple), vous devez vous assurer que votre groupe de paramètres a
rds.logical_replicationdéfini sur1. - Le database user de la base de données source doit disposer du privilège
REPLICATION. Dans le cas de RDS, exécutez : - Le rôle que vous utilisez pour la base de données cible doit disposer des privilèges d’écriture sur les objets de la base de données cible :
Dump du schéma de la base de données source uniquement
pg_dump :
- Remplacez
<user>,<password>,<host>,<port>et<database>par les credentials de votre base de données source. -sindique que nous voulons un dump du schéma uniquement.--format directoryindique que nous voulons un dump au format répertoire, adapté àpg_restore.-f rds-dumpindique le répertoire de sortie des fichiers du dump. Notez que ce répertoire sera créé automatiquement et ne doit pas exister au préalable.
events et users. events contient un million de lignes, et users en contient mille.
Créez une instance Managed Postgres
Restaurer le schéma dans ClickHouse Managed Postgres
pg_restore :
- Remplacez
<user>,<password>,<host>,<port>et<database>par les identifiants de connexion de votre base de données cible ClickHouse Managed Postgres. --verbosefournit une sortie détaillée pendant le processus de restauration. Cette commande créera toutes les tables, tous les index, toutes les vues et les autres objets du schéma dans la base de données cible, sans aucune donnée.
Configurer la réplication logique
Créer une publication dans la base de données source
La création d’une publication FOR ALL TABLES peut entraîner un surcoût réseau s’il existe un grand nombre de tables. Il est recommandé de ne spécifier que les tables que vous souhaitez répliquer.
Créer un abonnement sur la base de données ClickHouse Managed Postgres cible
Limites et points à prendre en compte
- La réplication logique ne réplique que les changements de données (INSERT, UPDATE, DELETE). Les changements de schéma (comme ALTER TABLE) doivent être gérés séparément.
- Assurez-vous que la connexion réseau entre les bases de données source et cible est stable afin d’éviter toute interruption de la réplication.
- Surveillez le retard de réplication pour vous assurer que la base de données cible suit bien la base de données source. Définir une valeur appropriée pour
max_slot_wal_keep_sizesur la base de données source peut aider à gérer la croissance d’un slot de réplication et à éviter qu’il ne consomme trop d’espace disque. - Selon votre cas d’usage, vous pouvez envisager de mettre en place une supervision et des alertes pour le processus de réplication.