Welche Strategien gibt es, um die Datenherkunft zu dokumentieren und mit minimalem Wartungsaufwand auf dem neuesten Stand zu halten?

Die schnelle Kommunikation der Datenherkunft an andere Interessengruppen in unserem Unternehmen wird mit zunehmender Skalierung immer schwieriger.

Was sind wirksame Strategien, um dies anzugehen und aufrechtzuerhalten?

Ein Beispiel wären Kundendaten, die in einem Data Warehouse gespeichert, auf verschiedene Weise verarbeitet und für Analysen und Berichte verwendet werden. Das Publikum würde Mitglieder der Business-Intelligence- und Analytics-Teams sowie Produktmanager sein. Die Datenherkunft kann sich ändern, wenn Entwickler den Code hinzufügen oder ändern.

Was für Daten?
Können Sie mehr über das Problem sagen, das Sie zu lösen versuchen? Welche Art von Daten, wie Robert bereits gefragt hat, aber für welche Zielgruppe(n), über welchen Zeitraum und wie volatil?
Kundendaten, die verfolgt und verarbeitet und auf verschiedene Weise gespeichert werden, von Data Warehouses bis hin zu Data Lakes, Datenwürfeln usw. Die Zielgruppe wären Mitglieder von Business-Intelligence- und Analyseteams. Die Datenherkunft kann sich ändern, wenn Entwickler Code hinzufügen oder ändern. Ich glaube nicht, dass die Zeitspanne hier relevant ist.
Ich habe die Frage mit einem Beispiel aktualisiert.
Möchten Sie die Änderungen am Code, die Änderungen an der verarbeiteten Ausgabe bei Codeänderungen oder beides nachverfolgen?
Das Problem ist, dass wir ständig gefragt werden, woher die Daten kommen und wie sie von Punkt A nach Punkt B nach Punkt Z gelangt sind und was die Verarbeitung bewirken soll. Ohne dieses Wissen ist es sehr zeitaufwändig, Probleme zu beheben und die Daten zu analysieren. Und dann wird es wichtig sein, bei Änderungen einen einfach zu handhabenden Update-Prozess zu haben.
Ich bin mir immer noch nicht sicher, was genau Sie dokumentieren möchten. Ihr letzter Kommentar liest sich eher wie eine Aufforderung zur verteilten Ablaufverfolgung als eine Dokumentation. Haben Sie viele verschiedene Wege, die die Daten nehmen können?
@Helmar: Ich habe noch nie davon gehört, aber es scheint im Bereich der Microservices zu liegen? Wir folgen dieser Architektur nicht. Ja, es gibt viele Wege, die Daten nehmen können und die Dinge wachsen rasant, also wird es wahrscheinlich immer komplexer. Ich glaube nicht, dass ich die Frage klarer stellen kann, also werde ich wahrscheinlich in der nächsten Woche oder so selbst antworten, wenn ich tatsächlich eine Entscheidung darüber treffen muss, wie wir dies tun werden.
Es ist eher in Microservice-Architekturen verbreitet, ja, aber es ist im Grunde für jedes verteilte System nützlich, egal wie klein die einzelnen Komponenten sind. Grundsätzlich verfolgt es den kompletten Nachrichtenfluss über mehrere Systeme hinweg.

Antworten (2)

Ich habe an einem Projekt gearbeitet, das Ihrem ähnlich klingt, bei dem die Fähigkeit, jeden Prozess zu identifizieren, der alle Daten berührte, von entscheidender Bedeutung war, um den Umfang der Codevalidierung zu minimieren, die wiederholt werden musste, wenn sich ein anderer Code änderte.

Um den Datenfluss durch Prozesse darzustellen, verwenden wir ein vertikales Swimlane-Diagramm mit drei Spalten, wobei die erste Spalte die Eingabe, die mittlere Spalte der Prozess und die dritte Spalte die Ausgabe war.

Natürlich könnte die Ausgabe die Eingabe für einen anderen Prozess sein, in diesem Fall würden wir eine Flusslinie zeichnen, die sie zurück zur ersten Spalte führt. Diese Diagramme konnten möglicherweise ziemlich lang werden, aber der Vorteil war, dass Sie alle Daten auf einem leicht nachvollziehbaren Pfad durch alle Prozesse, die sie durchlaufen haben, verfolgen und alle Daten identifizieren konnten, mit denen sie von einem beliebigen Prozess verschmolzen wurden. Und da sich die Eingaben, Prozesse und Ausgaben in separaten Spalten befanden, konnten Sie jede Eingabe, Ausgabe oder jeden Prozess, an dem Sie interessiert waren, leicht identifizieren und seine Rolle im System nachverfolgen.

Die Aktualisierung war auch ziemlich einfach. Wenn Sie einen neuen Prozess hinzugefügt haben, haben Sie dem Diagramm eine neue Zeile hinzugefügt, den Prozess in die mittleren Spalten eingefügt und dann die Dateneingangs- und -ausgangsleitungen wieder verbunden. Wenn Sie eine neue Datenquelle hinzugefügt haben, haben Sie eine neue Zeile hinzugefügt, die neue Quelle eingefügt und sie mit den relevanten Prozessen verbunden.

Wir haben auch eine Schattierung verwendet, um zwischen internen und externen Eingaben und Prozessen zu unterscheiden.

Da Ihre Frage ziemlich allgemein ist, ist diese Antwort auch.

Ich würde den ETL-Prozess selbst in die Zieldatenbank einfügen. Da Sie Entwickler vor Ort haben, muss dies in Ihre Extraktionsentwicklung aufgenommen werden. Fügen Sie am besten auch ein wenig Architekturbeschreibung und Versionierung hinzu, um dem Verständnis Ihrer Kunden gerecht zu werden.

Wenn ich danach vorgehe, würde ich einen ähnlichen Schritt in den eigentlichen Extraktionslauf einbeziehen; Selbst ein einfaches Ausführungsdatum und ein Feld für Kommentare können Gold wert sein, wenn Sie versuchen, in einem Jahr Trends zu generieren.