MS Azure Storage Account und Data Lake – Big Data-Analyse sicher und skalierbar

MS Azure Storage Account und Data Lake – Big Data-Analyse sicher und skalierbar

Mit Data Lake Storage bietet Microsoft im Rahmen von Azure einen Cloud-basierten Dienst für die Analyse großer Datenmengen an. Der hochskalierbare Service ermöglicht die Arbeit mit massiven Workloads und Datenmengen im Petabyte-Bereich. Gleichzeitig profitiert der Nutzer von allen Vorteilen eines Cloud-Speichers, wie etwa der zuverlässigen Auflösung von Datensilos. Wir gehen in diesem Beitrag auf die Funktionsweise von Data Lake Storage ein und zeigen, wie die Arbeit mit dem Account in der Praxis aussieht.

Cloud Data Lakes für skalierbare Analyseanwendungen

Microsoft hat seinen Dienst Azure Data Lake im Jahr 2016 in Betrieb genommen und richtet sich damit an anspruchsvolle Unternehmenskunden, die für ihre Analyseanwendungen in der Cloud nach einer Lösung suchen. Microsoft hostet Data Lake in Azure, der eigenen öffentlichen Cloud. Der Service ist vielfältig verwendbar und unterstützt strukturierte und semistrukturierte ebenso wie unstrukturierte Datensätze. Diese Daten können aus einer Vielzahl von Quellen stammen. Große Datenmengen fallen heute typischerweise im Bereich Soziale Netzwerke und Medien, Video, Web-Applikationen oder Mobile- und Desktop-Services an. Ein einzelner Azure Data Lake Store Account ermöglicht es, Billionen Dateien zu speichern, deren Dateigröße ein Petabyte überschreiten können. Ein Petabyte entspricht einer Million Gigabyte. Wir bewegen uns hier also im besonders anspruchsvollen Big Data-Bereich. Der Service ist für die Parallelverarbeitung der Daten vorbereitet, wofür Microsoft seine Dryad-Lösung verwendet. Bei Azure heißt das Data Lake Analytics. Die Abarbeitung der Jobs erfolgt on-demand. Der Service basiert hier auf einer verteilten Infrastruktur und kann die benötigen Ressourcen für die Datenverarbeitung dynamisch zuweisen und wieder entziehen. Das bietet für Unternehmenskunden Vorteile, weil sie nur die in Anspruch genommene Leistung bezahlen.

Drei einfache Schritte führen zum Data Lake

Bei der Nutzung des Services dreht sich alles um die Data Lakes. Der Data Lake nimmt als Repository alle Daten im Rohdatenformat auf, speichert sie und stellt sie zur Verfügung für die weitergehende Verarbeitung zum Beispiel im Rahmen von Aufgaben wie dem maschinellen Lernen. Denn das Rohdatenformat ist ideal für die Verwendung in KI-Anwendungen.

Die Speicherung erfolgt in einem nicht oder fast nicht transformierten Zustand. Das ist der Unterschied zum Data Warehouse. Der Dienst lädt alle Daten direkt aus dem Quellsystem. Die Datenaufbereitung erfolgt erst dann, wenn der Nutzer sie für die Datenanalyse oder Visualisierungen abruft. Doch wie erstellen Unternehmen in der Praxis einen solchen Data Lake für ihre Arbeit?

Dazu sind in Azure drei Schritte erforderlich. Damit die Systeme später eine Verbindung zum Data Lake herstellen können, benötigen sie den Storage Account Namen, den Container-Namen und den Connection String bzw. die Verbindungszeichenfolge. Wir sehen uns im Folgenden an, wie die Erstellung des Data Lakes im Einzelnen funktioniert.

Account erstellen

Zuerst erstellt der Anwender einen Azure Storage Account. Die Erstellung des Kontos erfolgt über das Azure-Portal. Unter „Alle Services“ wählt der Nutzer die Storage Accounts aus und fügt hier ein neues Konto hinzu. Der Anwender erstellt eine neue Ressourcen-Gruppe und vergibt ihr einen Namen.

 

Danach muss der Nutzer einen Namen für den Storage Account vergeben. Hier ist es wichtig, dass dieser über Azure hinweg einzigartig ist. Die Länge beträgt zwischen drei und 24 Zeichen. Alle weiteren Felder können erst einmal auf den Standardwerten bleiben.

 

Über den Tab „Erweitert“ gelangt der Nutzer zu den Einstellungen für den hierarchischen Namespace. Diesen sollte er aktivieren, um den Azure Data Lake Storage verwenden zu können. Danach überprüft der Nutzer noch einmal alle Angaben und erstellt dann den Gen2-Account. Worum es sich bei Gen2 handelt, erklären wir weiter unten.

Container erstellen

