Tests ETL – Présentation générale
ETL (Extract-Transform-Load) est un processus qui extrait les données des systèmes source, les transforme en un type cohérent et les charge dans un gisement unique. Les tests ETL assurent la validation, la vérification et la qualification des données tout en évitant la duplication des enregistrements et la perte de données.
Les tests ETL permettent de vérifier que le transfert des données de sources hétérogènes vers le data warehouse central s'effectue dans le strict respect des règles de transformation de l'entreprise et en conformité avec les contrôles de validité internes. Ces opérations diffèrent du rapprochement de données exécuté pour tester les bases de données car les tests ETL sont appliqués aux systèmes avec data warehouse et sont utilisés pour obtenir des informations pertinentes dans les activités d'analyse et de Business Intelligence.
Processus des tests ETL en huit étapes
Lorsqu'ils sont efficaces, les tests ETL détectent les problèmes des données source très tôt (avant même qu'elles soient chargées dans le référentiel). Ils signalent également les incohérences ou les ambiguïtés des règles destinées à guider la transformation et l'intégration des données. Le processus peut être divisé en huit étapes :
- Identifier les besoins opérationnels – Élaborer le modèle de données, définir les flux opérationnels et évaluer les besoins de reporting en fonction des attentes des clients. Il est important de commencer par cette étape pour que la portée du projet soit clairement définie, documentée et bien comprise par les testeurs.
- Valider les sources de données – Contrôler les données disponibles et vérifier que les types de données de la table et des colonnes correspondent aux spécifications du modèle de données. Vérifier que les clés de contrôle sont en place et nettoyer les données en double. S'il n'est pas exécuté correctement, le rapport global pourrait être inexact ou trompeur.
- Définir des cas de test – Élaborer des scénarios de mappage ETL, créer des scripts SQL et définir des règles transformationnelles. Il est également important de valider le document de mapping pour vérifier qu'il contient les informations nécessaires.
- Extraire les données des systèmes source – Exécuter les tests ETL en fonction des exigences internes. Identifier les types de bugs ou de défauts rencontrés lors des tests et les mentionner dans un rapport. Avant de passer à l'étape 5, il est important de détecter et reproduire les défauts. Les bugs doivent être mentionnés dans un rapport, corrigés, résolus et le rapport de bugs doit ensuite être clôturé.
- Appliquer la logique de transformation – S'assurer que les données sont transformées de manière à correspondre au schéma du data warehouse cible. Vérifier les seuils et l'alignement des données et valider le flux de données. Cette pratique garantit que les types de données correspondent au document de mappage dans chaque colonne et chaque table.
- Charger les données dans le data warehouse cible – Contrôlez le nombre d'enregistrements avant et après le transfert des données de la phase de simulation (staging) vers le data warehouse. Vérifiez que les données non valides sont rejetées et que les valeurs par défaut sont acceptées.
- Rapport résumé – Vérifier la mise en page, les options, les filtres et la fonctionnalité d'exportation du rapport résumé. Ce rapport permet aux décideurs et acteurs impliqués de connaître les détails et résultats du processus de test et de déterminer si une étape n'a pas été traitée parce qu'elle se situait hors du champ défini, et pourquoi.
- Clôture des tests – Clôturer les fichiers de test.
Pour la personne chargée des tests ETL, une dernière étape consiste à tester l'outil, ses fonctionnalités et le système ETL.
Neuf types de tests ETL
Les tests ETL entrent dans quatre catégories générales : test de nouveau système (données provenant de différentes sources), test de migration (données transférées des systèmes source vers le data warehouse), test des changements (nouvelles données ajoutées dans le data warehouse) et test du rapport résumé (valider les données, effectuer les calculs).
Les tests ETL susceptibles d'être exécutés durant les différentes étapes sont les suivants :
Catégorie | Tests ETL |
---|---|
Test de nouveau système | — Test de la qualité des données — Test des métadonnées |
Test de migration | — Test de la qualité des données — Test du nombre source-cible — Test des données source-cible — Test des performances — Test de la transformation des données — Test de l'intégration des données |
Test des changements | — Test de la qualité des données — Test du nombre source-cible — Test des données source-cible — Validation de la production — Test de l'intégration des données |
Test du rapport résumé | — Test du rapport résumé |
- Validation de la production – Cette opération (également appelée « agrégation de la production » ou « équilibrage des tables ») valide les données injectées dans les systèmes de production et les compare aux données source. Cette pratique protège les données contre les erreurs de logique, les charges de travail qui n'ont pas pu être exécutées ou les processus opérationnels qui ne sont pas chargés dans le système.
- Test du nombre source-cible – Vérifie que le nombre d'enregistrements chargés dans la base de données cible correspond au nombre d'enregistrements prévu.
- Test des données source-cible – Permet de s'assurer que les données prévues sont injectées dans le système cible sans être perdues ni tronquées et que les valeurs des données répondent aux attentes après transformation.
- Test des métadonnées – Permet de contrôler le type de données, la longueur, l'index et les contraintes des métadonnées de l'application ETL (statistiques de charge, totaux d'agrégation, indicateurs de qualité des données).
- Test des performances – Permet de s'assurer que les données sont chargées dans le data warehouse pendant la fenêtre prévue et que la réponse du serveur de test aux multiples utilisateurs et transactions est adéquate en matière de performance et d'évolutivité.
- Test de transformation des données – Exécute des requêtes SQL sur chaque ligne pour vérifier si les données ont été correctement transformées (selon les règles internes de l'entreprise).
- Test de qualité des données – Tests syntaxiques (caractères non valides, structures, ordre des cas) et tests de référence (nombre, date, précision, contrôle des pointeurs NULL) pour s'assurer que l'application ETL accepte ou rejette les valeurs par défaut et signale les données non valides.
- Test de l'intégration des données – Confirme que les données de toutes les sources ont été chargées correctement dans le data warehouse cible, avec contrôle des valeurs de seuil.
- Test du rapport résumé – Examine les données du rapport résumé, vérifie que la mise en page et les fonctionnalités sont conformes aux attentes et effectue les calculs.
Le processus ETL peut également inclure des tests d'adoption par l'utilisateur, des tests de l'interface graphique et des tests de migration des applications pour s'assurer que l'architecture ETL fonctionne correctement sur d'autres plates-formes. Des tests ETL incrémentiels permettent de vérifier que les nouveaux enregistrements et les mises à jour sont traités conformément aux attentes.
Principaux défis des tests ETL
En identifiant les problèmes dès le début du processus ETL, vous pourrez éviter des points de ralentissement et retards coûteux. Il est essentiel de créer un document de mappage source-cible et de définir des exigences opérationnelles claires dès le départ. Les changements trop fréquents d'exigences – qui obligent les testeurs ETL à modifier la logique de leurs scripts – peuvent ralentir considérablement l'exécution du processus ETL.
Les testeurs ETL doivent disposer d'une estimation précise des exigences de transformation des données, du temps dont ils disposent pour satisfaire ces exigences et d'une compréhension totale des besoins des utilisateurs. Autres difficultés à envisager dès le départ :
- Données perdues ou altérées pendant la migration.
- Disponibilité limitée des données source.
- Sous-estimation des exigences de la .
- Données en double ou incomplètes.
- De gros volumes de données historiques rendent les tests ETL difficiles dans le système cible.
- Environnement de test instable.
- Outils ETL obsolètes encore en usage.
Comment identifier les meilleurs outils de test ETL
Les outils de test ETL augmentent la productivité du département IT et simplifient la conversion des big data brutes en connaissances précises et exploitables. Les outils ETL incluent eux-mêmes des procédures et règles pour l'extraction et le traitement des données, ce qui élimine la nécessité de recourir aux méthodes de programmation traditionnelles coûteuses et exigeantes en main-d'œuvre.
Autre avantage : les outils de test ETL sont compatibles avec les plates-formes en cloud, de data warehouse, d'ERP et de CRM telles que Amazon Web Services, Salesforce, Oracle, Kinesis, Google Cloud Platform, NetSuite, etc.
Lorsque vous comparez des outils de test ETL, il est conseillé de vérifier si les aspects suivants sont présents :
- Interface graphique permettant de simplifier la conception et le développement des processus ETL.
- Génération automatique de code pour accélérer le développement et réduire les erreurs.
- Connecteurs de données intégrés permettant d'accéder aux données stockées sous différentes formes (fichiers, base de données, application ou système legacy).
- Fonctionnalités de gestion des contenus qui permettent de changer de contexte pour les environnements ETL de développement, de test et de production.
- Outils de debug performants qui permettent de suivre les flux de données en temps réel et de générer des rapports de comportement ligne par ligne.
Outils ETL natifs en cloud conçus spécifiquement pour l'architecture cloud et qui permettent à une entreprise de tirer pleinement parti des avantages d'un projet de data warehouse.
L'avenir des tests ETL : Intelligence artificielle et cloud
Les entreprises qui utilisent des scripts codés manuellement et des outils internes perdent de l'efficacité et ont une moins grande capacité d'adaptation à l'évolution des technologies ETL en cloud. En fait, la nouvelle norme dans ce domaine tend à privilégier les équipes DevOps dynamiques et agiles qui produisent plusieurs mises à jour d'applications logicielles par jour et qui appliquent des pratiques de déploiement automatisées en continu.
À mesure que DevOps adopte les environnements et processus de gestion de données en cloud, il est nécessaire d'automatiser l'intégration des données et de disposer d'outils de test ETL capables de traiter de gros volumes de données en mode autonome – sans intervention humaine – et en temps réel. L'approche en cascade/waterfall (identification d'un problème dans le flux de données - correction - test du schéma - chargement dans le data warehouse - analyse) est remplacée par des solutions agiles et natives en cloud.
Les architectures de gestion des données en cloud et les Assistants d'intégration de données intelligents à base d'intelligence artificielle font apparaître de nouvelles tendances dans ce domaine.
Pour suivre une démo de machine learning avec Spark et apprendre comment former votre système à la prise de décision humaine (et générer un modèle de classification reposant sur les connaissances acquises), regarder la vidéo How to Match with Spark and Machine Learning:
Tests ETL open source
Les tests ETL sont exécutés dans le cadre d'un processus multi-niveau centré sur les données. Ils utilisent des requêtes SQL complexes pour accéder aux millions d'enregistrements contenus dans divers systèmes sources, extraire ces enregistrements, les transformer et les charger dans un data warehouse cible. Les outils de test ETL supportent une grande partie de cette charge de travail à la place de l'équipe DevOps, éliminant ainsi la nécessité de développer des outils propriétaires coûteux et longs à développer.
Avec des tests ETL complets, l'entreprise peut avoir confiance dans l'intégrité de ses big data et dans la qualité de la connaissance extraite de ces données, ce qui lui permet de réduire ses risques commerciaux. Talend Open Studio for Data Integration est l'outil open source de développement et de test ETL leader du marché (plusieurs millions de téléchargements depuis 2006). Il peut être utilisé gratuitement avec une licence Apache.
Solution par abonnement, Talend Data Integration propose les mêmes fonctionnalités de test ETL que Talend Open Studio, complétées par des mécanismes performants de livraison en continu pour faciliter le travail en équipe, exécuter des jobs de test ETL sur des systèmes distants, sans compter un outil d'audit pour les indicateurs ETL qualitatifs et quantitatifs.