Découverte d’Airbyte : un 1er connecteur SFTP vers PostgreSQL
Chez iiiData, on a fait le choix de l’open-source au maximum pour toute notre stack technique. A mon tour aujourd’hui de vous parler de l’outil qui nous occupe bien depuis plusieurs mois avec Martin pour récupérer des données, à savoir Airbyte.
Ben oui, on hâte de vous parler de nos modèles de Data Science qui vont (sans aucun doute …) révolutionner le monde de la Data Science mais pour l’instant, on est dans la phase de collecte des données, d’où AIRBYTE !
Airbyte est un outil open-source permettant de faire de l’intégration de données. Vous connaissez sans doute les outils type ELT ou ETL (E pour Extraction, L pour Load ou chargement des données et T pour Transformation des données). Ici, on a un outil puissant qui « Extrait » et « Load » nos données. La partie Transformation sera assurée par DBT, dont on vous parlera dans des articles à suivre…
Le concept d’Airbyte est né en 2020 et actuellement en novembre 2022, l’outil met à votre disposition plus d’un millier de connecteurs possibles, de type source ou destination.
L’un des grands avantages d’Airbyte est que l’on peut développer son connecteur, s’il n’existe pas encore, via le « Connector Development Kit » qui fera l’objet de plusieurs articles à suivre.
Aujourd’hui, le but de cet article est de vous présenter les bases d’Airbyte, via la mise en place d’un connecteur récupérant des données stockées dans un fichier plat que l’on veut enregistrer dans une base PostgreSQL.
Si vos données sont propres et ne nécessitent pas de transformation, l’étape d’après, c’est de la Data Viz. Nous avons fait le choix d’explorer Streamlit chez iiiData donc rdv ici avec les articles de Martin sur Streamlit.
Comme c’est très souvent le cas pour les projets open-source, on retrouve le code source d’Airbyte sur GitHub, ici : https://github.com/airbytehq/airbyte et on peut le déployer sur Docker.
Pour en savoir plus, Airbyte a détaillé les prérequis techniques ici.
Une fois Docker installé, le plus simple est de cloner ce projet en local :
git clone https://github.com/airbytehq/airbyte.git
cd airbyte
docker-compose up
Vous retrouverez l’interface web d’Airbyte ici : http://localhost:8000 .
Pour la 1ère connexion, vous pouvez ajouter votre e-mail, choisir vos préférences de collecte de données, …
Chez iiiData on travaille beaucoup sur des open-data territoriales donc je vous propose de ré-utiliser le fichier CSV issu du site de l’INSEE que Martin a préparé pour nous.
Voici un petit aperçu ci-dessous et si vous voulez avoir un rapport complet des données de ce fichier, je vous encourage vivement à lire l’article sur Pandas-Profiling.
Dans la page d’accueil d’Airbyte, vous retrouvez en haut à gauche les boutons permettant d’accéder à :
Ici, nous allons créer un 1er connecteur qui aura pour source un SFTP sur lequel récupérer les fichiers plats souhaités et qui stockera les infos dans une destination de type base PostgreSQL en local.
Ci-dessus, une petite démo du processus à suivre.
Ci-dessous les étapes détaillées avec des explications :
Et voici un aperçu de ces données brutes dans la base :
Si vous choisissez à l’étape 5, l’option « Normalized tabular data », Airbyte créera une table avec les données au format brut, comme vu précédemment et une ou plusieurs tables détaillant les fichiers JSON de la colonne « _airbyte_data », en fonction de l’arborescence du schéma JSON.
Voici un exemple du résultat normalisé par Airbyte :
Dans le cas d’un fichier plat, Airbyte crée automatiquement la table ci-dessus en reprenant la forme tabulaire vue initialement.
Lorsque le résultat d’une extraction produit un fichier JSON plus complexe, la normalisation automatique peut être un choix intéressant que nous détaillerons dans un prochain article.
Après plusieurs mois d’essai, le choix d’Airbyte dans notre stack est confirmé :
Bien sûr, Airbyte n’est pas parfait mais c’est un outil très prometteur et en pleine expansion que nous avons choisi d’inclure notre stack technique iiiData.
Des points faibles?
J’espère que ce tuto t’aura aidé à mieux comprendre les bases d’Airbyte. En tout cas, chez iiiData, Airbyte a su nous séduire et nous avons très envie de continuer à écrire sur le sujet donc rdv dans quelques semaines pour la suite…
Bien sûr, nous serons ravis d’avoir plus d’échanges sur ce sujet via LinkedIn ou dans les commentaires de l’article, donc si tu as des suggestions d’article ou autre, tu sais quoi faire!
Virginie Desharnais
Data Engineer chez iiiDATA