> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Configurer Amazon RDS Postgres comme source pour ClickPipes

# Guide de configuration de la source RDS Postgres

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

<div id="supported-postgres-versions">
  ## Versions de Postgres prises en charge
</div>

ClickPipes prend en charge Postgres à partir de la version 12.

<div id="enable-logical-replication">
  ## Activer la réplication logique
</div>

Vous pouvez ignorer cette section si votre instance RDS est déjà configurée avec le paramètre suivant :

* `rds.logical_replication = 1`

Ce paramètre est généralement préconfiguré si vous avez déjà utilisé un autre outil de réplication des données.

```text theme={null}
postgres=> SHOW rds.logical_replication ;
 rds.logical_replication
-------------------------
 on
(1 row)
```

Si ce n’est pas déjà configuré, suivez ces étapes :

1. Créez un nouveau groupe de paramètres pour votre version de Postgres avec les paramètres requis :
   * Définissez `rds.logical_replication` sur 1

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/Kmm8X3tBno--Vzxh/images/integrations/data-ingestion/clickpipes/postgres/source/rds/parameter_group_in_blade.png?fit=max&auto=format&n=Kmm8X3tBno--Vzxh&q=85&s=5c35a75f0cc5020280efb1881d9f260b" alt="Où trouver les groupes de paramètres dans RDS ?" size="lg" border width="1800" height="819" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/parameter_group_in_blade.png" />

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/Kmm8X3tBno--Vzxh/images/integrations/data-ingestion/clickpipes/postgres/source/rds/change_rds_logical_replication.png?fit=max&auto=format&n=Kmm8X3tBno--Vzxh&q=85&s=45bdaf4e45f2f8b257fa27af89a69b71" alt="Modification de rds.logical_replication" size="lg" border width="1800" height="795" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/change_rds_logical_replication.png" />

2. Appliquez le nouveau groupe de paramètres à votre base de données RDS Postgres

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/Kmm8X3tBno--Vzxh/images/integrations/data-ingestion/clickpipes/postgres/source/rds/modify_parameter_group.png?fit=max&auto=format&n=Kmm8X3tBno--Vzxh&q=85&s=ece94ea3c7f0a56e516b9e71848bfff1" alt="Modification de RDS Postgres avec le nouveau groupe de paramètres" size="lg" border width="1800" height="1352" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/modify_parameter_group.png" />

3. Redémarrez votre instance RDS pour appliquer les modifications

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/Kmm8X3tBno--Vzxh/images/integrations/data-ingestion/clickpipes/postgres/source/rds/reboot_rds.png?fit=max&auto=format&n=Kmm8X3tBno--Vzxh&q=85&s=0bdbf9c4a6aed8e6005dccb3f0519104" alt="Redémarrage de RDS Postgres" size="lg" border width="1800" height="757" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/reboot_rds.png" />

<div id="configure-database-user">
  ## Configurer l’utilisateur de la base de données
</div>

Connectez-vous à votre instance RDS Postgres en tant qu’utilisateur administrateur et exécutez les commandes suivantes :

1. Créez un utilisateur dédié pour ClickPipes :

   ```sql theme={null}
   CREATE USER clickpipes_user PASSWORD 'some-password';
   ```

2. 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 privilèges pour le schéma `public`. Répétez ces commandes pour chaque schéma contenant des tables que vous souhaitez répliquer :

   ```sql theme={null}
   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;
   ```

3. Accordez les privilèges de réplication à l’utilisateur :

   ```sql theme={null}
   GRANT rds_replication TO clickpipes_user;
   ```

4. Créez une [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) 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.

<Warning>
  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](/fr/integrations/clickpipes/postgres/faq#how-should-i-scope-my-publications-when-setting-up-replication) pour obtenir des conseils sur le périmètre à définir.
</Warning>

* Pour créer une publication pour des tables spécifiques :

  ```sql theme={null}
  CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
  ```

  * Pour créer une publication pour toutes les tables d’un schéma spécifique :

    ```sql theme={null}
    CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
    ```

La publication `clickpipes` contiendra l’ensemble des événements de modification générés par les tables spécifiées et sera ensuite utilisée pour ingérer le flux de réplication.

<div id="configure-network-access">
  ## Configurer l’accès au réseau
</div>

<div id="ip-based-access-control">
  ### Contrôle d’accès basé sur l’adresse IP
</div>

Si vous souhaitez restreindre le trafic vers votre instance RDS, ajoutez les [adresses IP NAT statiques documentées](/fr/integrations/clickpipes/home#list-of-static-ips) aux `Inbound rules` du groupe de sécurité de votre instance RDS.

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/Kmm8X3tBno--Vzxh/images/integrations/data-ingestion/clickpipes/postgres/source/rds/security_group_in_rds_postgres.png?fit=max&auto=format&n=Kmm8X3tBno--Vzxh&q=85&s=1fc8cb73a54914d870d5c5a3997d1fd9" alt="Où trouver le groupe de sécurité dans RDS Postgres ?" size="lg" border width="1800" height="707" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/security_group_in_rds_postgres.png" />

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/Kmm8X3tBno--Vzxh/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png?fit=max&auto=format&n=Kmm8X3tBno--Vzxh&q=85&s=d747770a2e39dd37a336ad6c027aa30b" alt="Modifier les règles entrantes du groupe de sécurité ci-dessus" size="lg" border width="1800" height="935" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.png" />

<div id="private-access-via-aws-privatelink">
  ### Accès privé via AWS PrivateLink
</div>

Pour vous connecter à votre instance RDS via un réseau privé, vous pouvez utiliser AWS PrivateLink. Suivez notre [guide de configuration d’AWS PrivateLink pour ClickPipes](/fr/resources/support-center/knowledge-base/cloud-services/aws-privatelink-setup-for-clickpipes) pour établir la connexion.

<div id="workarounds-for-rds-proxy">
  ### Solutions de contournement pour RDS Proxy
</div>

RDS Proxy ne prend pas en charge les connections de réplication logique. Si vous utilisez des adresses IP dynamiques dans RDS et que vous ne pouvez pas utiliser un nom DNS ni une fonction Lambda, voici quelques alternatives :

1. À l’aide d’une tâche cron, résolvez périodiquement l’adresse IP de l’endpoint RDS et mettez à jour le NLB si elle a changé.
2. Utiliser les notifications d’événements RDS avec EventBridge/SNS : déclenchez automatiquement les mises à jour à l’aide des notifications d’événements AWS RDS.
3. EC2 stable : déployez une instance EC2 pour servir de service de polling ou de proxy basé sur l’IP.
4. Automatisez la gestion des adresses IP à l’aide d’outils comme Terraform ou CloudFormation.

<div id="whats-next">
  ## Et ensuite ?
</div>

Vous pouvez maintenant [créer votre ClickPipe](/fr/integrations/clickpipes/postgres/index) et commencer à ingérer des données depuis 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.