Unter „Storage Accounts“ sieht der Nutzer nun im Portal das gerade erstellte Konto. Nach der Auswahl dieses Kontos aus der Liste ist es erforderlich, hierfür einen Container zu erstellen. Auf der Benutzeroberfläche steht hierfür die Option „Container“ zur Auswahl.

 

Der Anwender geht auf Hinzufügen und wählt einen Namen für den neuen Container aus, der den Verwendungszweck widerspiegeln sollte. Im Namen könnte zum Beispiel der Service auftauchen, der später mit dem Container arbeiten und auf diesen zugreifen soll. Der Zugriff sollte auf privat eingestellt sein. Mehr Einstellungen und Angaben sind nicht erforderlich, um einen neuen Container im Konto zu erstellen.

Azure Resource Access-Autorisierung erteilen

Damit der Nutzer auf den neuen Data Lake schreiben kann, benötigt er die entsprechenden Berechtigungen. Diese erteilt er im letzten Schritt der Einrichtung des Data Lakes. Im Storage-Konto findet er die dafür erforderliche Funktionalität unter „Access Keys“ oder Zugriffsschlüssel.

 

Entscheidend ist hier die Verbindungszeichenfolge, über die der Zugriff auf den Container erfolgt. Diese gibt der Nutzer für den Zugriff gemeinsam mit dem Storage-Account-Namen an, was so ähnlich funktioniert wie Benutzername und Passwort. Die Verbindungszeichenfolge sollte in jedem Fall geheim bleiben. Es empfiehlt sich, diese nicht per E-Mail zu versenden.

Unterschiede zwischen Gen1 und Gen2

Microsoft ist bei seiner Data Lake Storage-Lösung ungefähr im Jahr 2018 von Gen1 auf Gen2 übergegangen. Die zweite Generation, die auf dem Azure Blob Storage aufbaut, bringt einige wichtige Veränderungen in der Verarbeitung von Big Data mit sich. Es handelt sich um einen universell einsetzbaren und skalierbaren Objektspeicher, der speziell auf die Big Data-Analyseworkloads optimiert ist. Während Gen1 noch mit Ordnern im Konto arbeitet, in denen die Speicherung der Daten erfolgte, enthält das Speicherkonto nun Container. Die Container haben wir bereits oben in der Beschreibung der Data Lake-Erstellung erwähnt. Die Daten sind in diesen Containern in Form von Blobs gespeichert. Bei Blobs handelt es sich um große binäre Datenobjekte, die in Datenbanken zum Beispiel für Video-, Audio- oder Bilddateien nützlich sind. Die Speicherung in Binärform bietet verschiedene Vorteile für die Datenverarbeitung und -analyse. Blobs finden sich im Big Data-Umfeld sehr häufig. Zu den weiteren wichtigen Konzepten von Gen2 gehören Objektspeicher mit flachem Namespace statt mit einem hierarchischen Dateisystem. Allerdings erlaubt es Gen2, eine hierarchische Verzeichnisstruktur nachzuahmen. Das Umbenennen und Löschen von Verzeichnissen ist mit Gen 2 daher trotzdem ein einzelner atomarer Metadatenvorgang. Gen2 baut konsequent auf dem Blobspeicher auf und bietet einige Verbesserungen. Dazu gehört das einfachere Arbeiten in Verzeichnissen und die Erhöhung der Sicherheit durch die Definition von POSIX-Berechtigungen für einzelne Verzeichnisse und Dateien. Zudem fällt die Leistung höher aus, da hierarchische Namespaces Verzeichnisverwaltungsvorgänge erleichtern. Während bei Gen1 die Entwickler-SDKs auf .Net, Java, Python und Node.js beschränkt waren, kommen mit Gen2 C++, Ruby, PHP, Go, Android und iOS hinzu. Interessant für Unternehmenskunden ist, dass Gen1 regional nicht überall verfügbar war. Mit Gen2 ist der Data Lake Storage nun in allen Azure-Regionen und damit besser verfügbar. Gen2 ist speziell für die Big Data-Analysen in Großunternehmen entwickelt. Wer Enterprise Data Lakes in Azure erstellen möchte, der wählt deshalb ab jetzt einen Gen2 Storage. Insgesamt handelt es sich mit Gen2 um einen wichtigen evolutionären Schritt innerhalb von Data Lake Storage, um die Vorteile der hierarchischen Arbeitsweise aus Gen1 mit den Vorzügen der Blobspeicher zu kombinieren.

Die besonderen Funktionen von Data Lake Storage Gen2 im Überblick

