Im Jahr 2011 prägte James Dixon, damals CTO des Business-Intelligence-Unternehmens Pentaho, den Begriff Data Lake. Er beschrieb den Data Lake als Gegenstück zu den damals beliebten, siloartigen Data Marts:
Seit diesem Statement haben sich Data Lakes entscheidend weiterentwickelt und konkurrieren mit Data Warehouses, wenn es um Big Data Storage und Analytics geht. Diverse Tools unterstützen schnellere SQL-Abfragen in Data Lakes, und alle großen Cloud-Anbieter haben inzwischen Data-Lake-Lösungen im Portfolio. Mit dem Data Lakehouse gibt es sogar ein Zwitter-Konzept, das Governance, Security und Analytics mit erschwinglichem Storage kombiniert.
Data Lake - Definition
Ein Data Lake ist im Wesentlichen ein singulärer Speicher, in dem alle Daten abgelegt werden, um sie für die Analyse bereitzustellen. Manchmal beherbergt ein Data Lake auch nur solche Daten, die nicht in ein Data Warehouse passen. Gespeichert werden sie für gewöhnlich in ihrem nativen Dateiformat. Allerdings können sie auch umgewandelt und vereinheitlicht werden, um effizientere Analysen zu ermöglichen. Die Zielsetzung eines Data Lake ist es, geschäftlichen (oder sonstigen analytischen) Nutzen aus Daten zu ermöglichen. Data Lakes können folgende Arten von Daten beinhalten:
binäre Daten (wie Bilder und Videos),
unstrukturierte Daten (wie PDF-Dokumente),
halbstrukturierte Daten (wie CSV- und JSON-Dateien) sowie
strukturierte Daten (in der Regel aus relationalen Datenbanken).
Strukturierte Daten sind für die Analyse nützlicher, wobei sich halbstrukturierte Daten leicht in eine strukturierte Form bringen lassen. Unstrukturierte Daten können in vielen Fällen durch intelligente Automatisierung in strukturierte Daten verwandelt werden.
Data Lake vs. Data Warehouse vs. Data Mart
Die Frage ist nicht, ob Sie einen Data Lake oder ein Data Warehouse brauchen. Höchstwahrscheinlich brauchen Sie beides, aber für unterschiedliche Zwecke. Es ist auch möglich, Data Lake und Data Warehouse zu kombinieren. Betrachten wir zunächst die Hauptunterschiede zwischen Data Lakes und Data Warehouses:
Datenquellen: Typische Datenquellen für Data Lakes sind Protokolldateien, Click-Stream-Daten, Social-Media-Posts und Daten internetfähiger Devices. Data Warehouses speichern in der Regel Daten, die aus Transaktionsdatenbanken, Line-of-Business-Anwendungen und operativen Datenbanken zu Analysezwecken extrahiert wurden.
Schema-Strategie: Das Datenbankschema für Data Lakes wird in der Regel zum Zeitpunkt der Analyse angewandt, was als "Schema-on-read" bezeichnet wird. Das Datenbankschema für Enterprise Data Warehouses wird in der Regel vor der Erstellung des Data Store entworfen und beim Import auf die Daten angewendet. Das bezeichnet man als "Schema-on-write".
Storage-Infrastruktur: Data Warehouses verfügen oft in rauen Mengen über teuren Arbeitsspeicher und SSD-Festplatten, um schnelle Suchabfragen zu ermöglichen. Data Lakes verwenden hingegen oft billige, herkömmliche Festplatten auf Clustern von Standardcomputern. Sowohl Data Warehouses als auch Data Lakes setzen auf MPP (Massively Parallel Processing), um SQL-Abfragen zu beschleunigen.
Rohdaten vs. kuratierte Daten: Die Daten in einem Data Warehouse sollen so kuratiert werden, dass dieses als "single source of truth" für das Unternehmen behandelt werden kann. Informationen in einem Data Lake können kuratiert sein, müssen es aber nicht: Data Lakes beginnen in der Regel mit Rohdaten, die später für die Analyse gefiltert und umgewandelt werden.
User: Data-Warehouse-Benutzer sind in der Regel Business-Analysten. Data-Lake-Benutzer sind in der Regel Data Scientists oder Data Engineers. Business-Analysten erhalten Zugang zu den Daten, sobald diese kuratiert sind.
Analytics-Form: Typische Analysen für Data Warehouses umfassen Business Intelligence, Batch-Reporting und Visualisierungen. Im Fall von Data Lakes sind Machine Learning, Predictive Analytics, Data Discovery und Data Profiling typisch.
Data Marts sind hingegen Analysedatenbanken, die sich auf die Daten einer Abteilung oder eines Geschäftsbereichs beschränken. Das steht im Gegensatz zu Data Warehouses, die alle relationalen Daten eines Unternehmens in einer analysefähigen Form zusammenfassen. Data Marts bieten effiziente Analysemöglichkeiten, da sie nur Daten enthalten, die für die jeweilige Abteilung relevant sind. Als solche sind sie von Natur aus siloartig aufgebaut. Das macht sich in der Praxis ungünstig bemerkbar: Es gibt immer einen Vorgesetzten, der Reportings benötigt, die auf kombinierten Daten aus mehreren Geschäftsbereichen basieren. Das ist ein Grund, warum es derzeit viele Data Lakes und Data Warehouses, aber nur wenige Data Marts gibt.
Data Lakes - schnellere SQL-Abfragen
Wenn Sie Rohdaten in einem Data Lake speichern, sind die Daten für Geschäftsanalysten möglicherweise unbrauchbar, bis sie von einem Data Engineer oder Data Scientist verarbeitet wurden. Zusätzlich zu Filterungs- und Datentransformations-Features benötigen Data Lakes auch Datenkataloge, Datensicherheit und Schemadefinitionen. Fehlen diese Funktionen handelt es sich um einen sogenannten Data Swamp (Datensumpf).
Glücklicherweise unterstützt eine ganze Reihe von Tools Sie dabei, die Daten in Ihrem Data Lake zu filtern und zu organisieren. Beispielsweise können Sie den Bedarf für ein Schema decken, indem Sie einen Hive-Metastore im ORC-Format erstellen. Sobald dieser eingerichtet ist, unterstützt er schnelle SQL-Abfragen über eine MPP-SQL-Engine wie Presto. Das ORC-Format (Optimized Row Columnar) ist ein komprimierter Columnar-Speicher, der für Hive optimiert ist und gut mit Presto funktioniert.
Apache Spark ist eine weitere, MPP-SQL-Engine. Sie kann zwar mit dem ORC-Format arbeiten, funktioniert aber noch besser mit Parquet, einem anderen Columnar-Speicher. Spark kann Parquet-Dateien sowohl vertikal als auch horizontal partitionieren und so einen Abfrageplan erstellen, der vorsieht, nur relevante Daten zu lesen und irrelevante zu überspringen.
Data Lakehouse - Definition
Databricks, das Unternehmen hinter Spark und MLflow, bietet ein sogenanntes Data Lakehouse an. Laut dem Anbieter werden hierbei die besten Eigenschaften von Data Warehouses und Data Lakes kombiniert:
"Die Lakehouse-Plattform kombiniert die besten Elemente von Data Lakes und Data Warehouses, um die Zuverlässigkeit, starke Governance und Leistung von Data Warehouses mit der Offenheit, Flexibilität und Unterstützung für Machine Learning von Data Lakes zu verbinden. Die Plattform fußt auf Open Source und offenen Standards und bietet so eine hohe Flexibilität. Der übergreifende Ansatz für Datenmanagement, Sicherheit und Governance hilft Anwendern, effizient zu arbeiten und Innovationen schnell voranzutreiben", behauptet Databricks auf seiner Webseite.
Das Herzstück des Data Lakehouse bildet Delta Lake, das von Databricks als Open Source freigegeben wurde. Die Lakehouse-Plattform umfasst auch den Unity Catalog, der granulare Governance-Funktionen für Daten und KI beinhaltet. Laut Databricks bietet sein Data Lakehouse im Vergleich zu einem Data Warehouse ein besseres Preis-Leistungs-Verhältnis.
Data Lakes - On-Premises und aus der Public Cloud
In der Vergangenheit wurden Data Lakes on-Premises mit Apache-Hadoop-Clustern auf handelsüblichen Computern und dem Hadoop Distributed File System (HDFS) implementiert. Entsprechend waren Hadoop-Cluster für Cloudera, Hortonworks und andere Unternehmen einst ein großes Geschäft. Im Jahr 2018 fusionierten Cloudera und Hortonworks, was Rückschlüsse über die Richtung zulässt, in die sich dieser Markt bewegt.
Maßgeblich zu dieser Entwicklung beigetragen hat die Cloud - und insbesondere die Hyperscaler Amazon Web Service (AWS), Microsoft (Azure) und Google Cloud (GCP). Alle drei bieten inzwischen Data-Lake-Produkte an:
Amazon Simple Storage Service (Amazon S3)
Amazon EMR (früher Amazon Elastic MapReduce),
Azure Data Lake Store (ADLS) und
Google Cloud Storage (GCS).
Auch Services für Data Ingestion, Datenverarbeitung, Analytics und Machine Learning gehören zum Portfolio der großen Drei. Dabei ist es wesentlich einfacher und schneller, Cloud Data Lakes zu erstellen, zu managen und zu skalieren, als Hadoop-Cluster im eigenen Rechenzentrum zu verwalten. Der Nachteil der Cloud-Lösungen: Die langfristigen Betriebsausgaben werden sich irgendwann massiv summieren.
Data Lakes - Analytics- und Machine-Learning-Tools
Obwohl essenziell und oft der erste Schritt in Sachen Data Lake, ist SQL nur eine Möglichkeit, um Daten zu analysieren. An dieser Stelle sollten auch Business-Intellligence- und Deep-Learning-Tools in Betracht gezogen werden. Die Hyperscaler verfügen wiederum über eigene Analytics- und Machine-Learning-Tools, die mit den jeweiligen Data Lakes verbunden sind:
Amazon Athena verwendet Presto und Hive, um SQL-Abfragen auf Daten in Amazon S3 vorzunehmen.
Amazon EMR ist eine Cloud-Big-Data-Plattform für umfangreiche, verteilte Datenverarbeitungsaufträge, interaktive SQL-Abfragen und Machine-Learning-Applikationen - unter Verwendung von quelloffenen Analyse-Frameworks wie Apache Spark, Apache Hive und Presto.
Amazon SageMaker ist ein Managed Service, um Machine-Learning-Modelle zu erstellen, zu trainieren und bereitzustellen.
Azure Data Lake Analytics (ADLA) ist ein älterer On-Demand-Analytics-Dienst (Serverless), der Big Data vereinfacht und U-SQL nutzt. ADLA wird durch Azure Synapse Analytics ersetzt. Dieser Analyse-Service führt Datenintegration, Enterprise Data Warehousing und Big-Data-Analysen zusammen. Daten und Code aus ADLA und Data Warehouses lassen sich automatisch migrieren. Zusätzlich ist Synapse tief mit Azure Machine Learning, Azure Cognitive Services und Power BI integriert.
Google Cloud Storage bietet eine native Integration mit einer Reihe von leistungsstarken Google-Cloud-Diensten wie BigQuery (ein Data Warehouse), Dataproc (Hadoop-Ökosystem), Dataflow (Serverless Streaming Analytics), Video Intelligence API, Cloud Vision API und KI-Plattform.
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Network World.