In Teil 1 (Blob Storage), 2 (SQL Storage) und 3 (Cosmos DB) haben wir die verschiedenen Azure Speichermedien kennen gelernt. Auch für die Datenanalyse stellt Azure eine überwältigende Anzahl von Services zur Verfügung, für die dieser Blog eine kurze Übersicht geben soll.
Doch wozu braucht es überhaupt Analysen? Applikationen, Geräte oder auch nur Log Files erzeugen heute riesige Datenmengen, die in Azure Storage oder Event Hubs gespeichert werden. In einem weiteren Schritt konvertiert Azure Data Factory die Daten in ein für die Auswertung geeignetes Zielformat oder Streaming Analytics filtert die Daten, während sie eintreffen. Diverse Analyseverfahren werten die gespeicherten Daten aus, um Antworten auf bestimmte Businessfragen zu erhalten.
Generell unterscheidet man zwischen Stream Processing und Batch Processing. Azure kennt zu jedem Zweck eine Reihe von Services.
Stream Processsing verarbeitet und analysiert Daten direkt nach ihrer Entstehung. Oft spricht man auch von Real-Time Analyse oder Event Processing. Typische Anwendungen finden sich im IoT Bereich.
Batch Processing sammelt Daten zunächst in Datenbanken und verarbeitet sie erst nachträglich bei Bedarf. Dieses eher klassische Verfahren eignet sich für grosse Datenmengen (Big Data) oder bei Datenquellen aus Legacy Systemen, wenn Echtzeitinformationen nicht erforderlich sind.
Die Lambda Architektur kombiniert die traditionelle Batch Pipeline mit einer schnellen Echtzeit Stream Pipeline für die Verarbeitung von Daten. Die Daten aus beliebigen Quellen gelangen gleichzeitig an den Batch Layer und an den Speed Layer. Im Batch Layer werden sie zunächst in einem sequentiellen Datenspeicher (z.B. Apache Hadoop) abgelegt, bevor sie vom Serving Layer in einzelnen Batches für die weitere Verarbeitung aufbereitet werden. Der Speed Layer ermöglichet eine kontinuierliche Verarbeitung der Daten und liefert schnelle Ergebnisse. Dazu eignen sich Technologien wie Apache Storm oder Stream Analytics.
Der Nachteil dieser Architektur ist, dass die beiden Datenpfade im Batch Layer und Speed Layer unnötige Komplexität bewirken. Dies wird verbessert durch die Kappa Architektur.
Die Kappa Architektur verzichtet auf den Batch Layer, die Daten gelangen direkt in den Streaming Prozessor, der sie nach der Verarbeitung für weitere Abfragen speichert.
Eine typische Applikation könnte aussehen wie in folgendem Bild.
Beliebige Datenquellen liefern Aktualisierungen in regelmässigen Abständen in einen Blob Storage. Data Factory bereinigt und transformiert die Daten und überträgt sie in Azure Synapse Analytics. PolyBase kann diesen Prozess für umfangreiche Datasets parallelisieren. Nachdem ein neuer Datenbatch im Warehouse zur Verfügung steht, aktualisiert Analysis Services das zuvor erstellte Tabellenmodell und überreicht die Daten an Power BI zur Visualisierung der Ergebnisse.
PolyBase ist ein Datenvirtualiserungsfeature für SQL Server, das ohne Treiber für die entsprechende Datenbank (z.B. Oracle, MongoDB, Hadoop, Azure Storage) auskommt. Dabei verbleiben die Daten im Quellformat an ihrem ursprünglichen Speicherort. Die SQL Server Instanz virtualisiert diese externen Daten und stellt sie wie andere Tabellen für die Auswertung zur Verfügung.
Dies reduziert aufwendige Datentransferoperationen.
[…] von Daten in Verbindung stehen. Viel mehr Details zu Datenanalysen in der Azure Cloud gibt der Blog Beitrag von Hans Peter […]