Data Lake vs Data Warehouse|Damu-Analytics

Im Bereich der Datensammlung und -bereitstellung wird ein Begriff immer häufiger genannt, der Data Lake. Was ist aber dieser Data Lake und worin unterscheidet er sich von einem klassischen Dataware House? Diese Frage möchte ich gerne in diesem Artikel näher beleuchten, da die Technologie zunehmend die Basis von Advanced Analytics und Data Science bildet.

Der Data Lake. Ein großer See von Daten der über große Datenströme mit immer neuen Daten versorgt wird. Diese Metapher passt ziemlich gut. Aber die Frage die sich häufig stellt, ist was für Vorteile gegenüber einem Datawarehouse habe ich und wie ist ein Data Lake eigentlich aufgebaut? Außerdem wissen Unternehmen häufig nicht genau wie diese Datenmengen gewinnbringend eingesetzt werden können. Darum werden wir uns folgendes anschauen

  • Eine kurze Erklärung des Begriffs
  • Aufbau eines Data Lakes
  • Unterschiede eines Data Lakes vs Data Warehouses
  •  Einsatzmöglichkeiten

Also was ist denn nun ein Data Lake? Als ein Data Lake wird eine Plattform bezeichnet, welche es ermöglicht, große Datenmengen zu speichern und zu verwalten. Dabei werden Daten in ihrer Rohform aus den Quellsystemen extrahiert und in den Data Lake geladen. Daten können dabei sowohl strukturierte Datenbanktabellen, flache Dateien oder auch unstrukturierte Daten wie PDF Dokumente, Video, Bilder und Tondateien sein. Dies macht auch gleich einen entscheidenden Vorteil gegenüber einem Data Warehouse aus. Daten müssen nicht transformiert werden um in einem Data Lake abgelegt zu werden. Das macht die Speicherung sehr günstig und ermöglicht es sehr große Datenmengen an einem Ort zu sammeln und dann für bestimmte Anwendungen zu nutzen.

Bei einem Data Lake werden Daten nicht im ETL(Extract-Transform-Load) Verfahren zusammengeführt, sondern in einem ELT(Extract-Load-Transform) Verfahren. Das erfordert auch einen anderen Aufbau des Data Lakes. Die häufigste Methode zur Realisierung eines Data Lakes ist mithilfe eines HDFS ( Hadoop Distributed File System). Dabei werden Daten auf verschiedenen Datenclustern verteilt. Dies ermöglicht auch bei großen Datenmengen einen schnellen Zugriff und entsprechende komplexe Berechnungen.  Außerdem sind HDFS Systeme sehr skalierbar und können mit immer weiter wachsenden Datenmengen gut umgehen. Auf diesem System werden die Daten unstrukturiert abgelegt(Extract & Load). Zusätzlich können für konkrete Anwendungsfälle in einem Data Lake, Analyse Cubes bereitgestellt werden. In diesem Bereich können Analysten die benötigten Daten strukturieren und für die verschiedenen Anwendungen aufbereiten(Transform). Diese aufbereiteten Daten werden dann über unterschiedliche Schnittstellen an die Anwendungen geliefert. Dies kann über klassische Batch Schnittstellen, aber auch über Streaming Schnittstellen realisiert werden, was gerade für Big Data Anwendungen interessant ist.

In der Abbildung kann ein möglicher Aufbau eines Data Lakes nachvollzogen werden.

Wie unterscheidet sich dieser Aufbau nun von einem klassischen Data Warehouse?

Ein klassisches Data Warehouse hat die Aufgabe strukturiert und historisiert große Datenmengen bereitzustellen. Dabei werden die Daten in einem ETL Verfahren aus den Quelldaten extrahiert, transformiert und in das Data Warehouse geladen. Also anders als im Data Lake werden Daten nicht extrahiert, in den Lake geladen und dann in diesem Transformiert sondern bereits vor dem Ladeprozess in das Warehouse werden die Daten transformiert. Ein Data Warehouse kann dementsprechend nur mit bereits vor strukturierten Daten umgehen.

In der Abbildung wird der Unterschied deutlich. Die Daten werden bereits vor dem Speichern im DWH transformiert und ausgewählt. Welche Folgen ergeben sich daraus im praktischen Einsatz?

Der Transformationsprozess ist sehr aufwendig und wenn nun nach dem Inital Load der Daten noch weitere Quellsysteme oder auch nur neue Datentabellen angeschlossen werden sollen, müssen zum einen vor der Speicherung der Daten diese aufbereitet werden. Hinzu kommt, dass die Daten in das bestehende ganzheitliche Datenmodell integriert werden müssen. Das macht die Anpassung der Daten in einem DWH insgesamt sehr aufwendig und damit auch teuer. Ein Data Lake speichert alle Daten so wie sie aus den Quellsystemen kommen direkt ab. Es erfolgt keine Transformation oder Vorauswahl. Dadurch können für einzelne Anwendungsfälle relativ leicht neue Quellsysteme angeschlossen werden. Diese müssen allerdings ordentlich dokumentiert werden. Die Transformation erfolgt dann für die jeweiligen Anwendungsbereiche direkt im Data Lake und es muss kein übergreifendes Datenmodell erstellt werden wie im DWH. Der Transformationsprozess wird dadurch einfacher gestaltet und auch näher an die Fachseite gebracht, da diese direkt die Ergebnisse in ihren Tools prüfen können.

Was für Möglichkeiten bietet so ein Data Lake nun im Einsatz?

Ein Data Lake bietet viele Einsatzmöglichkeiten. Gerade durch den Einsatz von Big Data Technologien, wie Streaming von Daten, können Echtzeit Anwendungen betrieben werden. Dadurch können Sensorendaten mit kurzer Latenz abgefragt ausgewertet mit weiteren Daten vermengt und an andere Anwendungen verteilt werden. Weniger Echtzeit Relevant aber ähnliches Prinzip ist die Bereitstellung von Informationen zu bestimmten Auftragsfällen über verschiedene Systeme hinweg. In Großen Konzernen werden häufig Aufträge über mehrere Konzerneinheiten und IT-Systeme hinweg bearbeitet. Relevante Informationen die an einer Stelle gebraucht werden, werden an anderer Stelle erzeugt, aber nicht geteilt. Ein Data Lake kann hier diese Informationen sammeln, konsolidieren und entweder direkt an die Systeme verteilen oder über Applikationen bereitstellen.

Auch ist ein Data Lake wesentlich leichter mit Informationen zu erweitern. Überall wo nicht alle notwendigen Daten bereits bekannt sind eignet sich entsprechend ein Data Lake wesentlich besser als ein DWH. Auch in einem sich veränderndem Umfeld kann ein Data Lake entsprechende Vorteile bieten.

Auch Reportings und Auftragssteuerungsfunktionen können mit Data Lakes realisiert werden. Allerdings überall wo konsistente und historisierte Daten benötigt werden eignen sich klassische Data Warehouses besser.

So ich hoffe ich konnte einen Überblick über den Begriff eines Data Lakes geben und im Vergleich zu einem Datawarehouse ein bisschen den Begriff einordnen. Wenn ihr Fragen habt könnt ihr diese gerne stellen und ich bemühe mich darum diese zu beantworten. 🙂