> ## 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.

> Configurez n’importe quelle instance Postgres en tant que source pour ClickPipes

# Guide de configuration d’une source Postgres générique

<Info>
  Si vous utilisez l’un des fournisseurs pris en charge (dans la barre latérale), consultez le guide spécifique à ce fournisseur.
</Info>

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

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

1. Pour activer la réplication sur votre instance Postgres, assurez-vous que les paramètres suivants sont définis :

   ```sql theme={null}
   wal_level = logical
   ```

   Pour le vérifier, vous pouvez exécuter la commande SQL suivante :

   ```sql theme={null}
   SHOW wal_level;
   ```

   La valeur renvoyée doit être `logical`. Sinon, exécutez :

   ```sql theme={null}
   ALTER SYSTEM SET wal_level = logical;
   ```

2. En outre, il est recommandé de définir les paramètres suivants sur l'instance Postgres :

   ```sql theme={null}
   max_wal_senders > 1
   max_replication_slots >= 4
   ```

   Pour le vérifier, vous pouvez exécuter les commandes SQL suivantes :

   ```sql theme={null}
   SHOW max_wal_senders;
   SHOW max_replication_slots;
   ```

   Si les valeurs ne correspondent pas aux valeurs recommandées, vous pouvez exécuter les commandes SQL suivantes pour les définir :

   ```sql theme={null}
   ALTER SYSTEM SET max_wal_senders = 10;
   ALTER SYSTEM SET max_replication_slots = 10;
   ```

3. Si vous avez apporté des modifications à la configuration comme indiqué ci-dessus, vous DEVEZ REDÉMARRER l'instance Postgres pour qu'elles prennent effet.

<div id="creating-a-user-with-permissions-and-publication">
  ## Création d’un utilisateur avec des permissions et une publication
</div>

Connectez-vous à votre instance Postgres en tant qu’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 permissions 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 à l’utilisateur les privilèges de réplication :

   ```sql theme={null}
   ALTER USER clickpipes_user WITH REPLICATION;
   ```

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 dont vous avez besoin afin d’éviter toute surcharge de performance.

<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 savoir comment en définir le périmètre.
</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 donné :

    ```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="enabling-connections-in-pg_hbaconf-to-the-clickpipes-user">
  ## Autoriser les connexions dans pg\_hba.conf pour l’utilisateur ClickPipes
</div>

Si vous gérez le service vous-même, vous devez autoriser les connexions de l’utilisateur ClickPipes depuis les adresses IP de ClickPipes en suivant les étapes ci-dessous. Si vous utilisez un service géré, vous pouvez faire de même en suivant la documentation du fournisseur.

1. Apportez les modifications nécessaires au fichier `pg_hba.conf` pour autoriser les connexions de l’utilisateur ClickPipes depuis les adresses IP de ClickPipes. Voici à quoi pourrait ressembler une entrée dans le fichier `pg_hba.conf` :
   ```response theme={null}
   host    all   clickpipes_user     0.0.0.0/0          scram-sha-256
   ```

2. Rechargez l’instance PostgreSQL pour que les modifications prennent effet :
   ```sql theme={null}
   SELECT pg_reload_conf();
   ```

<div id="increase-max_slot_wal_keep_size">
  ## Augmentez `max_slot_wal_keep_size`
</div>

Il s’agit d’une modification de configuration recommandée pour éviter que des transactions/commits volumineux n’entraînent la suppression du slot de réplication.

Vous pouvez augmenter le paramètre `max_slot_wal_keep_size` de votre instance PostgreSQL à une valeur plus élevée (au moins 100GB ou `102400`) en mettant à jour le fichier `postgresql.conf`.

```sql theme={null}
max_slot_wal_keep_size = 102400
```

Vous pouvez recharger l’instance Postgres pour que les modifications soient prises en compte :

```sql theme={null}
SELECT pg_reload_conf();
```

<Note>
  Pour une recommandation plus précise concernant cette valeur, vous pouvez contacter l’équipe ClickPipes.
</Note>

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

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