Cloud Storage als Data Lake

In diesem Artikel wird erläutert, wie ein Data Lake auf der Google Cloud Platform verwendet wird. Ein Data Lake bietet Unternehmen wie Ihrem die Flexibilität, jeden Aspekt der Geschäftsvorgänge in Datenform zu erfassen. Im Laufe der Zeit können sich auf diese Weise Daten im Petabyte- oder sogar Exabytebereich ansammeln. Angesichts der Trennung von Speicher und Computing ist es jedoch heute wirtschaftlicher denn je, alle diese Daten aufzubewahren.

Nachdem Sie die Daten erfasst und gespeichert haben, können Sie verschiedene Verarbeitungsmethoden anwenden, um daraus Erkenntnisse zu gewinnen. Data Warehouses sind der Standardansatz für die Geschäftsanalyse. Allerdings erfordert dieser Ansatz sehr starre Schemata für bekannte Datentypen wie Aufträge, Auftragsdetails und Bestandsdaten. Analysen, die ausschließlich auf herkömmlichen Data-Warehousing-Prozessen basieren, erschweren die Verarbeitung von Daten, die keinem klar definierten Schema entsprechen, da diese Daten oft verworfen werden und damit für immer verloren gehen.

Der Umstieg von einem Data Warehouse zu einem Data Lake, in dem alle Daten gespeichert werden, ist nur dann sinnvoll, wenn Sie aus den ganzen Daten weiterhin Informationen gewinnen können. Data Scientists, Entwickler und Analysten wollen häufig selbst ausgewählte Analysetools verwenden, um Daten aus dem Data Lake zu verarbeiten und zu analysieren. Außerdem muss der Data Lake die Aufnahme großer Datenmengen aus mehreren Datenquellen unterstützen.

In Anbetracht dieser Erwägungen möchten wir Ihnen zeigen, wie Sie in der GCP einen Data Lake erstellen. In der folgenden Abbildung werden die wichtigsten Phasen einer Data-Lake-Lösung veranschaulicht.

Die wichtigsten Phasen einer Data-Lake-Lösung

In diesem Artikel wird ausführlich auf die einzelnen Phasen eingegangen. Dabei werden die Vorteile der GCP hervorgehoben.

Speicher: Cloud Storage als Data Lake

Cloud Storage ist aus vielen Gründen für den Einsatz als zentrales Speicher-Repository geeignet.

Leistung und Langlebigkeit: Mit Cloud Storage können Sie mit ein paar kleinen Dateien starten und Ihren Data Lake auf Exabytegröße erweitern. Cloud Storage unterstützt die Aufnahme großer Datenmengen und die Nutzung großer Mengen gespeicherter Daten in Kombination mit anderen Diensten wie Cloud Pub/Sub. Obwohl die Leistung für einen Data Lake entscheidend ist – Langlebigkeit ist noch wichtiger. Cloud Storage ist auf eine jährliche Langlebigkeit von 99,999999999 % ausgelegt.

Strikte Konsistenz: Eine wichtige Eigenschaft, die Cloud Storage von vielen anderen Objektspeichern unterscheidet, ist die Unterstützung für strikte Konsistenz bei "Lesen nach Schreiben"-Vorgängen, bei Auflistung von Buckets und Objekten sowie bei Erteilung von Zugriff auf Ressourcen. Ohne diese Konsistenz müssen komplexe, zeitraubende Umgehungslösungen implementiert werden, um zu bestimmen, wann Daten für die Verarbeitung bereit sind.

Kosteneffizienz: Cloud Storage bietet eine Reihe von Speicherklassen zu verschiedenen Preisen, um unterschiedlichen Zugriffsmustern und Verfügbarkeitsanforderungen gerecht zu werden und die notwendige Flexibilität zu bieten, einen Ausgleich zwischen Kosten und Häufigkeit des Datenzugriffs zu finden. Mithilfe einer konsistenten API können Sie ohne Leistungsabstriche auf Daten aus diesen verschiedenen Speicherklassen zugreifen. Selten genutzte Daten können z. B. mit einer Lebenszyklusrichtlinie in den Klassen Cloud Storage Nearline oder Cloud Storage Coldline archiviert werden. Sie können dann später mit einer Latenz von unter einer Sekunde darauf zugreifen, z. B. um Trainingsdaten für maschinelles Lernen zu erfassen.

Flexible Verarbeitung: Cloud Storage bietet native Integration mit einer Reihe von leistungsstarken GCP-Diensten wie BigQuery, Cloud Dataproc (Hadoop-Umgebung), Cloud Dataflow für serverlose Analysen, Cloud Video Intelligence API, Cloud Vision und AI Plattform. So können Sie das richtige Tool zum Analysieren Ihrer Daten flexibel auswählen.

