Maîtriser le Vibe Coding : Les Meilleures Bibliothèques Python pour l’Ingénierie des Données
La pluie s’est installée ici en Oregon. Un été typique, je suppose. Mais, vous savez, partout où je regarde, les gens parlent du « vibe coding ». Qu’on l’aime ou qu’on le déteste, le vibe coding change la façon dont les applications sont construites et qui peut les construire. Les nouveaux outils d’IA représentent un formidable boost de productivité. Mais ce qui distingue les professionnels des amateurs, c’est la connaissance. Plus vous en savez sur la stack technologique que vous souhaitez utiliser, sur les frameworks et plateformes populaires utilisés par d’autres dans votre domaine, et sur la façon dont vous souhaitez structurer votre application, meilleurs seront vos résultats, en particulier lorsqu’il s’agit de maintenance à long terme. Nous avons entendu certaines histoires d’horreur concernant le vibe coding, mais il est encore trop tôt pour juger. Et plus vous avez de connaissances, mieux c’est. Dans cette vidéo, je vais partager mes bibliothèques Python préférées pour les tâches d’ingénierie des données en vibe coding.
Les Cinq Catégories de l’Ingénierie des Données
Les tâches d’ingénierie des données se divisent souvent en cinq catégories :
– Ingestion
– Transformation et orchestration
– Nettoyage
– Validation
– Déplacement des données
Il existe de nombreux outils et plateformes parmi lesquels choisir, chacun avec ses avantages et inconvénients. Dans cette vidéo, je vais me concentrer sur les bibliothèques Python qui sont mes références pour chaque catégorie. Certaines de ces bibliothèques sont fournies par des plateformes populaires comme Airbyte, Databricks et Snowflake. Mais le critère clé de cette liste est : puis-je construire ou gérer mon pipeline directement dans le code ?
Ingestion de Données avec Airbyte
Je travaille pour Airbyte, donc ce n’est pas une surprise que je considère Airbyte comme le choix optimal pour l’ingestion. Avec plus de 600 connecteurs, il devient très facile de saisir la source dont vous avez besoin et les données que vous devez extraire. Vous pouvez utiliser le cloud ou le projet open source, mais je veux vraiment me concentrer sur une bibliothèque Python que nous appelons PyAirbyte.
PyAirbyte fournit toute cette puissance que vous attendez d’Airbyte Cloud et du projet Airbyte open source, directement dans votre projet Python avec très peu de dépendances. Cela facilite grandement la mise en route.
Voici un exemple rapide de la façon dont vous pouvez procéder :
# Il suffit d'importer une seule bibliothèque
# Choisir la source souhaitée dans notre catalogue de connecteurs
# Dans ce cas, j'utilise simplement une source Faker basique, mais cela pourrait être Databricks, Snowflake, Salesforce, ou n'importe lequel des 600+ connecteurs disponibles
# Configurer les exigences de configuration (authentification ou paramètres)
# Vérifier que tout fonctionne
# Définir la lecture du flux et renvoyer les résultats dans un dataframe
Super facile, très simple. Pour l’ingestion, mon choix est Airbyte.
Transformation et Orchestration avec Prefect
Prefect est ma référence pour la transformation au niveau du code et l’orchestration. Je trouve très puissant de pouvoir créer une tâche, effectuer la transformation et l’intégrer dans un flux avec une logique de nouvelle tentative. Je sais que si cette transformation échoue, l’erreur ne se propagera pas dans le reste de mon pipeline.
Et en bonus, si vous comptez actuellement sur quelque chose comme DBT pour la transformation, il existe une intégration très facile et propre sans trop de dépendances.
Si je voulais simplement choisir l’orchestration, je pourrais utiliser quelque chose comme Temporal. Ils ont un SDK très robuste et un workflow déterministe très performant pour des besoins d’orchestration plus complexes. Vous ne pouvez pas vous tromper avec Prefect ou Temporal ici. Mais je donnerais un léger avantage à Prefect lorsqu’on travaille avec DBT, car cela semble un peu plus fluide, c’est pourquoi je choisis Prefect pour cette catégorie.
En étendant mon exemple précédent où je renvoyais des informations d’Airbyte dans un dataframe, si j’utilise Prefect, je peux définir des tâches et des flux qui facilitent encore plus la gestion de ce code. Je peux gérer les erreurs et les exceptions très rapidement. Si j’ai des analyses de données, je peux les placer dans une tâche séparée et les gérer indépendamment. Prefect est donc excellent pour cela, un très bon choix pour vous.
Nettoyage des Données avec Pandas
En ce qui concerne le nettoyage des données, vous pouvez être aussi complexe que vous le souhaitez, mais pour beaucoup de mes besoins, il est difficile de dépasser Pandas. Par exemple, si je récupère les données que je vous ai montrées précédemment depuis Airbyte et que je les ingère, je peux nettoyer ces données très facilement en utilisant Pandas. Je peux écrire une logique pour gérer les valeurs manquantes, supprimer les doublons, convertir les types de données, etc.
Bien sûr, le nettoyage des données va bien au-delà, et lorsque vous devez assurer des aspects comme la gouvernance et le suivi des audits, Pandas seul peut ne pas suffire. Mais c’est toujours ma bibliothèque préférée pour effectuer une grande partie du nettoyage des données dont j’ai besoin.
Vous ne pouvez pas vous tromper. Commencez par Pandas. Essayez-le. C’est un incontournable pour chaque développeur Python. Si vous ne le connaissez pas, apprenez-le. Cela vous sera utile sur le long terme.
Validation des Données avec Great Expectations
Pour la validation, je pourrais facilement utiliser Pandas pour cette validation de données. C’est effectivement ce que je faisais dans l’exemple précédent. Et pour être honnête, je le fais souvent. Cependant, à un moment donné, vous commencez à écrire beaucoup de cette logique de validation et de code vous-même. Ces règles de validation peuvent changer rapidement et devenir un véritable cauchemar à maintenir.
C’est là que Great Expectations entre en jeu. C’est mon choix pour la validation dans le code. Comme vous pouvez le voir dans mon exemple de code ici, au lieu d’intégrer la logique séparément dans le code, je peux créer un ensemble de ce qu’ils appellent des « expectations » où je peux dire que les valeurs de colonne ne peuvent pas être nulles ou que quelque chose doit être compris entre certaines valeurs.
Je peux configurer ces règles dans un ensemble d’attentes ou de règles, puis les appliquer à toutes mes données directement à partir d’un dataframe. C’est une excellente façon de rendre et de garder mon code propre et gérable, tout en restant dans une approche Pythonique que je peux utiliser directement dans mon application. Great Expectations est mon choix pour la validation dans le code.
Déplacement des Données avec Pandas et PyAirbyte
Si vous souhaitez conserver une approche purement Pythonique, Pandas reste pour moi le meilleur choix en termes de déplacement simple de données, en particulier si vous travaillez avec des entrepôts de données majeurs tels que Snowflake et Databricks. Pandas et Snowflake fonctionnent très bien ensemble. Ils fournissent des outils intégrés qui facilitent grandement l’écriture des données.
Cependant, si vous voulez de la flexibilité et du choix au-delà de ces grands fournisseurs de données, PyAirbyte reste mon choix. Comme je l’ai mentionné précédemment, avec les centaines de connecteurs disponibles, il devient très facile de choisir la source et la destination vers lesquelles vous souhaitez déplacer ces données. Et avec quelques lignes de code, vous pouvez déplacer les données de manière fiable et savoir qu’elles vont effectivement passer.
Le choix vous appartient vraiment ici concernant le déplacement des données et la complexité de vos données. Je penche généralement vers PyAirbyte car je connais la plateforme et je sais que je peux choisir n’importe quel fournisseur, source et connecteur de destination disponible.
Pandas est un excellent exemple si vous utilisez quelque chose comme Streamlit et Snowflake – vous pouvez tout rassembler très simplement et facilement. Mais pour moi, je dirais que Pandas et PyAirbyte sont les meilleurs choix. Vous ne pouvez pas vous tromper avec l’un ou l’autre.
Conclusion
Voilà un aperçu de cinq de mes bibliothèques Python préférées pour l’ingénierie des données. J’espère qu’elles vous aideront. Des liens sont disponibles ci-dessous si vous souhaitez les essayer vous-même. Mais pour l’instant, il est temps d’éteindre l’ordinateur portable, d’écouter de la musique et de me détendre pour le reste de la journée. À la prochaine !

