Zum Inhalt springen

Data Lakes - was genau ist das?


Kickflip

Empfohlene Beiträge

Hi,

 

ich habe einige Artikel über DL gelesen und verstehe auch den funktionalen Unterschied zu DWHs, doch so richtig greifbar ist das Thema DL immer noch nicht. Ich frage mich konkret:

 

  1. Wie sieht denn ein Data Lake hardwaretechnisch aus? Ist das ein separates Cluster aus Servern oder sind die Server mit den Datenbanken, Fileablagen oder sogar ein DWH teil des Clusters? 
  2. Was ist denn mit der Software? Ich habe oft was von Hadoop gelesen? Wie darf ich mir das vorstellen? 
  3. Wie werden denn die Daten im DL abgelegt? Also eine relationale Datenbank kann ich mir vorstellen. Aber wie ist das im DL?

 

LG und herzlichen Dank für jede Antwort. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb allesweg:

Und die haben sich womit beschäftigt, wenn nicht genau mit den von dir gestellten Fragen?

Ich helfe dir etwas weiter.

naja, eher so oberflächlich. Data Lake ist alles unstrukturiert und man erstellt die Struktur erst beim auslesen der Daten. Im DWH ist die Struktur vorab bekannt bzw wird durch den ETL Prozess definiert. DL sind besser für ML, weil sie Rohdaten enthalten und nichts voraggregiert ist. Und man muss aufpassen, dass ein DL nicht verkommt... 

 

Habe alle deine Vorschläge gelesen und nichts beantwortet mir konkret meine Fragen. Es wird immer sehr Abstrakt erklärt und überhaupt nicht konkret. Was heißt denn beispielsweise: "Die Daten können und unstrukturiert vorhanden sein". Ja wo denn vorhanden? Im Explorer auf einer Festplatte oder wie? Und was ist die Festplatte? Ein Server im Cluster? Und wie greift man auf diese Festplatte zu? Über die Software? SQL?  

Bearbeitet von Kickflip
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 52 Minuten schrieb Kickflip:

Habe alle deine Vorschläge gelesen und nichts beantwortet mir konkret meine Fragen. Es wird immer sehr Abstrakt erklärt und überhaupt nicht konkret. Was heißt denn beispielsweise: "Die Daten können und unstrukturiert vorhanden sein". Ja wo denn vorhanden? Im Explorer auf einer Festplatte oder wie? Und was ist die Festplatte? Ein Server im Cluster? Und wie greift man auf diese Festplatte zu? Über die Software? SQL?  

Okay, dann nehmen wir mal ein Beispiel aus der Praxis. Man stelle sich vor, jemand besitzt eine Kette von Geschäften. In jedem Geschäft steht eine Menge von Registrierkassen. Der Handel öffnet morgens pünktlich um 8 und schließt um 20.00 Uhr. Danach kommt ein "Kassenabschluss". Geld muss gezählt werden, Bestandsbewegungen erfasst werden und schließlich will der Unternehmer wissen, ob er in der Summe seiner Geschäfte unter dem Strich etwas verdient hat oder eher nicht.

Dann müssen ja jetzt wohl noch ein paar Auswertungen gefahren und konsolidiert werden. Heißt, man beginnt damit alle Kassenumsätze eines Marktes zu aggregieren (Summe). Danach muss man alle Kassenumsätze aller Märkte zusammenrechnen (Summe). Jetzt muss man natürlich noch irgendwo wissen, was der ganze Spaß gekostet hat (Wareneinsatz, Kalkulation, Kosten usw.). Darauf basierend kann man dann einen Forecast entwickeln und rechnen, ob man morgen das Geschäft so wie gestern noch weiter führt, oder lieber gleich die Pforten schließt, weil irgendwo (Kosten) irgendwas (Kalkulation) fürchterlich schief gelaufen ist.

Ich würde immer versuchen, mir die Praxis vorzustellen und dann sind Modelle auch weniger theoretisch. Das kann man auch im Kleinen durchspielen. Stelle Dir vor, Du hast einen Kiosk oder nehme Deinen persönlichen Haushaltsplan. Versuche die Daten aufzubereiten und einen Forecast zu erstellen (ob das Einkommen auch reicht, um die Rechnungen von Morgen zu bezahlen). Dann bist Du beim Verständnis einen wesentlichen Schritt weiter.

Bei der Aufstellung einer "dynamischen" Finanzplanung kommst Du automatisch mit den entsprechenden Tools + Verfahren in Berührung.

