Comment intégrer les pratiques d’Analytics Engineering ?
Il est certain qu’aujourd’hui la qualité des données est un sujet majeur dans la data.
Effectivement, selon un rapport de Gartner, une mauvaise qualité de la donnée coûte en moyenne 12,9 millions de dollars aux entreprises par an.
Il existe également une étude de Great Expectation en 2022 qui montre que :
- 41% de data practitioners citent le manque d’outillage comme cause principale d’une faible qualité,
- 47% citent un manque de documentation sur les données comme cause principale.
En effet, un manque de cadre réglementé et de procédés standardisés rendent le travail sur les données peu fiable et difficilement viable sur le long-terme : la difficulté de faire évoluer des produits data, maintenir des dashboards ou encore le risque d’introduire des erreurs par action manuelle peuvent entraîner une lassitude des équipes opérationnelles.
En 2019, le rôle d’Analytics Engineer se formalise, introduisant les bonnes pratiques de software engineering à la préparation des données analytiques (à mi-chemin entre le Data Engineer, souvent éloigné des logiques métiers, et le Data Analyst/Scientist, souvent peu orienté vers l’ingénierie).
La diffusion de l’Analytics Engineering
Aujourd’hui, l’Analytics Engineering se réfère à l’ensemble des méthodes d’ingénierie appliquées à la construction, la maintenance et l’optimisation des pipelines de données destinées à l’analyse.
Le rôle de l’Analytic Engineer est d’assurer une livraison des données de haute pertinence et qualité, notamment à travers :
- La compréhension et l’identification des données sources nécessaires ainsi que la modélisation des données et des transformations adaptées pour satisfaire les prérequis des besoins métiers ;
- Le développement de pipelines de données, en veillant à ce que ces processus soient robustes, évolutifs et reproductibles, incorporant tests et documentation technique ;
- La veille et mise en place d’outils de monitoring et d’alerting sur la qualité des données ;
- L’industrialisation des calculs de KPIs et la mise à disposition d’outils d’analyse répondant aux besoins métiers.
AVISIA accompagne ses clients tel que Carrefour dans la réalisation de leurs projets data et intervient à différentes étapes, de la structuration des besoins et solutions à la mise en œuvre technique.
Chez Carrefour, où l’approche “data-centric, digital first” réside au cœur de sa stratégie, l’exploitation de la donnée contribue à l’amélioration de ses processus opérationnels. Par exemple, l’évolution de ses activités logistiques inclut la mise en place d’algorithmes de prévisions et d’optimisation basés sur ses propres données visant à garantir des livraisons plus efficaces et une gestion des stocks pérenne.
Comme beaucoup d’entreprises, plusieurs problématiques font surface au fur et à mesure des itérations telles que :
- la difficulté de faire évoluer un pipeline de données (notamment via le manque d’une vue d’ensemble pour cadrer les évolutions et les optimisations),
- la manque de moyen de s’assurer que la qualité des données attendue reste préservée suite à un changement ainsi que la difficulté à anticiper des potentiels bugs après l’ajout de modifications,
- le manque de lisibilité dans le code et ses répétitions après plusieurs évolutions qui compliquent la maintenance et la collaboration.
Carrefour a su relever les challenges imposés sur la qualité des données et sur la nécessité de garder des procédés de développement sains. Cela a pu se faire par l’adoption d’outils tels que dbt ou Dataform. Ces outils facilitent la diffusion des pratiques d’Analytics Engineering auprès de ses Data Scientists et Data Engineers.
dbt : un outil accessible pour accélérer les développements et mettre en place les bonnes pratiques
Connaissez vous dbt ? Il s’agit d’un outil spécialisé dans la transformation des données. Celui-ci vise à accélérer le processus de développement des transformations et rendre les bonnes pratiques d’ingénierie logicielle plus accessibles pour les profils analytiques. Ainsi, les transformations sont formulées en langage SQL, pour sa simplicité et son large panel d’utilisateurs. Les requêtes sont alors paramétrables (tels que les noms de table, valeurs ou CTE répétés…) ce qui offre une grande flexibilité dans l’exécution. Par exemple, il devient facile de basculer le code entre environnement de développement et production. Cet aspect générique facilite la collaboration et permet de versionner le code du projet en instaurant des règles et normes de codage.
Par ailleurs, dbt se présente sous deux versions :
- dbt-core, le moteur de transformation qui est open-source et gratuit ;
- dbt Cloud, une plateforme payante proposant des services supplémentaires tels que la programmation planifiée des runs, un environnement de développement intégré (IDE) dans la plateforme ou encore un hébergement des exécutions des modèles dans le cloud. Une version démo, avec certaines limitations, est également disponible gratuitement.
Il faut savoir que l’outil dbt (dbt-core ou dbt Cloud CLI) s’installe facilement via la plateforme PyPI. Depuis la version 1.3, dbt peut également lancer des transformations codées en Python.
Lors d’une exécution, dbt compile les requêtes en chargeant les variables avant de les envoyer au système de gestion de base de données. On voit bien par ce schéma que dbt offre de nombreuses fonctionnalités et avantages permettant de diffuser les pratiques d’Analytics Engineering :
Faciliter la compréhension du pipeline de données
Sans bonnes pratiques, les pipelines deviennent rapidement complexes. De ce fait, toute modification s’accompagne d’un risque de compromettre la qualité initiale. Carrefour a eu besoin de réduire cette complexité en gardant une vue d’ensemble de son pipeline et de mieux se repérer dans le code.
Une orchestration automatisée des étapes de transformation
dbt construit automatiquement un graphe de dépendance afin de déterminer un ordre cohérent dans le lancement des requêtes en prenant compte des dépendances qui existent entre elles.
Cela évite les erreurs d’un ordonnancement manuel, permettant à Carrefour de réduire le temps de développement et optimiser le temps de calcul en parallélisant les transformations indépendantes.
Une amélioration de la lisibilité et de la documentation
dbt offre la possibilité de créer des macros, des blocs de code réutilisables, similaires aux fonctions en programmation classique. Ces macros peuvent encapsuler des transformations complexes, gagner en lisibilité et éviter la duplication de code (le principe de développement DRY: Don’t Repeat Yourself).
De plus, dbt permet d’écrire et de générer une documentation. Il combine entre autres une description du projet, la visualisation du graphe de dépendance, la description des tables et champs ou encore la requête initiale.
Ces fonctionnalités permettent à Carrefour d’assurer un code propre et uniforme, et ainsi faciliter la collaboration entre les membres de l’équipe data. La documentation accentue la transparence et la confiance à travers le partage des définitions des données traitées. Ces éléments permettent d’éviter les dérives liées à la complexité des pipelines.
Assurer une qualité des données
Toute modification sur un pipeline peut entraîner des bugs et régressions, il est primordial de tester ces modifications. Cela devient chronophage de répéter à la main les tests des anciennes fonctionnalités pour tout nouveaux ajouts. Carrefour a eu besoin d’automatiser ses tests et d’encourager cette pratique pour gagner en efficacité et en qualité.
La qualité du résultat d’une requête peut être testée avec dbt. Il nous permet de coder en dur nos propres tests, vérifier que les transformations sont conformes aux attentes et éviter les régressions lorsque le pipeline évolue en inspectant continuellement les données (les doublons, les valeurs manquantes, les formats corrects, etc.). Ces tests peuvent être relancés au besoin.
Automatiser et stocker ses tests permettent aux data practitioners de Carrefour de gagner du temps et de la confiance lors des développements.
Une facilité à prendre l’outil en main
Intégrer un outil de travail dépend également de sa compatibilité avec l’écosystème actuel et de l’étendue de sa capacité. Pour l’adopter, Carrefour a besoin d’une compatibilité avec un cloud et data warehouse moderne.
L’intégration avec des Data Warehouses
En terme de compatibilité, dbt est compatible avec les entrepôts de données (Data Warehouses) issus des plateformes data modernes comme BigQuery de GCP, Snowflake, Redshift d’AWS ou encore Databricks. L’exécution des transformations se fait directement dans ces systèmes, bénéficiant ainsi de leur puissance de calcul.
Sous GCP, le Cloud Composer permet à Carrefour d’orchestrer différentes exécutions dont les transformations gérées par dbt sous BigQuery.
Des plugins créés par sa communauté
Ces plugins (packages) permettent d’étendre les fonctionnalités natives et simplifier l’usage de dbt. Nous pouvons y retrouver des packages Fivetran pour l’ajout de connecteurs ainsi que des fonctionnalités de tests et d’audits supplémentaires. Enrichis par sa communauté de +80 000 data practitioners, les packages de dbt renforcent sa flexibilité et permettent une adoption plus large au sein des différents écosystèmes techniques.
Carrefour utilise le package Elementary pour monitorer les tests afin d’avoir une synthèse de l’état des tests avec peu de modification dans le code. Les résultats sont mis automatiquement sous la forme d’un dashboard pour l’exploration.
Conclusion
Avec une gestion plus rigoureuse des pipelines de données, nous pouvons minimiser les risques d’une perte en qualité et pertinence comme le montre Carrefour. Les outils tels que dbt ou Dataform permettent de standardiser les développements et de diffuser les pratiques d’Analytics Engineering, renforçant ainsi la durabilité et la robustesse des pipelines sur le long terme. Si ce sujet vous parle et/ou si vous souhaitez en savoir plus, n’hésitez pas à nous contacter ici.
Articles en lien
Data contact