Ein Data Lake (Datensee) ist eine unstrukturierte Ansammlung von Daten, welche meist in Rohdatenformaten gespeichert werden. Data Lakes sind häufig die Speicherlösung für Big Data.

Bei einem Data Lake werden alle Daten aus den Quellsystemen in einem nicht oder kaum veränderten Zustand abgespeichert. Die Aufbereitung der Daten erfolgt erst im Rahmen nachfolgender Analysen oder Visualisierungen. Im Gegensatz dazu werden in einem Data Warehouse nur selektiv Daten aus den Quellsystemen abgerufen, transformiert und strukturiert in einer Datenbank abgespeichert (ETL-Prozess). D.h. ein großer Teil der Datenaufbereitung passiert bereits beim Import der Daten.

Ein Data Lake kann verschiedene Datentypen beinhalten, also strukturierte Daten aus relationalen Datenbanken, halb-strukturierte Daten wie JSON- oder XML-Dateien, unstrukturierte Daten wie Emails oder Dokumente sowie binäre Daten wie Bilder oder Videos.

Vor- und Nachteile von Data Lakes sind umstritten. Der große Vorteil eines Data Lakes ist, dass alle Daten an einem zentralen Ort vorhanden sind und damit die in Data Warehouses vorherrschenden Informationssilos (Data Marts) beendet werden. Zudem besteht eine große Flexibilität, insbesondere bei sich häufig ändernden Rohdaten. Auf der anderen Seite besteht die Gefahr, einen riesigen Datensumpf (Data Swamp) zu erzeugen, in der Hoffnung irgendwann einmal etwas Nützliches damit tun zu können. Besonders wichtig ist in diesem Zusammenhang ein Metadatenkatalog, der bei der Strukturierung hilft.

Mittlerweile gibt es aber auch Mischformen, in denen der Data Lake aus den unstrukturierten Rohdaten sowie einer strukturierten Analyse-Schicht besteht. Die Grenzen zwischen Data Warehousing und Data Lake verschwinden immer mehr, auch klassische relationale Datenbanken bieten z.B. die Speicherung von Blobs oder JSON an.  

 

Realisierung eines Data Lakes

Mittlerweile werden Data Lakes überwiegend in der Cloud angelegt, sie können aber auch on-premise realisiert werden. On-Premise besteht ein Data Lake meist aus einem HDFS (Hadoop Distributed File System), welches die Daten auf mehrere Server verteilt und managt. In der Cloud genügt ein Object Storage, welchen alle größeren Cloudanbieter im Programm haben (Amazon S3, Google Cloud Storage, Azure Data Lake Storage, …) und meistens auch HDFS-kompatibel sind. Hadoop ist aber kein Muss für einen Data Lake.

Der nächste Schritt ist aber, auf die Daten zuzugreifen. Hierfür gibt es eine große Anzahl verschiedener Software, die je nach Anwendung ihre Vor- und Nachteile haben. Eine der bekanntesten ist Apache Spark. Es gibt auch Angebote wie MongoDB Atlas Data Lake, welche ihre Datenbank MongoDB mit S3-Daten mittels einer einheitlichen Abfragesprache verbinden.