Wenn Du Deine Ausgaben nur auf einen Zettel schreibst und am Ende des Monats merkst, uups, Zahlungen von morgen die fällig sind, sind nicht berücksichtig, weil die dynamische Komponente vielleicht gefehlt hat bei der Planung.

Um jetzt zu dem Lake zu kommen. Genau das ist es, was moderne ERP Systeme (Warenwirtschaft) versuchen. Man schafft einen "Pool" von Daten, um möglichst zeitnah alle diese Dinge (Auswertungen) unter einen Hut zu bekommen und "Live" darauf zugreifen zu können.

Während man bei einem Datawarehouse (DL) die Daten ex Post analysiert, also erst im Nachhinein oder später, versucht man dies im DL - Live. Denn der Unternehmer will ja möglichst schnell wissen, ob er die Reißleine ziehen muss bei einem Geschäft oder nicht oder ob das Geschäft noch mit Korrekturen möglich ist. 

Man denke hier an den Zusammenbruch von Lieferketten, z.B. durch Wegfall von wichtigen Zulieferern in der Corona-Krise. Es geht um eine möglichst lückenlose Echtzeitdatenerfassung.

Bearbeitet von tkreutz2
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb tkreutz2:

Um jetzt zu dem Lake zu kommen. Genau das ist es, was moderne ERP Systeme (Warenwirtschaft) versuchen. Man schafft einen "Pool" von Daten, um möglichst zeitnah alle diese Dinge (Auswertungen) unter einen Hut zu bekommen und "Live" darauf zugreifen zu können.

Nur hat das überhaupt nichts mit Data Lake zu tun. Ob man nun Live oder in fünf Tagen die Daten hat, spielt für den Data Lake überhaupt keine Rolle. Auch dein Beispielt mit "einer Kette von Geschäften" hat überhaupt nichts mit Data Lake zu tun. Auch ein DWH kann Echtzeit-Daten besitzen. Es kommt auf die Implementierung des DWHs an. z.B. ob es in Intervallen über ein ETL gefüttert wird oder ereignisbasiert Daten empfängt.

Der Unterschied zwischen DWH und Data Lake (DL) liegt in ihrer Gleichheit. Während ein DWH meist aus mehreren hetereogen Datenquellen in ein homogenes zusammengeführt wird, besteht ein Data Lake aus mehreren hetereogen Datenquellen. Das können Daten unterschiedlicher Art sein. z.B. ein Stream mit Sensordaten, (SQL-)Datenbanken, Dateien z.B. XML, CSV, JSON, Word, Excel, PDF. Es auch können Video- oder Audioquellen sein, usw.

Ein Kassenabschluss, Bestandsbewegungen oder sonstige Geschäftsauswertungen, wie oben beschrieben, lassen ich auch über ein DWH ermitteln. Der Hintergrund vom Data Lake ist nicht, dass man Geschäftsprozesse abwickelt, wie z.B. ein Kassenabschluss, sondern dass man die Daten analysieren und kombinieren kann und sich daraus neue Informationen bilden, die man wiederum mit anderen Daten kombinieren kann. Beispiel: Ich bleib bei einem Geschäft und möchte wissen, welche Bevölkerungsschicht bei mir einkauft und welche Waren sie kaufen, um so meine Angebote gezielt auszurichten. Da ich nicht für jeden Kunden einen Datensatz im DWH speichern möchte, speichere die Rohdaten des Kassensystems und frage die Kunden nach der PLZ. Es gibt dann vielleicht noch eine CSV-Datei mit Regionen und deren Durschnittseinkommen. Ich habe also drei Quellsysteme:

  • Roh-Daten des Kassensystem (Bondaten und Bon-ID)
  • PLZ zu jedem Bon, die der Kasserer/die Kassererin manuell eintippt
  • PLZ und deren Durchschnittseinkommen

Die Daten kann ich in einem Data Lake speichern und verarbeiten. Mit Hilfe der PLZ und deren Durchschnittseinkommen, könnte ich die Bons dann in die Bevölkerungsschichten gruppieren und könnte anfangen, die Waren der Bevölkerungsschichten zu gruppieren. Vielleicht finde ich auch heraus, dass Menschen aus einem bestimmten Ort bei mir gar nicht einkaufen. Dann lohnt sich dort auch keine Werbung. Oder finde heraus, dass 4-lagiges Toilettenpapier überwiegend von der Mittelschicht gekauft werden und nicht, wie angenommen von der Oberschicht. Oder ich kombiniere noch die Uhrzeiten und kann sehen, wann die Stoßzeiten sind und wann welche Schicht bei mir einkauft. So ist z.B. schon heute in vielen Geschäften die Beschallungsmusik von der Tageszeit abhängig, da man herausfand, dass bestimmte Bevölkerungsschichten zu bestimmten Uhrzeiten einkaufen. z.B. Jugendliche um 14 Uhr. Als wird um 14 Uhr überwiegend Pop-Musik gespielt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 6 Minuten schrieb Whiz-zarD:

