Azure Übersicht Teil 4: Analysemethoden
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.
Data Processing Varianten
Generell unterscheidet man zwischen Stream Processing und Batch Processing. Azure kennt zu jedem Zweck eine Reihe von Services.
Stream Processing
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.
- Azure Stream Analytics: Echtzeitanalyse von Datenströmen, z.B. aus IoT Devices.
- Storm und Spark Streaming
- Azure Time Series Insights: End-to-end-IoT Analyseplattform für Überwachung, Analyse und Visualisierung von IoT Daten.
Batch Processing
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.
- Azure Databricks: Apache Spark basierte Analyse als Cloud Service
- Azure Data Lake Analytics: Analyse grosser Data Sets im Data Lake Store mit U-SQL. Programmierung in Python, R oder C# Extensions.
- Azure Synapse Analytics (früher SQL Data Warehouse): Kombiniert Datenablage, Aufbereitung und Bereitstellung von Daten aus verschiedenen Quellen mit dem Tool Synapse Studio.
Kombination von Stream und Batch Processing
- HDInsight (Microsofts Implementierung von Apache Hadoop): Verwendung von Open Source Frameworks Apache Spark, Apache Storm (Stream), Apache HBase (NoSQL Datenbank), Kafka und anderen zur Analyse grosser Datenquellen.
Weitere Dienste
- Azure Data Factory: Service mit vielen Konnektoren für das Laden, Transformieren und Ablegen von Daten. Dieser Schritt ist häufig nötig, bevor die Daten analysiert werden können.
- Azure Analysis Services: Cloud Version der Analyse Werkzeuge des SQL Server. Enthält ein InMemory Datenmodell, auf das Benutzer Abfragen formulieren können, welche in BI-Tools ausgewertet werden
- Azure Log Analytics: Analyse von Logdaten aus Azure Monitor
Architekturen
Lambda Architektur
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.
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.
Anwendungsbeispiel
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
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.