Zentrales Repository: Cloud Storage bietet einen zentralen Speicherort, der Teams und Abteilungen den Zugriff auf Daten ermöglicht und dafür sorgt, dass Datensilos und die damit verbundene Synchronisierung vermieden werden.

Sicherheit: Data Lakes sind dafür konzipiert, alle Arten von Daten zu speichern. Deshalb erwarten Unternehmen starke Zugriffskontrollfunktionen, damit ihre Daten nicht in die falschen Hände geraten. Cloud Storage bietet eine Reihe von Mechanismen zur Implementierung einer fein abgestimmten Zugriffssteuerung für Ihre Datenressourcen.

Datenaufnahme

Eine Data-Lake-Architektur muss die Möglichkeit bieten, unterschiedliche Datenmengen aus verschiedenen Quellen aufzunehmen, einschließlich IoT-Sensoren, Clickstream-Aktivitäten auf Websites, Daten aus der Onlinetransaktionsverarbeitung (OLTP) und Daten aus lokalen Systemen. In diesem Abschnitt erfahren Sie, wie die GCP eine Vielzahl von Anwendungsfällen für die Datenaufnahme unterstützt.

Cloud Pub/Sub und Cloud Dataflow: Hiermit können Sie Echtzeitdaten direkt in Cloud Storage aufnehmen und speichern und je nach Datenvolumen horizontal skalieren.

Storage Transfer Service: Das Verschieben großer Datenmengen ist in der Regel eine Aufgabe, die mehr als einen simplen Befehl erfordert. Sie müssen sich mit Problemen wie der Planung regelmäßiger Datenübertragungen, der Synchronisierung von Dateien zwischen Quelle und Senke oder der selektiven filterbasierten Verschiebung von Dateien befassen. Storage Transfer Service bietet einen zuverlässigen Mechanismus, mit dem diese Aufgaben bewältigt werden können.

gsutil: Für einmalige oder manuell initiierte Übertragungen können Sie das Open-Source-Befehlszeilentool "gsutil" verwenden, das für Windows, Linux und Mac verfügbar ist. Es unterstützt Multi-Thread-Übertragungen, Übertragungen verarbeiteter Daten, parallele zusammengesetzte Uploads, Wiederholungsversuche und die Wiederaufnahme von unterbrochenen Übertragungen.

Transfer Appliance: Wenn Sie große Datenmengen zur Analyse in die Cloud migrieren möchten, kann es je nach Netzwerkbandbreite weniger zeitaufwendig sein, die Migration mithilfe der Transfer Appliance offline durchzuführen.

Sehen Sie sich eine detailliertere Übersicht der Datenaufnahmeoptionen und die wichtigsten Entscheidungskriterien an, die es bei der Auswahl einer Option zu beachten gilt.

Verarbeitung und Analyse

Nachdem Sie Daten aufgenommen und gespeichert haben, müssen sie zur Analyse bereitgestellt werden. In manchen Fällen können Sie Daten sofort nach der Aufnahme in einem bekannten Schema speichern. Dadurch werden direkte Abfragen erleichtert. Wenn Sie eingehende Daten z. B. im Avro-Format in Cloud Storage speichern, haben Sie danach folgende Möglichkeiten:

  • Hive in Cloud Dataproc verwenden, um SQL-Abfragen für die Daten auszuführen
  • Abfragen für die Daten aus BigQuery direkt ausführen
  • Daten in BigQuery laden und dann Abfragen ausführen

Sie können Daten jedoch nicht immer gleich bei der Aufnahme und Speicherung einem allgemein bekannten Schema zuordnen. Der Hauptgrund für den Einsatz eines Data Lake anstelle eines Data Warehouse besteht schließlich darin, alle Daten erst einmal zu speichern, um später Erkenntnisse daraus zu gewinnen. Je nach Art der Rohdaten und der Art der verwendeten Analysen kann sich der Workflow in einem Bereich zwischen einfach und komplex bewegen. Das folgende Diagramm bietet eine allgemeine Übersicht.

Allgemeiner Überblick über den Data-Lake-Workflow

Data Mining und Exploration

Da ein großer Teil der im Data Lake gespeicherten Daten nicht zur sofortigen Verwendung bereit ist, müssen Sie erst den verborgenen Wert dieser Daten zutage fördern. Jupyter Notebook ist ein beliebtes Tool zur Untersuchung von Rohdaten. Deshalb wird in der GCP Cloud Datalab angeboten, ein vollständig verwalteter Jupyter Notebook-Dienst.