Nur hat das überhaupt nichts mit Data Lake zu tun. 

Das ist absolut richtig. Und somit hat mein fehlerhafter Eintrag doch etwas gutes bewirkt, nämlich, dass sich  jemand nun die Mühe gemacht hat, eine verständliche Erklärung zu geben. Besten Dank dafür.

Bearbeitet von tkreutz2
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 4 Stunden schrieb Kickflip:

Ja wo denn vorhanden? Im Explorer auf einer Festplatte oder wie? Und was ist die Festplatte? Ein Server im Cluster? Und wie greift man auf diese Festplatte zu? Über die Software? SQL?  

Beim verstehen von Data löse dich mal vom Wo und Wie.

Wichtiger für dich ist erstmal das Was. Es macht einfach keinen Unterschied WO die Daten liegen und WIE du auf sie zugreifen kannst.
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Stunden schrieb Enno:

Beim verstehen von Data löse dich mal vom Wo und Wie.

Wichtiger für dich ist erstmal das Was. Es macht einfach keinen Unterschied WO die Daten liegen und WIE du auf sie zugreifen kannst.
 

Naja, wenn ich aber selbst einen Data Lake bauen möchte, dann muss ich das Wo und das Wie auch klären. :D 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich meine die Kommentare hier sind genauso schwammig wie die Artikel, die man im Internet findet. Bedanke mich aber trotzdem für das Engagement.

 

Also ich stelle mir das jetzt so vor, dass ich Daten habe - die IRGENDWO liegen - und ich greife darauf mit IRGENDEINER Software drauf zu. Wow.

Konkret würde ich das eher so machen: Ich nehme mir Python und verbinde mich im Skript mit einer relationalen DB und lese gleichzeitig mit Pandas CSVs und Excelsheets ein. Ist das quasi dann schon ein Zugriff auf ein "Data Lake" ? 

 

Aber da muss es doch eine Softwareschicht geben, die den Zugriff verwaltet oder die Dateien katalogisiert oder whatever. *argh* 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Minuten schrieb Kickflip:

mit einer relationalen DB

Dann hast du dich mit einem DWH verbunden. Sobald die Daten eine Relation zueinander haben ist es eben kein DL mehr.

Deshalb versuche erstmal zu verstehen WAS ein DL ist. und danach kommt das wie greife ich darauf zu und sobald das verstanden ist kannst du dir überlegen wie kann ich einen DL selber erstellen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 12 Stunden schrieb Kickflip:

naja, eher so oberflächlich. [...] Ja wo denn vorhanden? Im Explorer auf einer Festplatte oder wie? Und was ist die Festplatte? Ein Server im Cluster? Und wie greift man auf diese Festplatte zu? Über die Software? SQL?  

Es ist eben auch Theorie. Der Begriff Data Lake im Sinne von "Eine Ansammlung von Daten" sagt weder etwas darüber aus, wo die Daten liegen noch wie die Daten aussehen. Diese können z.B. auf einem USB-Stick oder in einen Stein gemeißelt sein. Der Begriff des DL kann also eine Sammlung von einem oder mehreren Dateien auf USB-Sticks, aber auch eine Sammlung von den gemeißelten Steinen sein. Genauso wenig sagt der Begriff aus, wie man auf Dateien zugreift. Du musst dir angewöhnen, bei Begriffen technologieunabhängig zu denken. Du hast zum Beispiel auch Hadoop in den Raum geworfen. Hadoop kann(!) in verteilten(!) Systemen für die Datenspeicherung und/oder -auswertung verwendet werden, muss aber nicht. Genauso kann ein DL über mehrere Systeme verteilt sein, muss aber nicht (ab einer gewissen Größe ist vermutlich nicht mehr ohne verteilte Systeme möglich, aber das ist wiederum ein anderes Thema).

Das heißt jetzt aber nicht, dass jede Ansammlung von Daten automatisch auch ein Data Lake sein muss. Viel eher beschreibt der Begriff den Zweck, also wofür die Daten verwendet gesammelt bzw. verwendet wurden/werden und dass diese nicht verändert wurden ("so abgelegt wie gesammelt"). Der Zweck ist hierbei irgendwelche Analysen/Auswertungen zu mache (Stichwort Big Data).

vor 2 Stunden schrieb Kickflip:

