Die Ursachen sind das Ende des Weges. Sie sollten das ursprüngliche Ereignis in der Kausallinie sein - sozusagen der erste Dominostein - und das Problem weitgehend erklären. Wenn die Grundursache des Datenproblems nicht auftritt, sollte auch keine der proximalen Ursachen auftreten. Es ist die direkte Ursache für alle diese Probleme.
Die Ursachen sind natürlich nicht immer klar, und die Korrelationen sind nicht immer exakt. Wenn Sie sich Ihrer Antwort nicht sicher sind, können Sie Ihren wahren Vertrauenswert auf probabilistische Weise herausfinden, indem Sie dieses Gedankenexperiment ausprobieren: Sagen wir, Ihr Chef sagt Ihnen, Ihr Team wird Ihre Hypothese voll und ganz verfolgen und niemand wird sie überprüfen, bevor sie in Produktion geht, und Ihr Name wird überall darauf stehen. Wenn etwas falsch ist, ist alles Ihre Schuld. Welchen Konfidenzwert auf einer Skala von 0 bis 100 würden Sie Ihrer Hypothese geben? Wenn der Wert unter 70 liegt, sollten Sie weiter ermitteln.
Häufige Ursachen für Datenprobleme sind:
1. Benutzerfehler: Wir beginnen mit Benutzerfehlern, da diese häufig vorkommen. Möglicherweise hat jemand das falsche Schema oder einen falschen Wert eingegeben, was bedeutet, dass die Pipeline die Daten nicht lesen kann, oder es wurde zwar das Richtige mit falschen Werten getan, aber jetzt ist eine Aufgabe fehlgeschlagen.
2. Unsachgemäß beschriftete Daten: Manchmal verschieben sich Zeilen in einer Tabelle und die richtigen Beschriftungen werden auf die falschen Spalten angewendet.
3. Der Datenpartner hat eine Lieferung verpasst: Ebenfalls sehr häufig. Sie können ein sicheres System bauen, aber Sie können nicht kontrollieren, was Sie nicht sehen können, und wenn die Datenprobleme in den Quelldaten liegen, führt dies dazu, dass sich perfekt funktionierende Pipelines falsch verhalten.
4. Es gibt einen Fehler im Code: Dies kommt häufig vor, wenn es eine neue Version der Pipeline gibt. Mit Versionierungssoftware wie Git oder GitLab können Sie das ziemlich schnell herausfinden. Vergleichen Sie den Produktionscode mit einer früheren Version und führen Sie einen Test mit dieser vorherigen Version durch.
5. OCR-Datenfehler: Ihr optischer Scanner liest die Daten falsch aus, was zu seltsamen (oder fehlenden) Werten führt.
6. Problem mit verfallenen Daten: Der Datensatz ist so veraltet, dass er nicht mehr gültig ist.
7. Problem mit doppelten Daten: Oft kann ein Anbieter keine Daten liefern, so dass die Pipeline mit den Daten der letzten Woche lief.
8. Berechtigungsproblem: Die Pipeline ist fehlgeschlagen, weil dem System die Berechtigung zum Abrufen der Daten oder zur Durchführung einer Transformation fehlte.
9. Infrastrukturfehler: Vielleicht haben Sie Ihr verfügbares Speicher- oder API-Aufruflimit ausgeschöpft, Ihr Apache Spark-Cluster lief nicht oder Ihr Data Warehouse ist ungewöhnlich langsam, sodass der Lauf ohne die Daten fortgesetzt wird.
10. Zeitplanänderungen: Jemand (oder etwas) hat den Zeitplan geändert, was dazu führt, dass die Pipeline nicht mehr richtig oder gar nicht läuft.
11. Voreingenommener Datensatz: Sehr schwierig zu sortieren. Es gibt keine gute Möglichkeit, dies herauszufinden, außer indem man einige Tests durchführt, um zu sehen, ob die Daten im Vergleich zu einem ähnlichen echten Datensatz ungewöhnlich sind, oder herauszufinden, wie sie erfasst oder erzeugt wurden.
12. Ausfall des Orchestrators: Ihr Pipeline-Planer konnte den Auftrag nicht planen oder ausführen.
13. Der Geist in der Maschine (Data ex machina): Er ist wahrhaft unergründlich. Es ist schwer, das zuzugeben, aber für manche Dinge stimmt es. Das Beste, was Sie tun können, ist zu dokumentieren und bereit für das nächste Mal zu sein, wenn Sie mehr Daten sammeln und anfangen können, Korrelationen zu ziehen.
Und dann gibt es natürlich noch die Realität, in der die eigentliche Ursache nicht ganz klar ist. Viele Dinge hängen miteinander zusammen und sind wahrscheinlich voneinander abhängig, aber es gibt keine einfache Antwort – und nachdem Sie Änderungen vorgenommen haben, haben Sie das Datenproblem behoben, obwohl Sie sich nicht sicher sind, warum.
Notieren Sie in solchen Fällen, wie in allen anderen auch, Ihre Hypothese im Protokoll und fahren Sie fort, sobald Sie dazu zurückkehren können, mit dem Testen historischer Daten und achten Sie dabei auf neue Probleme und weitere Erklärungsansätze.