Elasticsearch vous permet d’indexer des données rapidement et en toute flexibilité. Essayez-le gratuitement dans le cloud ou exécutez-le en local pour découvrir à quel point l’indexation peut être simple.
Airbyte est un outil d'intégration de données qui vous permet de déplacer des informations de différentes sources vers différentes destinations de manière automatisée et évolutive. Il vous permet d'extraire des données à partir d'API, de bases de données et d'autres systèmes et de les charger dans des plateformes telles qu'Elasticsearch, qui offre des fonctions de recherche avancée et d'analyse efficace.
Dans cet article, nous expliquerons comment configurer Airbyte pour ingérer des données dans Elasticsearch, en abordant les concepts clés, les conditions préalables et l'intégration étape par étape.

Concepts fondamentaux de l'airbyte
L'utilisation d'Airbyte repose sur plusieurs concepts essentiels. Nous en présentons ci-dessous les principales :
- Sources : Définit l'origine des données qui seront extraites.
- Destinations : Définit l'endroit où les données seront envoyées et stockées.
- Connexions : Configure la relation entre la source et la destination, y compris la fréquence de synchronisation.
Intégration d'Airbyte avec Elasticsearch
Dans cette démonstration, nous allons réaliser une intégration où les données stockées dans un bucket S3 seront migrées vers un index Elasticsearch. Nous allons montrer comment configurer la source (S3) et la destination (Elasticsearch) dans Airbyte.
Produits requis
Pour suivre cette démonstration, les conditions suivantes doivent être remplies :
- Créez un godet dans AWS, où les fichiers JSON contenant les données seront stockés.
- Installez Airbyte localement à l'aide de Docker.
- Créer un cluster Elasticsearch dans Elastic Cloud pour stocker les données ingérées.
Nous détaillons ci-dessous chacune de ces étapes.
Installation d'Airbyte
Airbyte peut être exécuté localement à l'aide de Docker ou dans le nuage, où des coûts sont associés à l'utilisation. Pour cette démonstration, nous utiliserons la version locale avec Docker.
L'installation peut prendre quelques minutes. Après avoir suivi les instructions d'installation, Airbyte sera disponible à l'adresse suivante : http://localhost:8000.

Après s'être connecté, nous pouvons commencer à configurer l'intégration.
Création du seau
Dans cette étape, vous aurez besoin d'un compte AWS pour créer un seau S3. En outre, il est essentiel de définir les autorisations correctes en créant une politique et un utilisateur IAM pour permettre l'accès au seau.
Dans le seau, nous téléchargerons des fichiers JSON contenant différents enregistrements de journaux, qui seront ensuite migrés vers Elasticsearch. Les fichiers journaux ont ce contenu :
Vous trouverez ci-dessous les fichiers chargés dans le seau :

Configuration de l'Elastic Cloud
Pour faciliter la démonstration, nous utiliserons Elastic Cloud. Si vous n'avez pas encore de compte, vous pouvez créer un compte d'essai gratuit ici : Enregistrement Elastic Cloud.
Après avoir configuré le déploiement dans Elastic Cloud, vous devrez obtenir :
- L'URL du serveur Elasticsearch.
- Un utilisateur pour accéder à Elasticsearch.
Pour obtenir l'URL, allez sur Deployments > My deployment, dans application, trouvez Elasticsearch et cliquez sur 'Copy endpoint'.

Pour créer l'utilisateur, suivez les étapes ci-dessous :
- Accès à Kibana > Gestion de la pile > Utilisateurs.
- Créer un nouvel utilisateur avec le rôle de superutilisateur.
- Remplissez les champs pour créer l'utilisateur.

Maintenant que tout est en place, nous pouvons commencer à configurer les connecteurs dans Airbyte.
Configuration du connecteur source
Dans cette étape, nous allons créer le connecteur source pour S3. Pour ce faire, nous accédons à l'interface Airbyte et sélectionnons l'option Source dans le menu. Ensuite, nous rechercherons le connecteur S3. Nous détaillons ci-dessous les étapes nécessaires à la configuration du connecteur :
- Accédez à Airbyte et allez dans le menu Sources.
- Rechercher et sélectionner le connecteur S3.
- Configurez les paramètres suivants :
- Source Name (Nom de la source) : Définir un nom pour la source de données.
- Méthode de livraison : Sélectionnez Replicate Records (recommandé pour les données structurées).
- Format des données : Choisissez le format JSON.
- Stream Name (Nom du flux) : Définir le nom de l'index dans Elasticsearch.
- Bucket Name : Saisissez le nom du réservoir dans AWS.
- Clé d'accès AWS et clé secrète AWS : Saisissez les informations d'accès.
Cliquez sur Set up source et attendez la validation.

