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

> Acheminez des données vers ClickHouse avec les pipelines de données Airbyte

# Connecter Airbyte à 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>;
};

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>;
};

<PartnerBadge />

<Note>
  Veuillez noter que la source et la destination Airbyte pour ClickHouse sont actuellement en version alpha et ne conviennent pas au transfert de jeux de données volumineux (> 10 millions de lignes).
</Note>

<a href="https://www.airbyte.com/" target="_blank">Airbyte</a> est une plateforme open source d’intégration de données. Elle permet de créer des pipelines de données <a href="https://airbyte.com/blog/why-the-future-of-etl-is-not-elt-but-el" target="_blank">ELT</a> et est fournie avec plus de 140 connecteurs prêts à l’emploi. Ce tutoriel pas à pas montre comment configurer ClickHouse comme destination dans Airbyte et charger un jeu de données d’exemple.

<Steps>
  <Step title="Télécharger et exécuter Airbyte" id="1-download-and-run-airbyte">
    1. Airbyte s’exécute sur Docker et utilise `docker-compose`. Assurez-vous de télécharger et d’installer les dernières versions de Docker.

    2. Déployez Airbyte en clonant le dépôt GitHub officiel et en exécutant `docker-compose up` dans le terminal de votre choix :

       ```bash theme={null}
       git clone https://github.com/airbytehq/airbyte.git --depth=1
       cd airbyte
       ./run-ab-platform.sh
       ```

    3. Une fois la bannière Airbyte affichée dans votre terminal, vous pouvez vous connecter à <a href="http://localhost:8000" target="_blank">localhost:8000</a>

           <Image img="https://mintcdn.com/private-7c7dfe99/pIetLsS_hOGHqoPJ/images/integrations/data-ingestion/etl-tools/airbyte_01.webp?fit=max&auto=format&n=pIetLsS_hOGHqoPJ&q=85&s=9b435943f12c98cfa35decc6406749b0" size="lg" border alt="Bannière Airbyte" width="1400" height="386" data-path="images/integrations/data-ingestion/etl-tools/airbyte_01.webp" />

    <Note>
      Vous pouvez également vous inscrire et utiliser <a href="https://docs.airbyte.com/" target="_blank">Airbyte Cloud</a>
    </Note>
  </Step>

  <Step title="Ajouter ClickHouse comme destination" id="2-add-clickhouse-as-a-destination">
    Dans cette section, nous allons voir comment ajouter une instance ClickHouse comme destination.

    1. Démarrez votre serveur ClickHouse (Airbyte est compatible avec ClickHouse version `21.8.10.19` ou ultérieure) ou connectez-vous à votre compte cloud ClickHouse :

       ```bash theme={null}
       clickhouse-server start
       ```

    2. Dans Airbyte, sélectionnez la page "Destinations" et ajoutez une nouvelle destination :

           <Image img="https://mintcdn.com/private-7c7dfe99/pIetLsS_hOGHqoPJ/images/integrations/data-ingestion/etl-tools/airbyte_02.webp?fit=max&auto=format&n=pIetLsS_hOGHqoPJ&q=85&s=30db23316680695bf19c0a8d3147a750" size="lg" border alt="Ajouter une destination dans Airbyte" width="1132" height="896" data-path="images/integrations/data-ingestion/etl-tools/airbyte_02.webp" />

    3. Sélectionnez ClickHouse dans la liste déroulante "Destination type", puis remplissez le formulaire "Set up the destination" en indiquant le nom d'hôte et les ports de votre instance ClickHouse, le nom de la base de données, le nom d'utilisateur et le mot de passe, puis précisez s'il s'agit d'une connexion SSL (équivalente au flag `--secure` dans `clickhouse-client`) :

           <Image img="https://mintcdn.com/private-7c7dfe99/pIetLsS_hOGHqoPJ/images/integrations/data-ingestion/etl-tools/airbyte_03.webp?fit=max&auto=format&n=pIetLsS_hOGHqoPJ&q=85&s=9a59de0c1780b94c2f26f65cbf7d44fa" size="lg" border alt="Création de la destination ClickHouse dans Airbyte" width="807" height="1050" data-path="images/integrations/data-ingestion/etl-tools/airbyte_03.webp" />

    4. Félicitations ! Vous avez maintenant ajouté ClickHouse comme destination dans Airbyte.

    <Note>
      Pour utiliser ClickHouse comme destination, l'utilisateur que vous utiliserez doit disposer des autorisations nécessaires pour créer des bases de données, des tables et insérer des lignes. Nous recommandons de créer un utilisateur dédié pour Airbyte (par ex. `my_airbyte_user`) avec les autorisations suivantes :

      ```sql theme={null}
      CREATE USER 'my_airbyte_user'@'%' IDENTIFIED BY 'your_password_here';

      GRANT CREATE ON * TO my_airbyte_user;
      ```
    </Note>
  </Step>

  <Step title="Ajouter un jeu de données comme source" id="3-add-a-dataset-as-a-source">
    Le jeu de données d’exemple que nous utiliserons est le <a href="/docs/fr/get-started/sample-datasets/nyc-taxi" target="_blank">jeu de données des taxis de New York</a> (sur <a href="https://github.com/toddwschneider/nyc-taxi-data" target="_blank">GitHub</a>). Pour ce tutoriel, nous utiliserons un sous-ensemble de ce jeu de données correspondant au mois de janvier 2022.

    1. Dans Airbyte, sélectionnez la page "Sources" et ajoutez une nouvelle source de type fichier.

           <Image img="https://mintcdn.com/private-7c7dfe99/pIetLsS_hOGHqoPJ/images/integrations/data-ingestion/etl-tools/airbyte_04.webp?fit=max&auto=format&n=pIetLsS_hOGHqoPJ&q=85&s=54f8f3c069543f0833ca579452df9437" size="lg" border alt="Ajouter une source dans Airbyte" width="2034" height="1014" data-path="images/integrations/data-ingestion/etl-tools/airbyte_04.webp" />

    2. Remplissez le formulaire "Set up the source" en donnant un nom à la source et en fournissant l’URL du fichier NYC Taxi de janvier 2022 (voir ci-dessous). Veillez à sélectionner `parquet` comme format de fichier, `HTTPS Public Web` comme fournisseur de stockage et `nyc_taxi_2022` comme nom du jeu de données.

       ```text theme={null}
       https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2022-01.parquet
       ```

           <Image img="https://mintcdn.com/private-7c7dfe99/pIetLsS_hOGHqoPJ/images/integrations/data-ingestion/etl-tools/airbyte_05.webp?fit=max&auto=format&n=pIetLsS_hOGHqoPJ&q=85&s=eaa49b96d86b1c3b77c5b81a0d005257" size="lg" border alt="Création d’une source ClickHouse dans Airbyte" width="803" height="926" data-path="images/integrations/data-ingestion/etl-tools/airbyte_05.webp" />

    3. Félicitations ! Vous avez maintenant ajouté une source de type fichier dans Airbyte.
  </Step>

  <Step title="Créer une connexion et charger le jeu de données dans ClickHouse" id="4-create-a-connection-and-load-the-dataset-into-clickhouse">
    1. Dans Airbyte, ouvrez la page "Connexions" et ajoutez une nouvelle connexion

    <Image img="https://mintcdn.com/private-7c7dfe99/pIetLsS_hOGHqoPJ/images/integrations/data-ingestion/etl-tools/airbyte_06.webp?fit=max&auto=format&n=pIetLsS_hOGHqoPJ&q=85&s=08b1597ac1ccd4a3b53e20d24b3623bc" size="lg" border alt="Ajouter une connexion dans Airbyte" width="1664" height="952" data-path="images/integrations/data-ingestion/etl-tools/airbyte_06.webp" />

    2. Sélectionnez "Utiliser une source existante", puis choisissez New York City Taxi Data. Sélectionnez ensuite "Utiliser une destination existante" et choisissez votre instance ClickHouse.

    3. Remplissez le formulaire "Configurer la connexion" en choisissant une fréquence de réplication (nous utiliserons `manual` pour ce tutoriel), puis sélectionnez `nyc_taxi_2022` comme flux à synchroniser. Assurez-vous de choisir `Normalized Tabular Data` comme option de normalisation.

    <Image img="https://mintcdn.com/private-7c7dfe99/pIetLsS_hOGHqoPJ/images/integrations/data-ingestion/etl-tools/airbyte_07.webp?fit=max&auto=format&n=pIetLsS_hOGHqoPJ&q=85&s=cca97b2cf6502799aba8cf7928ef757a" size="lg" border alt="Création d’une connexion dans Airbyte" width="1158" height="1265" data-path="images/integrations/data-ingestion/etl-tools/airbyte_07.webp" />

    4. Une fois la connexion créée, cliquez sur "Synchroniser maintenant" pour déclencher le chargement des données (car nous avons choisi `Manual` comme fréquence de réplication)

    <Image img="https://mintcdn.com/private-7c7dfe99/pIetLsS_hOGHqoPJ/images/integrations/data-ingestion/etl-tools/airbyte_08.webp?fit=max&auto=format&n=pIetLsS_hOGHqoPJ&q=85&s=04b06556c1d144090303b4ecdf8d7b49" size="lg" border alt="Synchronisez maintenant dans Airbyte" width="2064" height="384" data-path="images/integrations/data-ingestion/etl-tools/airbyte_08.webp" />

    5. Le chargement de vos données commencera, vous pouvez développer la vue pour voir les logs et la progression d’Airbyte. Une fois l’opération terminée, vous verrez un message `Completed successfully` dans les logs :

    <Image img="https://mintcdn.com/private-7c7dfe99/pIetLsS_hOGHqoPJ/images/integrations/data-ingestion/etl-tools/airbyte_09.webp?fit=max&auto=format&n=pIetLsS_hOGHqoPJ&q=85&s=e7fd1c367e7dce7fef68f573aae7aa99" size="lg" border alt="Terminé avec succès" width="2457" height="839" data-path="images/integrations/data-ingestion/etl-tools/airbyte_09.webp" />

    6. Connectez-vous à votre instance ClickHouse à l’aide de votre client SQL préféré et vérifiez la table qui en résulte :

       ```sql theme={null}
       SELECT *
       FROM nyc_taxi_2022
       LIMIT 10
       ```

       La réponse devrait ressembler à :

       ```response theme={null}
       Query id: 4f79c106-fe49-4145-8eba-15e1cb36d325

       ┌─extra─┬─mta_tax─┬─VendorID─┬─RatecodeID─┬─tip_amount─┬─airport_fee─┬─fare_amount─┬─DOLocationID─┬─PULocationID─┬─payment_type─┬─tolls_amount─┬─total_amount─┬─trip_distance─┬─passenger_count─┬─store_and_fwd_flag─┬─congestion_surcharge─┬─tpep_pickup_datetime─┬─improvement_surcharge─┬─tpep_dropoff_datetime─┬─_airbyte_ab_id───────────────────────┬─────_airbyte_emitted_at─┬─_airbyte_normalized_at─┬─_airbyte_nyc_taxi_2022_hashid────┐
       │     0 │     0.5 │        2 │          1 │       2.03 │           0 │          17 │           41 │          162 │            1 │            0 │        22.33 │          4.25 │               3 │ N                  │                  2.5 │ 2022-01-24T16:02:27  │                   0.3 │ 2022-01-24T16:22:23   │ 000022a5-3f14-4217-9938-5657f9041c8a │ 2022-07-19 04:35:31.000 │    2022-07-19 04:39:20 │ 91F83E2A3AF3CA79E27BD5019FA7EC94 │
       │     3 │     0.5 │        1 │          1 │       1.75 │           0 │           5 │          186 │          246 │            1 │            0 │        10.55 │           0.9 │               1 │ N                  │                  2.5 │ 2022-01-22T23:23:05  │                   0.3 │ 2022-01-22T23:27:03   │ 000036b6-1c6a-493b-b585-4713e433b9cd │ 2022-07-19 04:34:53.000 │    2022-07-19 04:39:20 │ 5522F328014A7234E23F9FC5FA78FA66 │
       │     0 │     0.5 │        2 │          1 │       7.62 │        1.25 │          27 │          238 │           70 │            1 │         6.55 │        45.72 │          9.16 │               1 │ N                  │                  2.5 │ 2022-01-22T19:20:37  │                   0.3 │ 2022-01-22T19:40:51   │ 00003c6d-78ad-4288-a79d-00a62d3ca3c5 │ 2022-07-19 04:34:46.000 │    2022-07-19 04:39:20 │ 449743975782E613109CEE448AFA0AB3 │
       │   0.5 │     0.5 │        2 │          1 │          0 │           0 │         9.5 │          234 │          249 │            1 │            0 │         13.3 │           1.5 │               1 │ N                  │                  2.5 │ 2022-01-22T20:13:39  │                   0.3 │ 2022-01-22T20:26:40   │ 000042f6-6f61-498b-85b9-989eaf8b264b │ 2022-07-19 04:34:47.000 │    2022-07-19 04:39:20 │ 01771AF57922D1279096E5FFE1BD104A │
       │     0 │       0 │        2 │          5 │          5 │           0 │          60 │          265 │           90 │            1 │            0 │         65.3 │          5.59 │               1 │ N                  │                    0 │ 2022-01-25T09:28:36  │                   0.3 │ 2022-01-25T09:47:16   │ 00004c25-53a4-4cd4-b012-a34dbc128aeb │ 2022-07-19 04:35:46.000 │    2022-07-19 04:39:20 │ CDA4831B683D10A7770EB492CC772029 │
       │     0 │     0.5 │        2 │          1 │          0 │           0 │        11.5 │           68 │          170 │            2 │            0 │         14.8 │           2.2 │               1 │ N                  │                  2.5 │ 2022-01-25T13:19:26  │                   0.3 │ 2022-01-25T13:36:19   │ 00005c75-c3c8-440c-a8e8-b1bd2b7b7425 │ 2022-07-19 04:35:52.000 │    2022-07-19 04:39:20 │ 24D75D8AADD488840D78EA658EBDFB41 │
       │   2.5 │     0.5 │        1 │          1 │       0.88 │           0 │         5.5 │           79 │          137 │            1 │            0 │         9.68 │           1.1 │               1 │ N                  │                  2.5 │ 2022-01-22T15:45:09  │                   0.3 │ 2022-01-22T15:50:16   │ 0000acc3-e64f-4b58-8e15-dc47ff1685f3 │ 2022-07-19 04:34:37.000 │    2022-07-19 04:39:20 │ 2BB5B8E849A438E08F7FCF789E7D7E65 │
       │  1.75 │     0.5 │        1 │          1 │        7.5 │        1.25 │        27.5 │           17 │          138 │            1 │            0 │        37.55 │             9 │               1 │ N                  │                    0 │ 2022-01-30T21:58:19  │                   0.3 │ 2022-01-30T22:19:30   │ 0000b339-b44b-40b0-99f8-ebbf2092cc5b │ 2022-07-19 04:38:10.000 │    2022-07-19 04:39:20 │ DCCE79199EF9217CD769EFD5271302FE │
       │   0.5 │     0.5 │        2 │          1 │          0 │           0 │          13 │           79 │          140 │            2 │            0 │         16.8 │          3.19 │               1 │ N                  │                  2.5 │ 2022-01-26T20:43:14  │                   0.3 │ 2022-01-26T20:58:08   │ 0000caa8-d46a-4682-bd25-38b2b0b9300b │ 2022-07-19 04:36:36.000 │    2022-07-19 04:39:20 │ F502BE51809AF36582561B2D037B4DDC │
       │     0 │     0.5 │        2 │          1 │       1.76 │           0 │         5.5 │          141 │          237 │            1 │            0 │        10.56 │          0.72 │               2 │ N                  │                  2.5 │ 2022-01-27T15:19:54  │                   0.3 │ 2022-01-27T15:26:23   │ 0000cd63-c71f-4eb9-9c27-09f402fddc76 │ 2022-07-19 04:36:55.000 │    2022-07-19 04:39:20 │ 8612CDB63E13D70C1D8B34351A7CA00D │
       └───────┴─────────┴──────────┴────────────┴────────────┴─────────────┴─────────────┴──────────────┴──────────────┴──────────────┴──────────────┴──────────────┴───────────────┴─────────────────┴────────────────────┴──────────────────────┴──────────────────────┴───────────────────────┴───────────────────────┴──────────────────────────────────────┴─────────────────────────┴────────────────────────┴──────────────────────────────────┘
       ```

       ```sql theme={null}
       SELECT count(*)
       FROM nyc_taxi_2022
       ```

       La réponse est :

       ```response theme={null}
       Query id: a9172d39-50f7-421e-8330-296de0baa67e

       ┌─count()─┐
       │ 2392428 │
       └─────────┘
       ```

    7. Notez qu’Airbyte a automatiquement inféré les types de données et ajouté 4 colonnes à la table de destination. Ces colonnes sont utilisées par Airbyte pour gérer la logique de réplication et consigner les opérations. Vous trouverez plus de détails dans la  <a href="https://docs.airbyte.com/integrations/destinations/clickhouse#output-schema" target="_blank">documentation officielle d’Airbyte</a>.

       ```sql theme={null}
           `_airbyte_ab_id` String,
           `_airbyte_emitted_at` DateTime64(3, 'GMT'),
           `_airbyte_normalized_at` DateTime,
           `_airbyte_nyc_taxi_072021_hashid` String
       ```

       Maintenant que le jeu de données est chargé dans votre instance ClickHouse, vous pouvez créer une nouvelle table et utiliser des types de données ClickHouse plus appropriés (<a href="/docs/fr/get-started/sample-datasets/nyc-taxi" target="_blank">plus de détails</a>).

    8. Félicitations ! Vous avez chargé avec succès les données des taxis de New York dans ClickHouse à l’aide d’Airbyte !
  </Step>
</Steps>
