Cloud Storage als Data Lake

In diesem Artikel wird erläutert, wie Sie einen Data Lake in Google Cloud verwenden können. 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.

Hier erfahren Sie, wie Sie in Google Cloud einen Data Lake erstellen. Im folgenden Diagramm werden die wichtigsten Phasen einer Data-Lake-Lösung veranschaulicht.

Diagramm: Die wichtigsten Phasen einer Data-Lake-Lösung

In diesem Artikel werden die einzelnen Phasen ausführlich erläutert. Außerdem wird beschrieben, wie Google Cloud dabei helfen kann.

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 Pub/Sub. Die Leistung ist für einen Data Lake ist natürlich entscheidend – aber 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 in Situationen wie z. B. "Lesen nach Schreiben"-Vorgängen, der Auflistung von Buckets und Objekten sowie der 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, Cloud Storage Coldline oder Cloud Storage Archive gespeichert. 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 Google Cloud-Diensten wie BigQuery, Dataproc (Hadoop-Umgebung), Dataflow für serverlose Analysen, Video Intelligence API, Cloud Vision und AI Platform. 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 Google Cloud eine Vielzahl von Anwendungsfällen für die Datenaufnahme unterstützt.

Pub/Sub und 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 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.

Diagramm: Allgemeine Übersicht ü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 Google Cloud Datalab angeboten, ein vollständig verwalteter Jupyter Notebook-Dienst.

Datalab verfügt über eine große Auswahl vorinstallierter gängiger Data-Science-Bibliotheken wie TensorFlow und NumPy. Neben Datalab können Sie die herkömmlichen Hadoop-Tools in Cloud Dataproc und die serverlose Analyse von Dataflow verwenden. Für leistungsstarke SQL-basierte Analysen können Rohdaten mit 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 gängige Analyse-Workflows und wie Sie sie in Google Cloud implementieren können.

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. Dataprep, ein visuelles Tool zum Bereinigen und Vorbereiten von Daten, eignet sich gut für einfache ETL-Jobs. Dataflow mit Apache Beam bietet hingegen zusätzliche Flexibilität für komplexere ETL-Jobs.

Diagramm: Workflow zum Laden von Daten in BigQuery

Batchanalysen

Wenn Sie Produkte der Hadoop-Umgebung für Batchanalysen verwenden möchten, müssen Sie die transformierten Daten an einem separaten Cloud Storage-Speicherort ablegen. Anschließend können Sie 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.

Diagramm: 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 Pub/Sub und 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.

Diagramm: Daten für Echtzeitanalysen in 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.

Diagramm: Daten für maschinelles Lernen orchestrieren

Nicht alle Anwendungsfälle des maschinellen Lernens rechtfertigen die Entwicklung und das Training benutzerdefinierter Modelle. Google Cloud enthält vortrainierte Modelle für die Verarbeitung von Sprach-, Visions-, Video-Intelligence- und natürlichen Sprachdaten. In diesen Fällen übergeben Sie die entsprechenden Eingabedaten wie Audio, Bilder oder Video an den jeweiligen Google Cloud-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.

Diagramm: Vortrainierte maschinelle Lernmodelle verwenden

Weitere Informationen