Les causes premières représentent le terminus. Elles doivent constituer l’événement initial dans la ligne de causalité (le premier domino, en quelque sorte) et expliquer en grande partie le problème. Si la cause première du problème de données ne se produit pas, aucune des causes immédiates ne devrait se produire non plus. Il existe un lien de causalité direct pour chacun d’entre eux.
Les causes profondes, bien sûr, ne sont pas toujours claires, et les corrélations ne sont pas toujours exactes. Si vous n'êtes pas confiant quant à votre réponse, un moyen probabiliste de déterminer votre véritable score de confiance consiste à tenter cette expérience de pensée : Dites que votre patron vous dit que son équipe mettra tout en avant de votre hypothèse et que personne ne va la vérifier auparavant. il passe en production, et votre nom apparaîtra partout. Si c'est faux, c'est entièrement de votre faute. Quel score de confiance (de 0 à 100) attribueriez-vous à votre hypothèse ? S'il est inférieur à 70, poursuivez votre enquête.
Les problèmes les plus courants liés à la cause première des données sont les suivants :
1. Erreur d’utilisateur : nous allons commencer par les erreurs d’utilisateur, car elles sont courantes. Il se peut que quelqu’un ait saisi un mauvais schéma ou une mauvaise valeur, ce qui signifie que le pipeline ne lit pas les données, ou qu’il ait fait ce qu’il fallait avec des valeurs incorrectes, ce qui entraîne un échec de la tâche.
2. Données mal étiquetées : il arrive que des lignes se déplacent dans un tableau et que les bonnes étiquettes soient appliquées aux mauvaises colonnes.
3. Le partenaire de données a raté une livraison : c’est également très fréquent. Vous pouvez construire un système à toute épreuve, mais vous ne pouvez pas contrôler ce que vous ne pouvez pas voir et si les problèmes de données se trouvent dans les données source, cela entraînera le mauvais comportement des pipelines en parfait état.
4. Il y a un bogue dans le code : cette situation est fréquente lorsqu’une nouvelle version du pipeline est disponible. Vous pouvez vous en rendre compte assez rapidement grâce à un logiciel de gestion des versions tel que Git ou GitLab. Comparez le code de production à une version antérieure et effectuez un test avec cette version précédente.
5. Erreur de données OCR : votre lecteur optique lit mal les données, ce qui génère des valeurs étranges (ou manquantes).
6. Problème de données périmées : Le jeu de données est tellement obsolète qu'il n'est plus valable.
7. Problème de doublons : il arrive souvent qu’un fournisseur ne soit pas en mesure de fournir des données et que le pipeline utilise les données de la semaine précédente.
8. Problème d’autorisation : le pipeline a échoué parce que le système n’était pas autorisé à extraire les données ou à effectuer une transformation.
9. Erreur d’infrastructure : vous avez peut-être dépassé la mémoire disponible ou la limite d’appels d’API, votre cluster Apache Spark ne s’est pas exécuté ou votre entrepôt de données est anormalement lent, ce qui fait que l’exécution se poursuit sans les données.
10. Changements de calendrier : quelqu’un (ou quelque chose) a modifié le calendrier et entraîne une défaillance du pipeline.
11. Jeu de données biaisé : très difficile à trier. Il n’y a pas de bon moyen de le savoir, si ce n’est en effectuant des tests pour voir si les données sont anormales par rapport à un jeu de données réelles comparable, ou en découvrant comment elles ont été collectées ou générées.
12. Échec de l’orchestrateur : votre planificateur de pipeline n’a pas réussi à planifier ou à exécuter la tâche.
13. Fantôme dans la machine (data ex machina) : impossible à savoir. C’est difficile à admettre, mais cela arrive. Le mieux que vous puissiez faire est de vous documenter et d’être prêt pour la prochaine fois, lorsque vous pourrez recueillir davantage de données et commencer à établir des corrélations.
Et puis, bien sûr, il y a une réalité où la cause première n’est pas tout à fait claire. De nombreux éléments sont corrélés et ils sont probablement interdépendants, mais il n’y a pas une seule réponse, et après avoir apporté des modifications, vous avez résolu le problème des données, même si vous ne savez pas comment.
Dans ces cas-là, comme dans tous les autres, notez votre hypothèse dans le journal et, lorsque vous pouvez y revenir, continuez à tester les données historiques et restez à l'affût de nouveaux problèmes et de causes plus explicatives.