Konkret würde ich das eher so machen: Ich nehme mir Python und verbinde mich im Skript mit einer relationalen DB und lese gleichzeitig mit Pandas CSVs und Excelsheets ein. Ist das quasi dann schon ein Zugriff auf ein "Data Lake" ? 

Deine Datenbank die irgendwo läuft, ist noch kein DL. Wenn du zB Buchhaltungs-Daten im Excel-Format sammelst und irgendwelche Daten im CSV-Format irgendwo speicherst, um diese (irgendwann) auszuwerten, ist das ein DL. Wenn du deine Datenbank exportierst (zB in SQL-Dateien) und speicherst, ist das auch ein DL. Aber deine Produktiv-DB ist im eigentlichen Sinne kein DL.

Wenn du die Buchhaltungs-Excel-Daten in eine Datenbank ablegst, dann musst du dich darum kümmern, wie die in der Excel enthaltenen Daten abgebildet werden. Das ist dann eine DWH. Dort liegen die Daten nicht so wie man sie bekommen kann, sondern sie müssen aufbereitet werden, so dass sie eben in dein DWH "passen".

vor 12 Stunden schrieb Kickflip:

DL sind besser für ML,

Muss das zwingend immer so sein? Ob ich jetzt in einer CSV-Datei "2;3;5" stehen hab oder in einem Datenbanktabellen-Eintrag und der ML-Algorithmus lernt, dass ich x+y=z rechne, hat doch erst mal nichts damit zu tun, wo die Daten herkommen. Füttern kann ich ihn irgendwie mit beiden Möglichkeiten...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 16.12.2020 um 18:30 schrieb Enno:

Dann hast du dich mit einem DWH verbunden. Sobald die Daten eine Relation zueinander haben ist es eben kein DL mehr.

Deshalb versuche erstmal zu verstehen WAS ein DL ist. und danach kommt das wie greife ich darauf zu und sobald das verstanden ist kannst du dir überlegen wie kann ich einen DL selber erstellen.

Nö. Weißt du eigentlich was ein DWH ist und wo der Unterschied zu einer relationalen DB ist? 

 

Und auch: 

Zitat

Oft kommt die Frage auf, ob ein Data Lake andere Datenbankstrukturen, wie zum Beispiel ein Data Warehouse, beinhalten kann. Die Antwort ist definitiv: Ja! Aus Sicht des Data Lakes ist ein DWH nichts anderes als ein Datensatz.

 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sehr geile Antwort @pr0gg3r! Das hat mir glaube ich geholfen. Ist dann quasi der Begriff "Data Lake" einfach ein Sammelsurium an Daten und Datenbanken und sheets und files, die irgendwo im Unternehmen auf Rechnern, Festplatten und Server liegen und man quasi auf alle zugreifen kann?

Also hat dann nicht jedes Unternehmen einen Data Lake (ungewollt)? :D 

 

Wie kann man denn Software bereitstellen, die auf all diese Daten zugreifen kann? Also gibt es da Endanwendersoftware oder muss man da selbst programmieren? 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb Kickflip:

Also hat dann nicht jedes Unternehmen einen Data Lake (ungewollt)? :D

Nein. Ein Data Lake ist schon ein bisschen mehr, als nur ein Filesystem im Netzwerk, auf denen Dateien gespeichert werden. Ein Data Lake ist ein ganzes Ökosystem. Lies dir doch mal den Wikipedia-Artikel zu Hadoop durch. Da stehen alle Einzelteile von Hadoop:

  • Hadoop Distributed File System (HDFS)

    • Ein Filesystem, was die Daten auf mehrere Computercluster ablegt aber zentral verwaltet. Dabei werden nicht einfach irgendwelche Dateien im Kilo- oder Megabyte Bereich abgelegt, sondern von Giga- bis Terabytes.

  • Yet Another Resource Negotiator (YARN)

    • Eine Ressourcenverwaltung der Cluster

  • MapReduce

    • Ein Programmiermodell für nebenläufige Berechnungen. Hier findet das Lesen und Analysieren der Daten statt.

  • Directed-Acyclic-Graph (DAG)

    • Ein Ausführungsverfahren für die Ausführung von komplexen verteilten Algorithmen.

  • Transparente Kompression

    • Kompression von Dateien zur optimalen Speicher- und Ressourcen-Unterstützung

  • Transparente Dateiformatunterstützung

    • Implementierungen der Einlese-Algorithmen von Dateien. Standardgemäß unterstützt Hadoop CSV und JSON. Andere Formate lassen sich aber aufgrund der Modularisierung hinzufügen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...