Microsoft Fabric – Das ändert sich
Als Data Engineer gehört Azure Synapse Analytics zu meinem täglichen Brot. Als Microsoft letztes Jahr die Katze aus dem Sack ließ und mit Microsoft Fabric ''the biggest data product announcement since SQL Server'' vorstellte, war ich natürlich neugierig und fragte mich, wie sich diese Neuerung auf meine tägliche Arbeit auswirken würde [1].
Microsoft hat derzeit keine Pläne, Azure Synapse Analytics einzustellen. Die tägliche Arbeit mit Synapse kann fortgesetzt werden, ohne in Panik zu verfallen, dass nur noch Fabric verwendet werden kann. Dennoch ist es wichtig, einen guten Überblick zu haben, wie die Arbeit mit Azure Synapse Analytics auch auf Fabric übertragen werden kann. Dafür muss man verstehen, was Microsoft Fabric ist.
Microsoft Fabric
Microsoft beschreibt Fabric als Datenplattform für das ''Zeitalter der künstlichen Intelligenz'' und will bestehende Daten- & Analyse-Tools zusammenführen. Durch die Integration all dieser Dienste in eine einzige Plattform bietet Fabric eine End-to-End-Lösung für die Integration, Speicherung, Verarbeitung, Analyse und Visualisierung von Daten.
Mit Fabric bietet Microsoft ein Software-as-a-Service-(SaaS-)Modell, welches eine Weiterentwicklung der Power-BI-Plattform ist, die um eine Reihe von Funktionen erweitert wurde:
- Für die Datenintegration nutzt Fabric Pipelines & Wrangling Data Flows aus der Data Factory.
- Data Engineers finden mit Lakehouses und Apache Spark Notebooks/Jobs bekannte Werkzeuge aus Azure Synapse Analytics wieder.
- Data Scientists können KI-Modelle erstellen, Experimente durchführen oder Notebooks nutzen.
- Mit Warehouses kann man – wie der Name schon sagt – Data Warehouses erstellen.
- Event Streams können für Echtzeitanalysen verwendet werden, KQL-Datenbanken & KQL-Query-Sets können erstellt werden.
- Der Data Activator beobachtet Daten 24/7. Er erkennt Muster und Trends und startet vorausgewählte Flows bei bestimmten Mustern.
Wichtig ist hierbei der Unterschied zwischen einer Plattform-as-a-Service (PaaS) und SaaS. PaaS ermöglicht Nutzern, ihre Anwendungen in der Cloud zu erstellen, zu betreiben und zu warten, während SaaS Anwendern Zugang zu Software-Programmen bietet, die im Internet gehostet werden, ohne dass eine Infrastrukturverwaltung erforderlich ist. Mit SaaS profitieren die Nutzer von einer problemlosen Skalierbarkeit, Wartung und Aktualisierung und zahlen nur für die Ressourcen, die sie verbrauchen.
Microsoft bietet Fabric in verschiedenen Kapazitäten, Microsoft’s Capacity Units (CU), von 2 CU bis 2048 CU an. Die mit der Lizenz erworbenen Kapazitäten stehen dem Nutzer und seinen Arbeitsbereichen vollständig und exklusiv zur Verfügung. Zusätzlich fallen Kosten für die Datenspeicherung an, die nicht in der kapazitätsbasierten Lizenz enthalten sind. Bei Kapazitäten unter 64 CU ist zusätzlich eine Power-BI-Pro-Lizenz für alle Nutzer erforderlich, um die erstellten Inhalte konsumieren zu können. Weitere Details und Erläuterungen hierzu finden sich in der Fabric-Dokumentation [2].
Eine weitere wichtige Kernkomponente ist der OneLake. Dieser ist ein einzelner, einheitlicher und logischer Data Lake, der einem Unternehmen (d. h. einer Organisation oder einem Tenant), das Fabric einsetzt, automatisch zur Verfügung steht. Der OneLake erinnert dabei ein wenig an OneDrive. Dies hat den Vorteil, dass Daten, die bisher mit separaten Analyse-Tools bewegt wurden, nun gebündelt in OneLake liegen.
OneLake ist auf Azure Data Lake Storage Gen2 (ADLS Gen2) aufgebaut und wird direkt von Fabric verwaltet. So können alle Daten jederzeit dort genutzt werden, wo sie benötigt werden. Alle Daten, die Fabric in OneLake speichert, werden jetzt (standardmäßig) im Delta-Format gespeichert, einem beliebten offenen Datenformat.
Dies betrifft Daten, die beispielsweise über Apache Spark Notebooks in ein Lakehouse geschrieben werden. Aber auch Daten, die in einem Warehouse gespeichert sind, werden intern im Delta-Format auf OneLake gespeichert.
Wenn z. B. ein Lakehouse in Fabric angelegt wird, erstellt Fabric automatisch einen SQL-Endpoint, über den man jede Tabelle in diesem Lakehouse per SQL abfragen kann. Legt man nun in einem Spark Notebook eine Tabelle in dem Lakehouse an, synchronisiert Fabric diese automatisch mit dem SQL-Endpoint – ähnlich kennt man es bei Synapse Analytics, hier repliziert der SQL-Serverless Pool Spark-Datenbanken als Read-Only-Datenbank, die dann über T-SQL abgefragt werden kann. Aber das ist noch nicht alles, denn Fabric erstellt automatisch ein Semantic Model für diese Lakehouse-Tabelle. So können die Daten direkt in Power BI verwendet werden – ohne, dass der Entwickler etwas tun muss.
Was ändert sich von Azure Synapse Analytics zu Microsoft Fabric?
Architektur
Eine typische Datenstrecke in Azure Synapse Analytics könnte wie folgt aussehen:
- Daten werden mithilfe einer Pipeline aus einem Quellsystem (z. B. SQL-Server, Oracle DB etc.) in ein ADLS Gen2 geladen.
- Dort werden die Daten dann unter Verwendung von Spark, Azure Databricks etc. aufbereitet.
- Anschließend werden die Daten über eine weitere Pipeline in einen Synapse SQL Pool geladen.
- Power BI oder ein anderes BI-Tool greift dann auf die Daten im SQL Pool zu und ein Bericht wird erstellt.
In Fabric kann auch dieser Prozess beibehalten werden. Die Lösung kann jedoch etwas vereinfacht werden. Der Prozess beginnt identisch – Die Daten werden über eine Pipeline oder einen Dataflow in OneLake geladen. Von dort aus können die Daten über Spark-Notebooks verarbeitet und in einem Lakehouse gespeichert werden. Zusätzlich besteht die Möglichkeit, Shortcuts zu nutzen, um bestehende Daten in ein Lakehouse zu laden.
Der Unterschied zwischen Fabric und Azure Synapse Analytics besteht darin, dass es der SQL Analytics Endpoint in Fabric ermöglicht, Sicherheitsregeln, welche vorher im Dedicated Pool definiert waren, direkt auf das Lakehouse anzuwenden. Außerdem kann Power BI mit dem DirectLake-Modus unmittelbar über das Lakehouse mit einer ähnlichen Performance wie beim Import betrieben werden. Andere BI-Tools können weiterhin über den SQL Analytics Endpoint genutzt werden.
Laufzeit und Performance
Es ändert sich nicht nur der Aufbau von Datenstrecken, sondern auch die Performance. So wird jedem Fabric-Arbeitsbereich ein ''Starter-Pool'' Standard-Spark-Cluster zugeordnet, also ein vorkonfigurierter Spark-Pool, der nicht explizit eingerichtet werden muss. Es können jedoch auch wie in Synapse Analytics bereits eigene benutzerdefinierte Cluster erstellt werden.
Fluch und Segen zugleich ist, dass jegliche Spark-Session, die in Fabric gestartet wird, in nur kurzer Zeit verfügbar ist. Das liegt daran, dass die entsprechende Hardware über die Fabric-Kapazität bereits reserviert ist. In Synapse werden beim Start eines Spark-Clusters im Hintergrund erst virtuelle Maschinen in Azure hochgefahren und konfiguriert. In Fabric sind diese Maschinen bereits reserviert. Hier bestimmt die mit dem Fabric-Workspace assoziierte Kapazität, wie groß der Spark-Cluster maximal sein kann. Somit bleibt nicht mehr genug Zeit, sich in der Zwischenzeit nach dem Start eines Clusters gemütlich einen Kaffee zu holen.
Ein weiteres neues Feature ist der High Concurrency Mode in Fabric Spark, welcher es ermöglicht, dass mehrere Nutzer sich eine Spark-Session in Fabric teilen können und gleichzeitig Data Engineering und Data Science Workloads ausführen können. Normalerweise benutzt ein Notebook eine Standard-Spark-Session für die Ausführung. Im High Concurrency Mode kann die Spark-Session unabhängige Ausführungen von verschiedenen Items mit individuellen read-eval-print-loop-(REPL-)Kernen vollziehen, welche mit der Spark-Applikation existieren. Diese REPL-Kerne ermöglichen es, jedes Item zu isolieren und dadurch zu verhindern, dass lokale Notebook-Variablen von anderen Notebooks mit selben Variablennamen überschrieben werden, die in derselben Session arbeiten.
Synapse Data Warehouse
Microsoft Fabric bietet mit dem Fabric Data Warehouse das erste transaktionale Data Warehouse, welches von Haus aus ein offenes Dateiformat unterstützt [3]. Dadurch kann eine einzige Kopie der Daten von allen Fabric Workloads wie Data Science, Data Engineering und Power BI verwendet werden.
Sowohl Synapse Dedicated SQL-Pool als auch das Fabric Data Warehouse bieten beide Multi-Table Transaction. Zusätzlich wurde das Fabric Data Warehouse um einige Features erweitert. Da durch die neue Architektur keine Dedicated und Serverless SQL Pools mehr nötig sind, bietet dies viele weitere neue Funktionen, wie zum Beispiel:
- datenbankübergreifende Abfragen ohne ETL oder Datenbewegung
- Ermöglichen eines pay for what you use pricing models
Um ein bereits bestehendes Data Warehouse in ein Fabric Data Warehouse aufzurüsten, gibt es verschiedene Möglichkeiten. Dazu gehören folgende:
- den bereits vorhandenen Dedicated SQL Pool in ein SQL-Projekt zu exportieren und es dann in Fabric zu importieren
- die Gen2 DDL mit Hilfe eines PowerShell-Skriptes in fabric-unterstützte DDL zu konvertieren.
Laut Microsoft soll jedoch bereits an einem Migrationsassistenten gearbeitet werden, welcher den Synapse-Gen2-Code automatisch erkennt und in Fabric-Data-Warehouse-Code konvertiert. Zusätzlich dazu werden die Endpunkte umgeleitet [4].
Data Engineering
Wenn es um den Data-Engineering-Teil geht, wird man in Fabric nicht viel vermissen. Notebooks und Spark-Jobs werden nahezu identisch übernommen und um einige Funktionen erweitert. Zu diesen Erweiterungen gehören unter anderem:
- automatische Speicherungsfunktion von Spark-Notebooks
- Zusammenarbeit und Kommentierung in Echtzeit
- Code-Versionierung über git
- VS-Code-Unterstützung, welche ermöglicht, Notebooks und Spark-Jobs dort zu bearbeiten und zu debuggen.
Fazit
Microsoft Fabric befindet sich seit November 2023 offiziell im General-Availability-(GA-)Status, einige Features sind jedoch noch nicht implementiert und laut Roadmap für das erste oder zweite Quartal 2024 geplant. Allerdings sorgt Fabric schon jetzt für viel Begeisterung und auch hohe Erwartungen, sodass im November 2023 bereits über 25.000 Organisationen weltweit Fabric nutzten, darunter rund 67 Prozent der Fortune 500 [5].
Grundsätzlich lässt sich also sagen, dass sich mit Fabric einiges im Arbeitsalltag zum Positiven verändern wird, was beispielsweise die Architektur oder die Performance betrifft, auch wenn sich dies "negativ" auf den Kaffeekonsum auswirken wird.
- Youtube: Microsoft Build 2023
- Microsoft: Fabric-Dokumentation - Lizenzen
- Microsoft Blog: Microsoft Fabric
- Microsoft Blog: Microsoft Fabric
- Microsoft: Fabric Announcement