Beschäftigt man sich mit Azure, trifft man auf eine ungeheure Vielzahl an Möglichkeiten und Varianten, wie man Daten in der Cloud speichern und analysieren kann. Es ist schwierig, unter den vielen ähnlichen Begriffen die richtige Kombination von Storage Technologien zu finden, um ein gegebenes Problem zu lösen. Dabei spielen auch Betriebskosten, verfügbare Algorithmen und Entwicklungsaufwände eine Rolle. Darüber soll diese Blog-Serie etwas Klärung verschaffen.
Beginnen wir mit dem Storage. Zuerst erstellt man einen neuen Storage Account:
Darin stehen 4 verschiedene Varianten zur Verfügung:
- Containers (Blob): kostengünstiger Speicher für alle Arten von unstrukturierten Daten wie Bilder, Dokumente oder binäre Daten.
- File Shares: File Shares, auf die via SMB Protokoll zugegriffen werden kann. Im Unterschied zu einem normalen Fileshare ist jede Datei mit einer eindeutigen URL von der ganzen Welt erreichbar, geschützt mit einem Shared Access Signature (SAS) Token. Gut geeignet für Migration von Applikationen, die auf das Filesystem zugreifen.
- Tables: NoSQL Key-Value Store, ideal für strukturierte, nicht-relationale Daten.
- Queues: Asynchrone Message Queue für Kommunikation zwischen Micro-Services. Eine Message kann bis zu 64 kB gross sein, eine Queue kann Millionen von Messages speichern.
Blob Storage
Blob Storage eignet sich besonders gut für:
- Dateien, auf die der Browser direkt zugreifen kann (Bilder, Dokumente)
- Video und Audio Streaming
- Log files
- Speicher für Backup und Archiv
- Speicher für Ergebnisse von Analysen
Es gibt drei Arten für Blob Storage, je nach der geforderten Zugriffsgeschwindigkeit: Hot, Cool oder Archive. Auf archivierte Blobs kann man nicht mehr direkt zugreifen. Ein Administrator kann Regeln definieren, unter welchen Bedingungen Blobs zwischen den Bereichen verschoben oder wann sie gelöscht werden sollen.
Blob Storage ist organisiert in Containern (entspricht Directory), die eine unlimitierte Zahl von Blobs (entspricht File) enthalten können. Man unterscheidet zwischen
- Block Blobs: Text und Binärdaten bis zu 4.7 TB.
- Append Blobs: Optimiert für das Hinzufügen von Daten, z.B. für Log Files
- Page Blobs: Speichern von Files bis zu 8 TB. Verwendet zum Speichern von VHD files oder als disks für virtuelle Maschinen.
Der Blobtyp kann beim Upload einer Datei spezifiziert werden.
Alle Daten sind automatisch verschlüsselt und redundant gespeichert. Die Schlüssel sind normalerweise im Microsoft Key Store oder im Azure Key Vault. Die Art der Replikation (lokal, Zone, Geo) wird beim Anlegen definiert.
Table Storage
Der Table Storage speichert strukturierte NoSQL-Daten als Key-Value ohne Schema. Er eignet sich für Daten, die keine komplexen Verknüpfungen haben und für schnellen Zugriff denormalisiert sind. Eine Alternative für den klassischen Table Storage ist inzwischen Cosmos DB, die auch ein Table API enthält und insgesamt mehr Funktionen bietet.
Queue
Der Azure Queue Storage ist ein Service, um eine grosse Zahl von Messages zu verarbeiten. Queues entkoppeln einzelne Services skalierbarer Applikationen. Eine einzelne Queue Messsage kann bis zu 64 kByte gross sein und kann bis maximal 7 Tage in der Queue gespeichert sein. Queues sind über eine URL adressierbar:
https://<storage account>.queue.core.windows.net/<queue_name>
Clientbibliotheken sind für alle Plattformen erhältlich. Für .NET gibt es das NuGet Package “Microsoft.Azure.Storage.Common”.
Azure Data Lake
Eine spezielle Variante des Blob Storage ist der Azure Data Lake. Dabei handelt es sich um einen optimierten Speicher für sehr grosse Datenmengen mit hierarchischem Filesystem und Active Directory Unterstützung. Im Azure Data Lake speichert man vorwiegend grosse Mengen an Textfiles für die spätere Analyse. Hier findet sich ein Vergleich zwischen Data Lake und Blob Storage.
Hinweis: Azure Data Lake Storage Gen1 wurde abgelöst durch Gen2. Für einen Data Lake Storage Gen 2 muss beim Anlegen eines Storage auf dem Advanced Tab der Hierarchical Namespace aktiviert werden.
Im 2. Teil dieser Blogserie werden die verschiedenen Arten von strukturierten Datenspeichern in Azure wie z.B. dem SQL Server betrachtet.
Pingback: Noser Blog » Azure Übersicht Teil 2: SQL Datenspeicher
Pingback: Noser Blog » Azure Übersicht Teil 4: Analysemethoden
Pingback: Noser Blog Azure: Eine Übersicht zu allen Diensten - Noser Blog