Connecteur de destination de la configuration
Dans cette étape, nous allons configurer le connecteur de destination, qui sera Elasticsearch. Pour ce faire, nous accédons au menu et sélectionnons l'option Destination. Ensuite, nous rechercherons Elasticsearch et cliquerons sur le résultat obtenu. Nous allons maintenant procéder à la configuration de cette connexion :
- Accédez à Airbyte et allez dans le menu Destinations.
- Recherchez et sélectionnez le connecteur Elasticsearch.
- Configurez les paramètres suivants :
- Méthode d'authentification : Choisissez Nom d'utilisateur/Mot de passe.
- Nom d'utilisateur et mot de passe : utilisez les informations d'identification créées dans Kibana.
- Server Endpoint : Collez l'URL copiée depuis Elastic Cloud.
Cliquez sur Configurer la destination et attendez la validation.

Création de la connexion source et de la connexion destination
Une fois la source et la destination créées, la connexion entre elles sera créée, achevant ainsi la création de l'intégration.
Vous trouverez ci-dessous les instructions pour créer la connexion :
1. Dans le menu, allez dans Connexions et cliquez sur Créer une première connexion.
2. Dans l'écran suivant, vous pouvez sélectionner une source existante ou en créer une nouvelle. Comme nous avons déjà créé une source, nous allons sélectionner la source S3.

3. L'étape suivante consiste à sélectionner la destination. Comme nous avons déjà créé le connecteur Elasticsearch, il sera sélectionné pour finaliser la configuration.

Dans l'étape suivante, il sera nécessaire de définir le mode de synchronisation et le schéma qui sera utilisé. Étant donné que seul le schéma d'enregistrement a été créé, il s'agit de la seule option disponible pour la sélection.

4. Nous allons passer à l'étape de la configuration de la connexion. Ici, nous pouvons définir le nom de la connexion et la fréquence d'exécution de l'intégration. La fréquence peut être configurée de trois manières :
- Cron: Exécute les synchronisations en fonction de l'expression cron définie par l'utilisateur (par exemple 0 0 15 * * ?, à 15:00 tous les jours) ;
- Planifié: Exécute les synchronisations à l'intervalle de temps spécifié (par ex. toutes les 24 heures, toutes les 2 heures) ;
- Manuel: Exécuter les synchronisations manuellement.
Pour cette démonstration, nous sélectionnerons l'option Manuel.
Enfin, en cliquant sur Établir la connexion, la connexion entre la source et la destination sera établie.

Synchronisation des données de S3 vers Elasticsearch
Lorsque vous revenez à l'écran Connexions, vous pouvez voir la connexion qui a été créée. Pour exécuter le processus, il suffit de cliquer sur Sync. À partir de ce moment, la migration des données de S3 vers Elasticsearch commencera.

Si tout se passe bien, vous obtiendrez l'état de synchronisation.

Visualisation des données dans Kibana
Nous allons maintenant aller dans Kibana pour analyser les données et vérifier si elles ont été indexées correctement. Dans la section Kibana Discovery, nous allons créer une vue de données appelée logs. Ainsi, nous pourrons explorer les données existant uniquement dans l'index des journaux, qui a été créé après la synchronisation.

Nous pouvons maintenant visualiser les données indexées et les analyser. De cette manière, nous avons validé l'ensemble du flux de migration en utilisant Airbyte, où nous avons chargé les données présentes dans le seau et les avons indexées dans Elasticsearch.

Conclusion : Airbyte & Intégration d'Elasticsearch
Airbyte s'est avéré être un outil efficace pour l'intégration des données, nous permettant de connecter plusieurs sources et destinations de manière automatisée. Dans ce tutoriel, nous avons montré comment ingérer des données d'un bucket S3 vers un index Elasticsearch, en mettant en évidence les principales étapes du processus.
Cette approche facilite l'ingestion de grands volumes de données et permet des analyses au sein d'Elasticsearch, telles que des recherches complexes, des agrégations et des visualisations de données.
Références
Démarrage rapide Airbyte :
https://docs.airbyte.com/using-airbyte/getting-started/oss-quickstart#part-1-install-abctl
Concepts de base :
Questions fréquentes
Qu'est-ce qu'Airbyte ?
Airbyte est un outil d'intégration de données qui vous permet de déplacer des informations de différentes sources vers différentes destinations de manière automatisée et évolutive.




