> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/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 = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<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/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/parameter_group_in_blade.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=b2883dcb98dc63142ebc039c73266959" 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.webp" />

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/change_rds_logical_replication.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=49d72c6fa5e62fa564f49649bec6d164" 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.webp" />

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

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/modify_parameter_group.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=35e6dcc962ef6ccc9cf2d60346ea1f1b" 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.webp" />

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

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/reboot_rds.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=c93af311ca2d75ba1a1955a79234eea2" 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.webp" />

<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](/docs/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` définit l’ensemble des tables dont les événements de modification seront transmis à ClickPipes. Nous vous déconseillons d’utiliser `FOR ALL TABLES`, sauf si vous comptez répliquer toutes les tables, car inclure des tables inutiles augmente le trafic WAL de Postgres vers ClickPipes et réduit l’efficacité globale de la réplication.

<div id="iam-authentication">
  ### Utiliser l’authentification IAM (facultatif)
</div>

Au lieu d’un mot de passe, vous pouvez authentifier l’utilisateur ClickPipes via le contrôle d’accès AWS IAM basé sur les rôles. Créez l’utilisateur comme suit, puis accordez-lui les mêmes privilèges de schéma et de réplication que ceux indiqués ci-dessus :

```sql theme={null}
CREATE USER clickpipes_iam_user;
GRANT rds_iam TO clickpipes_iam_user;
```

<Note>
  L'authentification IAM pour la réplication nécessite que le paramètre `rds.iam_auth_for_replication` soit défini sur `1`. Elle est prise en charge à partir de la version 11 de PostgreSQL ; sur les versions antérieures, vous ne pouvez exécuter que des ClickPipes `Initial Load Only`.
</Note>

Consultez [AWS IAM DB authentication (RDS/Aurora)](/docs/fr/integrations/clickpipes/postgres/auth) pour connaître toutes les étapes nécessaires à la configuration du rôle IAM et de la stratégie requis pour que ClickPipes s'authentifie de cette manière.

<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](/docs/fr/integrations/clickpipes/home#list-of-static-ips) aux `règles entrantes` du groupe de sécurité de votre instance RDS.

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/security_group_in_rds_postgres.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=32f6f69694b2f735d86cee4813efde34" 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.webp" />

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=1176aa14815b965b841d70d28b5f0d7c" 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.webp" />

<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](/docs/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](/docs/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.
