Complex Join mit Google Dataflow

Ich bin ein Neuling und versuche zu verstehen, wie wir einen Batch-ETL-Prozess in Google Dataflow neu schreiben können. Ich habe einige der Dokumente gelesen und einige Beispiele aufgeführt.

Ich schlage vor, dass der neue ETL-Prozess von Geschäftsereignissen (d. H. Einer Quell-PC-Sammlung) gesteuert wird. Diese würden den ETL-Prozess für diese bestimmte Geschäftseinheit auslösen. Der ETL-Prozess extrahiert Datensätze aus Quellsystemen und leitet diese Ergebnisse (PCollections) an die nächste Verarbeitungsstufe weiter. Die Verarbeitungsstufen würden verschiedene Arten von Verknüpfungen beinhalten (einschließlich kartesischer und Nicht-Schlüssel-Verknüpfungen, z. B. datumsgestaffelt

So ein paar Fragen hier:

(1) Ist der Ansatz, den ich vorschlage, gültig und effizient? Wenn nicht, was wäre besser? Ich habe bisher keine Präsentationen zu komplexen ETL-Prozessen unter Verwendung von Google Dataflow gesehen, sondern nur einfache Szenarien.

Gibt es ETL-Produkte auf "höherem Niveau", die besser passen? Ich habe Spark und Flink eine Weile im Auge.

Unsere aktuelle ETL ist mäßig komplex, obwohl es nur etwa 30 Kerntabellen (klassische EDW-Dimensionen und Fakten) und ~ 1000 Transformationsschritte gibt. Die Quelldaten sind komplex (ungefähr 150 Oracle-Tabellen).

(2) Die komplexen Nicht-Schlüssel-Verknüpfungen, wie würden diese behandelt?

Ich bin offensichtlich von Google Dataflow angetan, da es sich in erster Linie um eine API handelt und die Parallelverarbeitungsfunktionen sehr gut zusammenpassen (wir werden gebeten, über Nacht vom Stapel zur inkrementellen Verarbeitung zu wechseln).

Ein gut funktionierendes Beispiel für Dataflow in diesem Anwendungsfall würde die Akzeptanz wirklich vorantreiben!

Danke, Mike S

Antworten auf die Frage(2)

Ihre Antwort auf die Frage