Gen2 bietet eine Reihe von Vorteilen, die einer näheren Betrachtung bedürfen. So ist mit Gen2 ein Hadoop-kompatibler Zugriff möglich. Datenzugriff und Verwaltung sind mit einem Hadoop Distributed File System vergleichbar. Alle Apache Hadoop-Umgebungen, zu denen auch HDInsight und Databricks gehören, verfügen jetzt über den neuen ABFS-Treiber. Damit ist ein Zugriff auf die in Data Lake Storage Gen2 befindlichen Daten möglich. Der ABFS-Treiber ist speziell in Hinblick auf Big Data-Anwendungen optimiert. Es handelt sich um einen dezidierten Azure Storage-Treiber für Hadoop. Denn Hadoop ist die Hauptmethode für den Datenzugriff in Azure Data Lake Storage Gen2. Das ermöglicht vielen Anwendungen den Datenzugriff ohne zusätzlichen Code. Über den Storage-Explorer oder über Frameworks wie Hive und Sparks lassen sich POSIX-Berechtigungen und Zugriffssteuerungslisten verwalten. Das bietet Verbesserungen in Hinblick auf die Sicherheit. Zudem ist Gen2 kosteneffizienter. Die Speicherkapazität und Transaktionen kann Microsoft damit günstiger anbieten. Gen2 ist in hohem Maße skalierbar, speichert Datenmengen im Exabyte-Bereich und erreicht Datendurchsätze, die der Dienst in Gibabit pro Sekunde misst. Zudem erreicht der Service Spitzenwerte bei den Ein-/Ausgabenvorgängen pro Sekunde (IOPS). Die Skalierbarkeit ist auch über die Blobspeicher-Schnittstelle gegeben. Gen2 setzt auf Azure Blob Storage auf und ermöglicht damit Datenanalysen, ohne die Daten vorher verschieben oder transformieren zu müssen. Das bringt wichtige Kostenvorteile mit sich, die andere Cloudspeicherdienste in dieser Form nicht bieten. Da Gen2 auf Blob Storage aufbaut, unterstützt es viele der wichtigen Blob-Storage-Features. Dazu gehören zum Beispiel die Diagnoseprotokollierung, verschiedene Zugriffsebenen oder Metriken in Azure Monitor sowie Richtlinien für die Lebenszyklusverwaltung.

Azure Data Lake Storage für die Big Data-Verarbeitung verwenden

Seine Stärken spielt Azure Data Lake Storage in der Datenverarbeitung besonders großer Datenmengen aus. Der Service ermöglicht die Erfassung der Daten, deren Verarbeitung und Downloads sowie die Visualisierung der Daten. Die Datenerfassung erfolgt entweder in Echtzeit oder in mehreren Schritten (Batches).

Für jede dieser Phasen erhält der Anwender verschiedene Werkzeuge und Optionen für die Umsetzung. Interessant ist, dass der Data Lake Storage Account mit Daten aus unterschiedlichen Quellen umgehen kann.

 

Möglich ist etwa die Erfassung von Ad-hoc-Daten bzw. kleineren Datensätzen, mit denen sich Prototypen für Big Data-Anwendungen entwickeln lassen. Diese Daten können von einem lokalen Computer stammen und lassen sich unter anderem mit Azure PowerShell oder dem Storage-Explorer einlesen. Die Erfassung funktioniert auch mit dem Tool AzCopy. Als weitere Datenquelle kommt ein Azure Storage-Blob infrage.

Die Erfassung von Streamingdaten erfolgt aus Quellen wie Anwendungen, Sensoren oder Geräten. Die Erfassung erfolgt typischerweise in Echtzeit und ist ereignisbezogen. Nach dem Starten eines Fahrzeugs könnten Sensoren zum Beispiel mit dem Scannen der Straße und sonstigen Fahrzeugumgebung beginnen und die Daten in die Cloud senden. Streamingdaten haben heute eine überragende Bedeutung, mit Tools wie Azure Stream Analytics und Azure HDInsight Storm lassen sie sich erfassen.

Zu den weiteren wichtigen Datentypen gehören relationale Daten, deren Erfassung mit Azure Data Factory erfolgt und die Webserverprotokolldaten. Letztere erfasst der Anwender in Data Lake mit Azure Data Factory, Azure CLI bzw. der Azure-Befehlsschnittstelle und mit Azure PowerShell. Alle genannten Tools sind geeignet, um eigene Skripts für das Hochladen dieser Daten zu schreiben, die häufig Verwendung in Big Data-Anwendungen finden.

Quellen
https://docs.microsoft.com/de-de/azure/data-lake-store/data-lake-store-comparison-with-blob-storage
https://docs.microsoft.com/de-de/azure/storage/blobs/data-lake-storage-introduction
https://docs.microsoft.com/de-de/azure/storage/blobs/data-lake-storage-abfs-driver
https://docs.microsoft.com/de-de/azure/storage/blobs/data-lake-storage-data-scenarios
https://en.wikipedia.org/wiki/Azure_Data_Lake
https://de.wikipedia.org/wiki/Data-Lake
https://blog.openbridge.com/how-to-create-data-lake-in-azure-5bce1604c4c8
https://www.bigdata-insider.de/was-ist-ein-blob-a-732626/ 

Comments are closed.