Cloud Datalab verfügt über eine große Auswahl vorinstallierter gängiger Data-Science-Bibliotheken wie TensorFlow und NumPy. Neben Cloud Datalab können Sie die herkömmlichen Hadoop-Tools in Cloud Dataproc und die serverlose Analyse von Cloud Dataflow verwenden. Für leistungsstarke SQL-basierte Analysen können Rohdaten mit Cloud Dataprep by Trifacta transformiert und in BigQuery geladen werden.

Wenn Sie das Analysepotenzial einer Teilmenge von Rohdaten im Data Lake erfasst haben, können Sie diese Teilmenge einer breiteren Zielgruppe zugänglich machen.

Workflows entwickeln und implementieren

Wenn Sie eine Teilmenge von Daten allgemein verfügbar machen möchten, müssen Sie fokussierte Data-Marts erstellen, wie im vorherigen Diagramm gezeigt. Mit orchestrierten Daten-Pipelines können diese Data-Marts auf dem neuesten Stand gehalten werden. Dazu werden Rohdaten verarbeitet und in ein Format umgewandelt, das von nachgelagerten Prozessen und Nutzern verwertet werden kann. Diese Pipelines variieren je nach Art der Daten und der Art der ausgeführten Analysen. Im Folgenden finden Sie einige allgemeine Analyse-Workflows und Informationen zu ihrer Implementierung in der GCP.

Rohdaten transformieren und in BigQuery laden

In dem einfachen, aber häufig genutzten Workflow, der im folgenden Diagramm veranschaulicht wird, verwenden Sie einen ETL-Prozess (Extract, Transform and Load), um Daten in ein BigQuery Data Warehouse einzulesen. Anschließend können Sie die Daten mit SQL abfragen. Cloud Dataprep, ein visuelles Tool zum Bereinigen und Vorbereiten von Daten, eignet sich gut für einfache ETL-Jobs. Cloud Dataflow mit Apache Beam bietet hingegen zusätzliche Flexibilität für komplexere ETL-Jobs.

Workflow zum Laden von Daten in BigQuery

Batch-Analyse

Wenn Sie Produkte der Hadoop-Umgebung für die Batch-Analyse verwenden möchten, müssen Sie die transformierten Daten an einem separaten Cloud Storage-Speicherort ablegen. Anschließend können Sie Cloud Dataproc verwenden, um mit Spark, Spark SQL, SQL on Hive und ähnlichen Tools Abfragen für diese Daten auszuführen. Apache Avro, Apache Parquet und Apache ORC sind beliebte Formate für diese bearbeiteten Daten. Der Workflow wird im folgenden Diagramm zusammengefasst.

Hadoop-Produkte für die Batch-Analyse verwenden

Echtzeitanalysen

Wenn Sie eine einfache SQL-basierte Pipeline verwenden möchten, können Sie die Streamverarbeitung in BigQuery nutzen, um Daten während der Aufnahme abzufragen. Durch die Ergänzung von Cloud Pub/Sub und Cloud Dataflow mit Beam erhalten Sie komplexere Streamverarbeitungsfunktionen, sodass Ihre Nutzer z. B. Aggregationen, Windowing und Filter anwenden können, bevor sie Daten in BigQuery speichern. Für die Zeitachsenanalyse können Sie aufgenommene Daten in Cloud Bigtable speichern, um eine schnelle Analyse zu ermöglichen. Das folgende Diagramm veranschaulicht den Workflow.

Daten für Echtzeitanalysen in Cloud Bigtable speichern

Maschinelles Lernen

Die große Datenmenge in einem Data Lake bietet einen enormen Nutzen für maschinelles Lernen. Nachdem Sie nützliche Trainingsdaten, die zugehörigen Schritte zur Datenvorbereitung und die Architektur des maschinellen Lernnetzwerks ermittelt haben, können Sie diese Schritte orchestrieren, wie in der folgenden Abbildung gezeigt. Mit AI Platform können Modelle auf einfache Weise verbessert und anschließend für Batch- und Onlinevorhersagen eingesetzt werden.

Daten für maschinelles Lernen orchestrieren

Nicht alle Anwendungsfälle des maschinellen Lernens rechtfertigen die Entwicklung und das Training benutzerdefinierter Modelle. Die GCP enthält vortrainierte Modelle für die Verarbeitung von Sprach-, visuellen Erfassungs-, Video- und natürlichen Sprachdaten. In diesen Fällen übergeben Sie die entsprechenden Eingabedaten wie Audio, Bilder oder Video an den jeweiligen GCP-Dienst. Dann extrahieren Sie wertvolle Metadaten und speichern sie zur Durchführung weiterer Abfragen und Analysen in einem Dienst wie BigQuery. Das folgende Diagramm veranschaulicht diesen Ablauf:

Vortrainierte maschinelle Lernmodelle verwenden

Nächste Schritte