Azure Data Factory ist in vielen Fällen der Standarddienst für die Orchestrierung von Daten in eine Azure-Instanz hinein und aus einer Azure-Instanz heraus. Wir sagen "orchestrieren", weil es bis vor kurzem keine direkte Möglichkeit gab, Daten tatsächlich zu verändern (wie bei ETL).
Sicher, Azure DataBricks ist schon seit einigen Jahren Teil des Azure-Angebots, aber um DataBricks nutzen zu können, muss man zum Zwecke der Datenverarbeitung Python- oder Scala-Code schreiben können. Daran ist nichts auszusetzen, und Coding-Evangelisten bevorzugen diese Vorgehensweise sicherlich, aber es ist nicht unbedingt in jeder Situation praktisch.
Um dieses Problem zu lösen, hat das Azure Data Factory (ADF) Team von Microsoft kürzlich Azure Data Flow veröffentlicht, das als "SSIS in der Cloud" (SQL Server Integration Service) fungiert. Azure Data Flow ermöglicht es der Data Factory, wie ein richtiges ETL-Tool zu arbeiten. Azure Data Flow ist eine "Drag-and-Drop"-Lösung, die Nutzern eine visuelle Darstellung des Datenflusses und der durchgeführten Transformationen bietet, ohne dass Coding erforderlich ist. Wie üblich, wenn man in Azure arbeitet, werden zuerst "Linked Services" erstellt - woher die Daten kommen und wohin sie gehen. Von dort aus wird der Flow Schritt für Schritt aufgebaut, bis die Daten den Anforderungen entsprechen. Transformationen, die normalerweise durch das Erstellen einer Stored Procedure und die Ausführung auf der Loaded Data am Zielort durchführen würden, werden nun alle in der Data Factory verwaltet. Dadurch bleibt das Data Warehouse sauber und einsatzbereit. Die folgende Grafik zeigt ein Beispiel für einen Data Flow.
Ein Beispiel für einen Data Flow ist, wenn Daten gesammelt, aggregiert, mit einem sekundären Stream verknüpft, gefiltert und in einer bestimmten Datensenke gespeichert werden.
Wie bei den meisten Dingen in der Cloud sind die Möglichkeiten etwas eingeschränkt. Mit Data Flow können nur die vorgefertigten Operationen für Transformationen verwenden werden. Data Flow befindet sich in der Entwicklung, um Operationen und Fähigkeiten auszubauen. Data Flow wird wahrscheinlich nie ein Messias sein, aber vielleicht so etwas wie ein Batman.
Wir haben bereits DataBricks erwähnt. Data Flow ist eine Erweiterung von Azure DataBricks. Data Flow generiert eine JSON-Datei aus der Arbeit in der Data Factory. Die JSON-Datei wird als Blueprint an DataBricks weitergegeben. DataBricks generiert äquivalenten Scala-Code, der als Job weitergegeben wird, und der Scala-Code wird schließlich mit Spark auf dem (zuvor definierten) Cluster ausgeführt. Azure Data Factory verwaltet die "Code-Übersetzung", die Spark-Optimierung und Ausführung und skaliert automatisch.
Eine Auswahl von Operationen, die mit Azure Data Flow verfügbar sind:
- Join - Zusammenführen mehrerer Data Streams basierend auf einer Bedingung
- Split - Weiterleitung von Daten an verschiedene Streams basierend auf einer Bedingung
- Union - Sammeln von Daten aus Streams
- Lookup - Einsehen von Daten aus einem anderen Stream
- Derived Columns - Erstellen von Spalten auf der Grundlage bereits vorhandener Spalten
- Aggregates - Aggregieren von Daten
- Surrogate Keys - Hinzufügen einer Surrogate Key Spalte für einen bestimmten Wert
- Exists - Prüfen, ob Daten in einem anderen Stream vorhanden sind
- Auswählen - Auswählen, welche Daten an den nächsten Stream gehen sollen
- Filter - Filter auf die Streams anwenden
- Sortieren - Ordnet die Daten im Stream
“We are stuck with technology when what we want is just stuff that works” – Douglas Adams
Kontaktieren Sie uns