Voici un guide expliquant comment configurer Supabase Postgres pour l’utiliser avec ClickPipes.
ClickPipes prend nativement en charge Supabase via IPv6 pour une réplication fluide.
Création d’un utilisateur avec les permissions et le slot de réplication
Connectez-vous à votre instance Supabase en tant qu’utilisateur admin, puis exécutez les commandes suivantes :
-
Créez un utilisateur dédié pour ClickPipes :
CREATE USER clickpipes_user PASSWORD 'some-password';
-
Accordez un accès en lecture seule au niveau du schéma à l’utilisateur créé à l’étape précédente. 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 les privilèges de réplication à l’utilisateur :
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 toute surcharge de performances.
Toute table incluse dans la publication doit soit avoir une clé primaire définie, soit avoir sa replica identity configurée sur FULL. Consultez la FAQ Postgres pour savoir comment en définir le périmètre.
-
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 contiendra l’ensemble des événements de modification générés à partir des tables spécifiées, et sera ensuite utilisée pour ingérer le flux de réplication.
Augmentez max_slot_wal_keep_size
Cette étape redémarrera votre base de données Supabase et peut entraîner une brève indisponibilité.Vous pouvez augmenter le paramètre max_slot_wal_keep_size de votre base de données Supabase à une valeur plus élevée (au moins 100GB ou 102400) en suivant la documentation SupabasePour obtenir une recommandation plus précise concernant cette valeur, vous pouvez contacter l’équipe ClickPipes.
Rendez-vous dans Project Settings -> Database de votre projet Supabase (sous Configuration).
Important : désactivez Display connection pooler sur cette page, puis accédez à la section Connection parameters et notez ou copiez les paramètres.
Le pooler de connexions n’est pas pris en charge pour la réplication basée sur le CDC. Il doit donc être désactivé.
L’utilisateur Postgres de ClickPipes ne doit pas être soumis à des politiques RLS restrictives, car cela peut entraîner des données manquantes. Vous pouvez désactiver les politiques RLS pour cet utilisateur en exécutant la commande ci-dessous :
ALTER USER clickpipes_user BYPASSRLS;
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 lors de la création du ClickPipe.