Was ist Big Data?

Big Data ist das Schlagwort unserer Zeit.
Egal wo man hinsieht: Jeder braucht Big Data, jeder will Big Data und alles muss bereit sein für Big Data.

Du kannst kein Spark?
Hadoop ist ein Fremdwort?
Tableau hast du auch noch nicht von innen gesehen?
Oh das ist schlecht…

Aber was ist das eigentlich? Dieses Big Data von dem alle sprechen?
Genau das möchte ich in dem Artikel etwas beleuchten und mal zeigen, wovon wir da eigentlich sprechen.

Dieser Artikel ist Teil einer kleinen Serie über Daten und Big Data.

Was ist Big Data?

Bei Big Data handelt es sich um massive Datenmengen mit exponentiellem Wachstum, die mit regulären Methoden nicht mehr verarbeitet werden können. 
Deshalb benötigen sie sowohl kosten-effiziente, als auch innovative Verarbeitungsmethoden.

Sehr schön. Damit hätten wir schonmal eine Definition. Wirklich greifbar ist das aber noch nicht.

Inhalt:
    Add a header to begin generating the table of contents

    Zu dem Thema habe ich auch schonmal ein YouTube Video veröffentlicht.

    5 Charakteristika von Big Data oder die 3Vs (5Vs) in Big Data

    • Variety (Vielfalt)
    • Velocity (Geschwindigkeit)
    • Volume (Volumen / Ausmaß)
    • Veracity (Wahrhaftigkeit)
    • Value (Wert)

    Die ersten drei sind die 3V in Big Data bekannt sind.
    Die letzten beiden, also Wahrhaftigkeit und Wert, kamen erst später hinzu.
    Lass mich kurz auf die einzelnen Punkte eingehen, damit du auch verstehst, was sich dahinter verbirgt.

    Die Vielfalt der Daten beschreibt die Art der Daten.
    Es gibt viele verschiedene Arten von Daten:

    • E-Mails
    • PDFs
    • Fotos
    • Videos
    • Datenbanken
    • CSV Dateien
    • Excel
    • Audio
    • Social Media
    • etc.

    Grob kannst du Daten in drei Kategorien sortieren:

    • Strukturiert
      • Bestellungen, Adressen, Mitarbeiterdaten, etc.
      • Leicht und schnell zu verarbeiten
    • Unstrukturiert
      • E-Mails, Video, Audio, etc.
      • Schwer zu verarbeiten
    • Semistrukturiert
      • Mischung aus strukturiert und unstrukturierten Daten
      • Text ist unstrukturiert, aber Text mit Tags wie zum Beispiel in Instagram bekommt durch die Tags schon eine erste Klassifizierung

    Um die Geschwindigkeit zu ermittelt wir darauf geachtet wie schnell Daten erzeugt werden.
    Dabei geht es nicht nur um die Daten selbst, sondern auch um Verknüpfungen zwischen den Daten und die Häufigkeit, bzw. Geschwindigkeit in der Änderungen und andere Aktivitäten auf den Daten stattfinden. 
    Handelt es sich um Echtzeit Änderungen? Dann ist das schonmal ein guter Indikator.

    Die dritte Eigenschaft ist das Volumen der Daten.
    Also von welchen Datenmengen sprechen wir?
    Dabei wird nicht nur die Gesamtmenge der Daten in Betracht gezogen sondern teilweise auch die Geschwindigkeit.
    Es geht nämlich darum wie viele Daten auf Tagesbasis generiert werden.

    Bei der Wahrhaftigkeit geht es um die Qualität der Daten. Im besonderen wird hier auf die Vollständigkeit, Eindeutigkeit und Authentizität wert gelegt.
    Also kurz gesagt: Sind die Daten vertrauenswürdig?
    Egal welche Auswertungen du machst, sie sind nur soviel Wert, wie die Daten, die du rein gegeben hast.
    Sind die Daten schon falsch, mehrdeutig, fehlerhaft oder unvollständig, wird sich genau das auch in deinen Ergebnissen widerspiegeln und ggf. zu falschen Folgerungen führen.

    Der Wert der Daten wiederum bezieht sich auf den Mehrwert.
    Also was bringen mir die Auswertungen eigentlich?
    Kannst du Schlüsse daraus ziehen? Kannst du Vorhersagen treffen? Gewinnst du neue Informationen?
    Je genauer die Vorhersagen und je mehr neue Informationen du durch die Auswertung gewinnen kannst, desto besser, wertvoller sind die Daten natürlich.

    Jeder hat Big Data!

    Alles klar.
    Große Datenmengen, Bestellungen, Adressen, E-Mails, Excel, …
    Dann hat doch jeder Big Data!
    Oder?
    Lass mich das Ganze dazu einmal etwas in Relation setzen.
    Viele verlieren aus dem Auge was “GIGABYTE AN DATEN” eigentlich heißt.

    Speichergröße Inhalt Visualisierung
    1 Bit
    0 oder 1

    8 Bit

    1 Buchstabe

    1 Byte

    2 Kilobyte (KB)

    1 A4 Seite

    1 Megabyte (MB)

    ~500 A4 Seiten

    1 Buch

    5 Megabyte (MB)
    1 Bibel

    1 Gigabyte (GB)

    1.000 Megabyte (MB)

    1.000 Bücher

       200 Bibeln

    30 Gigabyte (GB)

    30.000 Bücher

      6.000 Bibeln

    Bei 30 Gigabyte reden wir also schon von einer mittleren Bibliothek!

    Wenn du jetzt in Betracht ziehst, dass es nicht nur die Datenmenge ist, sondern auch die Geschwindigkeit in der neue Daten entstehen und sich verändern, würde ich behaupten, dass nur wenige Firmen wirklich Big Data brauchen. Auch wenn sie danach schreien.

    Werkzeuge und ihre Fähigkeiten

    Eingangs habe ich mit Spark, Hadoop und Tableau ein paar Werkzeuge genannt, die feste Größen in der Big Data Welt sind. 
    Und das absolut zurecht!
    Es sind hervorragende Werkzeuge für die Arbeiten, die sie erledigen sollen. 

    Aber nach der kleinen Aufbereitung hier sollte inzwischen klar sein, dass bei weitem nicht jeder riesige Datenmengen hat und noch weniger diese auch in Echtzeit verarbeiten müssen. 
    Musst du dir also trotzdem teure Hardware und Experten für die Auswertungen ins Haus holen?

    Nein. Ganz im Gegenteil!
    Wenn du einen Spark mit einer 200 MB Excel Datei fütterst hat er nicht nur das Problem, dass er sich dann langweilt. 
    Er weiss auch einfach nicht was er damit machen soll.
    Ein Spark ist darauf ausgelegt große Datenmengen in einer verteilten Landschaft parallel zu verarbeiten.
    Bei 200 MB lässt sich nicht wirklich viel parallelisieren.

    Deswegen möchte ich dir hier eine kleine Übersicht über die verschiedenen Werkzeuge und ihre Fähigkeiten geben.
    Hierbei habe ich gleich sortiert, welche Mengen verarbeitet werden können.

    Excel

    • Darstellung: 1 Million Zeilen
    • Datenmodell: Limit ist verfügbarer Arbeitsspeicher
    • Datenquellen: CSV, Datenbanken, Web-API, etc.
    • Datenhaltung: Arbeitsspeicher
    • Verarbeitung: Lokal

    Das wohl bekannteste “Werkzeug” für die Auswertung von Daten.
    Warum ich es für absolut ungeeignet halte und dringend davon abrate Datenauswertungen mit Excel zu machen, werde ich mal in einem andere Artikel beschreiben.
    Der Vollständigkeit halber gehört es aber trotzdem in die Liste, da es einfach einen festen Platz in der Industrie hat. 

    Excel ist in der Lage bis zu einer Million Zeilen darzustellen.
    Genau genommen sind es ein klein wenig mehr. Die genauen Spezifikationen kannst du hier in der offiziellen Dokumentation nachsehen.

    Allerdings ist Excel nicht auf die Darstellung beschränkt.
    Im Hintergrund gibt es noch ein Datenmodell, in dem Excel die Daten speichert. 
    Dabei werden alle Daten auch wirklich im Arbeitsspeicher gehalten.
    Die effektive Datenhaltung ist also lediglich auf die Menge an verfügbarem Arbeitsspeicher beschränkt

    Die Daten können dann lediglich nicht mehr angezeigt werden und können daher auch nicht durch Excel selbst kommen. 
    Es müssen also Funktionen geschrieben und die Daten aus alternativen Quellen wie CSV Daten, Datenbanken, Web-APIs oder ähnlichem importiert werden.

    Funktionen schreiben heißt hier Excel Makros und VBA (Visual Basic for Applications).
    VBA ist etwas hinterlistig.
    Es schleicht sich bei vielen Nutzern so nach und nach ein, obwohl sie gar nicht programmieren “können” (wollen).
    Dabei handelt es sich bei VBA aber um eine Programmiersprache und alles was in VBA gemacht wird ist Programmierung!
    Das dumme ist nur: Man ist auf Excel (bzw. Microsoft Anwendungen) beschränkt und kann außerhalb der Anwendungen nur wenig damit anfangen.

    Achja….
    Schonmal versucht eine 500 MB Excel Datei zu öffnen? 😉

    Pandas

    • Darstellung: unbegrenzt
    • Datenmodell: Limit ist verfügbarer Arbeitsspeicher
    • Datenquellen: CSV, Datenbanken, Web-API, Excel, etc.
    • Datenhaltung: Arbeitsspeicher / Chunks
    • Verarbeitung: Lokal

    Mit Pandas kommt das nächste, sehr bekannte Werkzeug zur Datenauswertung und mein absoluter Favorit.

    Warum?
    Es ist schnell und einfach in der Handhabung.
    Nicht nur die Verarbeitungsgeschwindigkeit, sondern auch die Geschwindigkeit in der sich Auswertungen erstellen lassen. 
    Dazu kommt, dass man überhaupt nicht groß programmieren lernen muss, wenn man lediglich Excel ablösen will.

    Es lässt sich von jedem schnell lernen.

    Ein weiterer, großer Bonus ist, dass die Logik für die Auswertung von den Daten getrennt gehalten wird. 
    Wie leicht passiert es bei Excel, dass durch Copy&Paste ganze Formelsätze einfach verschwinden. Oft dann auch noch unbemerkt. 
    Es standen vorher Zahlen drin und es stehen jetzt immer noch Zahlen drin.

    Bei Pandas werden grundlegend die Daten auch erst einmal im Arbeitsspeicher gehalten.
    Allerdings habe ich bei Pandas die Programmiersprache Python im Rücken mit der super einfach eine Datenbank angebunden werden kann.
    Das kann auch erstmal eine lokale, Dateibasierte Datenbank (sqlite) sein. 
    Dabei muss nichts installiert werden und ich habe trotzdem Datenbank Funktionalitäten zur Verfügung. 
    In dem Fall speziell die Möglichkeit in Chunks zu arbeiten.

    Ich kann also die Daten erstmal in eine Datenbank Datei schreiben und dann in einzelnen Blöcken immer nur so viele Daten raus laden wie ich gerade verarbeiten kann und will. 

    Das ist zwar nicht die schnellste Art der Verarbeitung, ermöglicht es aber größere Datenmengen überhaupt zu verarbeiten

    Oder was ist, wenn ich eine riesige Datei mit 3000 Spalten bekomme, brauche aber nur 20 Spalten für meine Auswertung?
    In Excel muss ich trotzdem erstmal die ganze Datei laden.
    In Pandas kann ich direkt angeben welche Spalten ich brauche und es werden mir nur genau die Spalten geladen.

    Ähnlich kann ich auch Datentypen optimieren.
    Excel und Pandas versuchen beide anhand der Daten zu erkennen, um was es sich handelt und demnach einen Datentyp abzuleiten.
    Im Fall einer Zahl wird das in der Regel eine der Typ float64 sein.
    Float64 heißt, dass 64 Bit belegt werden um eine Zahl darin zu speichern.
    Selbst wenn die Zahl eine 0 ist.

    Mit Excel hänge ich erstmal da drin und muss nachträglich die Datentypen anpassen.
    Mit Pandas kann ich wieder direkt beim einlesen festlegen, welcher Datentyp verwendet werden soll und so Zahlen zum Beispiel mit einer float32 einlesen, weil mir 32 Zeichen Genauigkeit ausreichen. 
    Damit habe ich meinen Speicherbedarf für Zahlen schon halbiert!

    Du siehst also, mit Python habe ich schon enorme Vorteile und viele Optimierungsmöglichkeiten, die ich alle einsetzen kann, aber eben nicht einsetzen muss.
    Deswegen ist der Einstieg auch so einfach und schnell.
    Wenn du dich darauf einlässt.

    Dask

    • Darstellung: unbegrenzt
    • Datenmodell: theoretisch unbegrenzt
      • real: ca. 200 GB
      • abhängig von Parallelisierung und Thread Größe
    • Datenquellen: CSV, Datenbanken, Web-API, Excel, etc.
    • Datenhaltung: Arbeitsspeicher / Chunks / Cluster
    • Verarbeitung: Parallelisiert lokal oder im Cluster

    Dask ist eine Bibliothek wie Pandas.
    Allerdings ist Dask darauf spezialisiert eben nicht mehr alles im Arbeitsspeicher zu halten.
    Jede Aktion erzeugt im ersten Schritt nur einen weiteren Knoten in einer Prozesskette. 
    Erst ganz am Ende, wenn man explizit das Ergebnis verlangt, wird diese Prozesskette ausgeführt, abgearbeitet und das Ergebnis präsentiert. 

    Dabei können Einstellungen gesetzt werden um die Verarbeitung der Prozesskette zum Beispiel in einem AWS Cluster auszuführen. Oder an jedem anderen beliebigen Ort.

    Das heißt der Aufbau der Verarbeitung kann auf dem eigenen Laptop geschehen.
    Schnell, schlank und ohne großen Ressourcen Bedarf.
    Die Verarbeitung selbst wird dann von spezialisierten Maschinen irgendwo in einem Rechenzentrum ausgeführt und nur dort entsteht dann die Last.

    Damit sind die zu verarbeitenden Datenmengen ungleich größer als bei den beiden Vorgängern Excel und Pandas.

    Apache Spark

    • Darstellung: unbegrenzt
    • Datenmodell: theoretisch unbegrenzt
      • abhängig von Parallelisierung und Cluster Größe
    • Datenquellen: CSV, Datenbanken, Web-API, Excel, etc.
    • Datenhaltung: Arbeitsspeicher / Chunks / Cluster
    • Verarbeitung: Parallelisiert im Cluster

    Mit Apache Spark erreichen wir so ziemlich das Ende der Fahnenstange. 
    Geht es um richtig richtig große Datensätze, die schnell verarbeitet werden müssen, dann ist Spark das Werkzeug der Wahl. 
    Es arbeitet grundsätzlich parallelisiert in einem Cluster und ist daher nur durch die Clustergröße beschränkt. 
    Mehr Cluster – Mehr Daten.

    Das bringt allerdings auch einen entscheidenden Nachteil mit sich:
    Daten müssen parallelisiert werden können.

    Handelt es sich um vergleichsweise kleine Datenmengen ist ein Spark langsamer und ineffizienter als jedes Excel Blatt.

    Überblick

    Werkzeug Darstellung Datenmodell Limit Datenquellen Datenhaltung Verarbeitung
    Excel 1 Million Zeilen verfügbarer Arbeitsspeicher CSV, Datenbanken, Web-API, etc. Arbeitsspeicher Lokal
    Pandas unbegrenzt verfügbarer Arbeitsspeicher CSV, Datenbanken, Web-API, Excel, etc. Arbeitsspeicher / Chunks Lokal
    Dask unbegrenzt theoretisch unbegrenzt CSV, Datenbanken, Web-API, Excel, etc. Arbeitsspeicher / Chunks / Cluster Parallelisiert lokal oder im Cluster
    Apache Spark unbegrenzt theoretisch unbegrenzt CSV, Datenbanken, Web-API, Excel, etc. Arbeitsspeicher / Chunks / Cluster / Datenbanken Parallelisiert im Cluster

    Wichtig ist also:
    Kenne deine Daten!
    Kenne deine Werkzeuge!
    Und wähle dann das richtige für den richtigen Job aus.

    Was gehört zu Big Data?

    Die Auswertung ist nur ein kleiner Teil des Bereichs Big Data. Hier die Bereiche, die alle unter Big Data fallen und benötigt werden:

    • Data Mining (Daten sammeln)
    • Data Storage (Daten speichern)
    • Data Analysis (Daten analysieren)
    • Data Sharing (Daten teilen)
    • Data Visualization (Daten visualisieren)

    Was kann man mit Big Data machen?

    Big Data hat die verschiedensten Anwendungsgebiete. Darunter fallen:

    • Personalisierte Angebote für Kunden
    • Analyse der Kundenabwanderung
    • Produktgestaltung
    • Produktentwicklung
    • Adaptive Preisgestaltung
    • Betrugsprävention
    • Trendanalysen

    Die Einsatzgebiete sind vielfältig und werden unterm Strich nur durch die Kreativität und den Nutzen begrenzt.
    In meinem nächsten Artikel gehe ich etwas genauer darauf ein wie Daten genutzt werden.

    Warum ist Big Data so wichtig?

    Durch die Auswertungen im Bereich Big Data verschafft man sich Wettbewerbsvorteile gerade in schnelllebigen Märkten.
    Es werden wichtige Einblicke in den Markt und das Kundenverhalten, sowie strategische Entscheidungsgrundlagen für die Projektentwicklung geschaffen.

    Beitragsbild - PDF Passwort entfernen
    mehr lesen »
    Beitragsbild - CSV Dateien in einem Verzeichnis zusammenführen
    mehr lesen »
    Beitragsbild - Python als erste Programmiersprache
    mehr lesen »

    Kommentar verfassen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

    Scroll to Top