Was verursacht nicht-deterministische Rundungen im ETL bei inkrementeller Last?
#1
Ich stehe gerade vor einer seltsamen Situation in unserem Data Warehouse. Seit wir auf eine neue Version des ETL-Tools umgestellt haben, beobachte ich sporadisch leichte Abweichungen in den aggregierten Kennzahlen, obwohl die Rohdaten identisch sind. Es fühlt sich an, als würde irgendwo im Prozess eine winzige, nicht-deterministische Rundung passieren, aber ich kann den Punkt nicht isolieren. Hat jemand ähnliches erlebt, besonders bei inkrementellen Lastvorgängen?
Zitieren
#2
Das klingt nach Rundung Ungenauigkeiten in der Berechnung. Wenn Rohdaten wirklich identisch sind kann das Verhalten in inkrementellen Lastvorgängen durch die Art der Aggregation entstehen. Prüfe die Datentypen der Felder die aufsummiert werden ob float oder decimal genutzt werden und ob automatische Konvertierungen stattfinden. Auch die Reihenfolge der Additionen in parallel laufenden Tasks kann zu leichten Abweichungen führen.
Zitieren
#3
Vielleicht liegt das Problem in der Art wie der neue ETL Builder Zahlen verarbeitet. Viele Tools arbeiten mit float oder double statt Decimal und bei der Zusammenführung von Teilberechnungen kann eine leichte Rundung entstehen. Verifiziere ob alle Operationen dieselbe Dezimierung verwenden und ob Zwischenergebnisse deterministisch bleiben. Lege eine feste Präzision fest und teste zwei Durchläufe mit identischen Daten und derselben Reihenfolge.
Zitieren
#4
Vielleicht missverstehst du ja die Ursache. Es reicht oft nicht die Rohdaten zu prüfen denn bei inkrementellen Lastvorgängen spielen Fenstergrenzen und zeitliche Abfolgen eine Rolle. Es kann sein dass late arrivals oder unterschiedliche Batch Zeiten die Aggregationen beeinflussen auch wenn sich die Rohdaten nicht ändern. Prüfe ob Nullwerte korrekt behandelt werden und ob die Filter logik konsistent bleibt.
Zitieren
#5
Skeptischer Ton. Das klingt nach Hokuspokus. Vielleicht will jemand nur eine einfache Erklärung liefern und verheimlicht dass es wirklich ein komplexer Verteilungsfehler ist. Trotzdem sollte man die Pipeline schrittweise prüfen und den Investitionsbedarf einschätzen. Kleine Abweichungen sind nicht selten und zeigen oft nur dass die Architektur an Grenzen stößt.
Zitieren
#6
Vielleicht sollte man das Thema neu rahmen und fragen welche Grundidee hier wirklich sichtbar wird. Es geht um Reproduzierbarkeit in einer verteilten Umgebung und nicht nur um eine schnelle Korrektur. Wenn man die Inkrementelle Last als Prozess betrachtet der Fenstergrenzen und Timing mit einbezieht lässt sich vielleicht besser erklären wo die Abweichungen herkommen.
Zitieren
#7
Habt ihr versucht die Aggregationen explizit deterministisch zu machen indem man eine feste Sortierung und eine klare Reihenfolge der Additionen vorgibt?
Zitieren


[-]
Schnellantwort
Nachricht
Geben Sie hier Ihre Antwort zum Beitrag ein.

Bestätigung
Bitte den Code im Bild in das Feld eingeben. Dies ist nötig, um automatisierte Spambots zu stoppen.
Bestätigung
(Keine Beachtung von Groß- und Kleinschreibung)

Gehe zu: