Sono un principiante, cercando di capire come potremmo riscrivere un processo ETL in batch in Google Dataflow. Ho letto alcuni documenti, faccio alcuni esempi.Complesso join con google dataflow
Sto proponendo che il nuovo processo ETL sarà guidato da eventi aziendali (ad esempio una raccolta di dati di origine). Questi farebbero scattare il processo ETL per quella particolare entità aziendale. Il processo ETL estrarrebbe set di dati dai sistemi di origine e quindi passerà quei risultati (PCollections) alla successiva fase di elaborazione. Le fasi di elaborazione coinvolgerebbero vari tipi di join (inclusi join cartesiani e non chiave, ad esempio, date-banded).
Così un paio di domande qui:
(1) è l'approccio che sto proponendo valide & efficiente? Se no, cosa sarebbe meglio, non ho visto alcuna presentazione sui complessi processi ETL reali utilizzando Google Dataflow, solo scenari semplici.
Ci sono prodotti ETL di "livello superiore" che sono più adatti? Ho tenuto d'occhio Spark e Flink per un po '.
Il nostro ETL attuale è moderatamente complesso, sebbene ci siano solo circa 30 tabelle principali (dimensioni e fatti EDW classici) e circa 1000 passaggi di trasformazione. I dati di origine sono complessi (circa 150 tabelle Oracle).
(2) I complessi join non chiave, come dovrebbero essere gestiti?
Sono ovviamente attratto da Google Dataflow perché è prima di tutto un'API e le capacità di elaborazione parallele sembrano un'ottima soluzione (ci viene chiesto di passare dall'elaborazione batch overnight a quella incrementale).
Un buon esempio di Dataflow per questo caso d'uso spingerebbe in avanti l'adozione!
Grazie, Mike S