Versions de Postgres prises en charge
ClickPipes prend en charge Postgres à partir de la version 12.
Activer la réplication logique
-
Pour activer la réplication sur votre instance Postgres, nous devons nous assurer que les paramètres suivants sont définis :
wal_level = logicalPour le vérifier, vous pouvez exécuter la commande SQL suivante :
SHOW wal_level;Le résultat devrait être
logicalpar défaut. Sinon, connectez-vous à la console PlanetScale, accédez àCluster configuration->Parameters, puis faites défiler jusqu’àWrite-ahead logpour le modifier.

- De plus, il est recommandé d’augmenter la valeur du paramètre
max_slot_wal_keep_sizeau-delà de sa valeur par défaut de 4GB. Cela se fait également via la console PlanetScale, en allant dansCluster configuration->Parameters, puis en faisant défiler jusqu’àWrite-ahead log. Pour vous aider à déterminer la nouvelle valeur, consultez cette section.

Créer un utilisateur avec des permissions et une publication
Connectez-vous à votre instance PlanetScale Postgres avec l’utilisateur par défaut postgres.<...>, puis exécutez les commandes suivantes :
-
Créez un utilisateur dédié pour ClickPipes :
CREATE USER clickpipes_user PASSWORD 'some-password'; -
Accordez à l’utilisateur créé à l’étape précédente un accès en lecture seule au niveau du schéma. L’exemple suivant montre les permissions pour le schéma
public. Répétez ces commandes pour chaque schéma contenant des tables que vous souhaitez répliquer :GRANT USAGE ON SCHEMA "public" TO clickpipes_user; GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; -
Accordez à l’utilisateur les privilèges de réplication :
ALTER USER clickpipes_user WITH REPLICATION; -
Créez une publication avec les tables que vous souhaitez répliquer. Nous vous recommandons vivement de n’inclure dans la publication que les tables nécessaires afin d’éviter tout surcoût de performances.
-
Pour créer une publication pour des tables spécifiques :
CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;-
Pour créer une publication pour toutes les tables d’un schéma donné :
CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
-
La publication clickpipes définit l’ensemble des tables dont les événements de modification seront transmis à ClickPipes. Nous déconseillons d’utiliser FOR ALL TABLES sauf si vous avez l’intention de répliquer chaque table, car inclure des tables inutiles augmente le trafic WAL de Postgres vers ClickPipes et réduit l’efficacité globale de la réplication.
Points à noter
- Pour vous connecter à PlanetScale Postgres, vous devez ajouter la branche actuelle au nom d’utilisateur créé ci-dessus. Par exemple, si l’utilisateur créé s’appelle
clickpipes_user, le nom d’utilisateur réel à fournir lors de la création du ClickPipe doit êtreclickpipes_user.branch, oùbranchcorrespond à l’« id » de la branche PlanetScale Postgres actuelle. Pour le déterminer rapidement, vous pouvez vous référer au nom d’utilisateur de l’utilisateurpostgresque vous avez utilisé précédemment pour créer cet utilisateur : la partie après le point correspond à l’id de la branche. - N’utilisez pas le port
PSBouncer(actuellement6432) pour les pipes CDC qui se connectent à PlanetScale Postgres ; vous devez utiliser le port standard5432. En revanche, l’un ou l’autre port peut être utilisé pour les pipes servant uniquement au chargement initial. - Assurez-vous de vous connecter uniquement à l’instance primaire ; la connexion à des instances répliquées n’est actuellement pas prise en charge.
Et ensuite ?
Vous pouvez maintenant créer votre ClickPipe et commencer à ingérer des données de votre instance Postgres dans ClickHouse Cloud. Veillez à noter les informations de connexion utilisées lors de la configuration de votre instance Postgres, car vous en aurez besoin pendant le processus de création du ClickPipe.