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

> Intégrez Estuary à ClickHouse à l’aide d’un connecteur utilisant le protocole natif

# Matérialisation directe d’Estuary dans ClickHouse

export const PartnerBadge = () => {
  return <div className="PartnerBadge">
            <div className="PartnerBadgeIcon">
                <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <polyline points="12.5 9.5 10 12 6 11 2.5 8.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <polyline points="4.54 4.41 8 3.5 11.46 4.41" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <path d="M2.15,3.78 L0.55,6.95 A0.5,0.5 0,0,0 0.77,7.62 L2.5,8.5 L4.54,4.41 L2.82,3.55 A0.5,0.5 0,0,0 2.15,3.78 Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <path d="M13.5,8.5 L15.23,7.62 A0.5,0.5 0,0,0 15.45,6.95 L13.85,3.78 A0.5,0.5 0,0,0 13.18,3.55 L11.46,4.41 Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <path d="M11.5,4.5 L9,4.5 L6.15,7.27 A0.5,0.5 0,0,0 6.24,8.05 C7.33,8.74 8.81,8.72 10,7.5 L12.5,9.5 L13.5,8.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <polyline points="7.75 13.5 5.15 12.85 3.5 11.67" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                </svg>
            </div>
            Intégration partenaire
        </div>;
};

<PartnerBadge />

Estuary propose un connecteur de matérialisation directe avec ClickHouse, qui utilise le [protocole natif](/docs/fr/concepts/features/interfaces/tcp) et le [format natif](/docs/fr/reference/formats/Native) de ClickHouse.

Cela permet à Estuary de :

* Matérialiser les données dans des instances auto-hébergées et ClickHouse Cloud
* Gérer automatiquement des tâches telles que la création de tables et l’évolution du schéma
* Prendre en charge les suppressions logiques ou physiques
* Utiliser `ReplacingMergeTree` pour les mises à jour par fusion standard ou `MergeTree` pour les mises à jour delta
* Assurer une livraison exactement une fois

Consultez l’[intégration Kafka ClickPipe d’Estuary](/docs/fr/integrations/connectors/data-ingestion/community-integrations/estuary-clickpipes) pour un workflow ClickPipes.

<div id="setup-guide">
  ## Guide de configuration
</div>

**Prérequis**

Vous aurez besoin des éléments suivants :

* Un [compte Estuary](https://dashboard.estuary.dev/register)
* Une ou plusieurs [**captures**](https://docs.estuary.dev/concepts/captures/) dans Estuary, qui extraient des données des sources de votre choix
* Une instance ClickHouse auto-hébergée ou un compte ClickHouse Cloud
* Un utilisateur de base de données ClickHouse disposant des identifiants nécessaires

<Steps>
  <Step title="Configurer ClickHouse pour l’intégration" id="1-configure-clickhouse">
    Pour configurer le connecteur ClickHouse d’Estuary, vous devez recueillir certaines informations sur votre instance ClickHouse et configurer les autorisations de l’utilisateur.

    1. Copiez l’endpoint hôte de votre base de données.

       Pour le port, utilisez **9440** si TLS est activé ou **9000** s’il est désactivé.

       L’hôte et le port forment ensemble l’**adresse** à fournir à Estuary.

    2. Accordez les autorisations nécessaires à l’utilisateur de base de données qu’Estuary utilisera.

       Pour créer et gérer automatiquement les tables, Estuary doit disposer des autorisations `CREATE`, `SELECT`, `INSERT`, etc. sur votre base de données cible, ainsi que des autorisations nécessaires à la découverte des métadonnées et à la gestion des partitions.

       Vous pouvez accorder toutes les autorisations requises en exécutant les commandes SQL suivantes et en remplaçant `<database>` et `<user>` par vos propres valeurs :

       ```sql theme={null}
       -- Accès à la base de données cible : CREATE TABLE, DROP TABLE, SELECT, INSERT, TRUNCATE, etc.
       GRANT ALL ON <database>.* TO <user>;

       -- Accès aux tables système pour la découverte des métadonnées et la gestion des partitions.
       -- Ces autorisations ne sont PAS couvertes par l’autorisation accordée sur la base de données ci-dessus.
       GRANT SELECT ON system.columns TO <user>;
       GRANT SELECT ON system.parts TO <user>;
       GRANT SELECT ON system.tables TO <user>;
       ```

    3. Vous pouvez éventuellement limiter l’accès aux tables système de l’utilisateur à la seule base de données cible.

       Pour ce faire, utilisez des politiques au niveau des lignes. Par exemple :

       ```sql theme={null}
       CREATE ROW POLICY estuary_columns ON system.columns FOR SELECT USING database = '<database>' TO <user>;
       CREATE ROW POLICY estuary_parts ON system.parts FOR SELECT USING database = '<database>' TO <user>;
       CREATE ROW POLICY estuary_tables ON system.tables FOR SELECT USING database = '<database>' TO <user>;
       ```

    Vous pouvez ensuite passer à Estuary pour terminer la configuration.
  </Step>

  <Step title="Créer une matérialisation Estuary" id="2-create-an-estuary-materialization">
    1. Dans le tableau de bord Estuary, accédez à la page [Destinations](https://dashboard.estuary.dev/materializations).
    2. Cliquez sur **+ New Materialization**.
    3. Sélectionnez le connecteur **ClickHouse**.
    4. Renseignez la section **Materialization Details** :
       * Attribuez un nom unique à votre matérialisation
       * Choisissez un plan de données (fournisseur Cloud et région)
    5. Renseignez les détails de **Endpoint Config** afin qu’Estuary puisse se connecter à votre instance ClickHouse :

       * **Address :** l’hôte et le port de votre instance
       * **Database :** le nom de la base de données cible
       * **Authentication :** le nom d’utilisateur et le mot de passe de l’utilisateur de base de données

       Vous pouvez également configurer des paramètres facultatifs, comme l’utilisation de suppressions définitives et le mode SSL à utiliser.
  </Step>

  <Step title="Configurer les collections source" id="3-configure-source-collections">
    Dans la section **Source Collections**, choisissez les sources que vous souhaitez matérialiser dans ClickHouse.

    1. Associez une **capture** existante ou ajoutez des collections de données individuelles à matérialiser dans ClickHouse.
    2. Sélectionnez une collection de données dans la liste pour la configurer davantage si nécessaire. Les options de personnalisation incluent :
       * Choisir un autre nom de table pour la collection
       * Sélectionner le comportement de fusion de la collection (utilisation ou non du mode de mises à jour delta)
       * Personnaliser le comportement de sélection des champs afin de déterminer quels champs sont matérialisés
    3. Une fois satisfait de la manière dont les données seront matérialisées dans ClickHouse, cliquez sur **Next**, puis sur **Save and Publish**.

    Estuary commencera à charger les données historiques des collections sélectionnées dans ClickHouse, puis diffusera les mises à jour à mesure qu’elles se produisent.
  </Step>
</Steps>

<div id="additional-resources">
  ## Ressources supplémentaires
</div>

Pour en savoir plus sur la configuration d’un connecteur ClickHouse avec Estuary, consultez la documentation d’Estuary :

* Consultez la [documentation d’Estuary sur la matérialisation ClickHouse](https://docs.estuary.dev/reference/Connectors/materialization-connectors/ClickHouse/).
* Outre le workflow via l’UI décrit dans ces instructions, vous pouvez également gérer la configuration du pipeline Estuary via la CLI. Consultez les [guides d’Estuary sur `flowctl`](https://docs.estuary.dev/guides/flowctl/ci-cd/) pour en savoir plus sur l’utilisation programmatique d’Estuary.
