Les utilisateurs de la Data ont besoin de données fiables, et pour les satisfaire nous pouvons être amenés à créer des requêtes SQL tous azimuts. On prend alors le risque de ne pas versionner, de mal coopérer, de faire ramer le serveur… Des solutions existent pour centraliser nos tests et les industrialiser. Ce tutoriel va vous aider à structurer vos différents tests et à simplifier leur exécution.
Plateforme bien connue des acteurs de la data, BigQuery est un datawarehouse puissant et rapide, étroitement lié aux services de la Google Cloud Platform (GCP).
Pourquoi surveiller la qualité des données ?
Les études Gartner le prouvent régulièrement : de trop nombreuses entreprises se focalisent sur le stockage de leurs données et aux algorithmes qui les exploiteront, et hésitent encore à véritablement investir dans le contrôle de la qualité de ces données. Or, lorsque l’on s’aperçoit que la qualité des données n’est pas au rendez-vous il est souvent déjà très tard.
D’une part parce que des décisions basées sur ces données erronées ont déjà été prises. D’autre part, parce que l’utilisateur perd confiance en la donnée. Prévenir les erreurs est toujours plus facile que de gérer leurs conséquences. Il est donc d’autant plus essentiel de se poser la question de la fiabilité des données dès les prémices d’un projet.
Petits volumes : lister les anomalies
Quand le volume de données le permet on peut sortir toutes les anomalies catégorisées (unicité, complétude, conformité, intégrité, cohérence, justesse). Exemple :
Une astuce pour les dates manquantes
Vous voulez mettre en évidence que des données sont manquantes pour certains jours ? Générez votre intervalle de dates :
Unicité – vérifier les doublons
Dans ce scénario nous voulons vérifier que le numéro de facture est unique.
Complétude – vérifier les adresses
Dans ce scénario nous voulons vérifier que les adresses des entrepôts sont complètes.
Conformité – vérifier le format des adresses mail
Dans ce scénario nous voulons vérifier que le format des adresses mail des clients est valide.
Intégrité : vérifier l’intégrité des factures
Dans ce scénario nous voulons vérifier que toutes les lignes de facture font référence à une facture valide.
Cohérence – vérifier les codes pays
Dans ce scénario nous voulons vérifier que les codes pays des fiches clients sont cohérentes avec la table des pays.
Justesse – vérifier les dates
Dans ce scénario nous voulons vérifier que les dates de factures sont justes.
Vous l’aurez compris, le but est de commencer à structurer nos tests pour présenter rapidement un résultat synthétique. On ne s’encombre pas de résultats intermédiaires, seul compte ici le résultat du test. Chaque anomalie sera ensuite consignée, remontée, analysée et corrigée.
Réunissons nos tests
Nous avons défini nos différents cas (nombre de statuts, montant total = somme des lignes, etc.). Réunissons maintenant nos tests avec UNION ALL pour ne produire qu’un résultat.
Ce résultat unique permettra de qualifier rapidement un flux, une correction, voire un environnement.
Il n’est pas interdit de commenter ses queries. 😉
Industrialisation : la procédure stockée
Une procédure stockée est un ensemble de scripts SQL qui sont fréquemment utilisés. Nous allons mettre nos tests, qui ne sont que des requêtes, dans un fichier, puis exécuter ce script. Le but est ainsi de partager (ou de transmettre) une version finalisée de nos tests.
Attention, veillez à ne pas oublier les éventuelles clauses WITH, définitions de vues et fonctions.
Aller plus loin : BigQuery dans Google Sheets
Quand un test échoue, on cherche à comprendre et expliquer ce qui « cloche ». Dans ce cas, Google Sheets peut vous faire gagner du temps. Voici comment.
Dans une Google Sheet : utiliser le connecteur BigQuery et choisir une table.
On peut aussi saisir une requête SQL.
Nous avons ainsi vu dans cet article comment centraliser nos tests et comment les industrialiser. Cela peut demander un effort quand on s’est déjà éparpillé. En revanche, à terme, le gain de temps et d’énergie est considérable.
Votre adresse de messagerie est uniquement utilisée par Business & Decision, responsable de traitement, aux fins de traitement de votre demande et d’envoi de toute communication de Business & Decision en relation avec votre demande uniquement. En savoir plus sur la gestion de vos données et vos droits.