Kreativität aus rohen Daten

Tools

Allen drei Typen von Daten ist gemeinsam, dass man nach Alternativen ausschauen muss, um die Datenspeicherung und -verarbeitung dieser Massendaten kostengünstig realisieren zu können. Dabei spielen häufig drei Faktoren eine Rolle, um die skalierbare Speicherung der Daten gewährleisten zu können:

  • Die Verwendung von Standardhardware (Commodity Hardware) im Rahmen der Lösungen, um eine einfache und kostenbewusste Skalierung zu ermöglichen
  • Die Verwendung von Open-Source-Software, um die Kosten pro eingesetztem Hardwareknoten niedrig halten zu können
  • Die Möglichkeit des Einsatzes der Lösungen in der Cloud, um eine einfache Skalierung zu erlauben oder auch temporär die Kapazitäten zu erhöhen

Der bekannteste Vertreter aus dem Bereich der Big-Data-Tools ist hier sicherlich das Apache-Hadoop-Projekt. Von Doug Cutting ursprünglich als Plattform für das skalierbare und verteilte Verarbeiten von Daten eines Webcrawlers entwickelt, erfreut sich Hadoop inzwischen universeller Verbreitung, wenn es um die Verarbeitung von Massendaten geht. Hierzu setzt das Hadoop-Framework das MapReduce-Prinzip um, das 2003/2004 von Google für den Einsatz auf seinen Clustern für die Lösung verteilter Probleme entwickelt wurde.

Beim MapReduce-Verfahren werden alle Abläufe in Map- und Reduce-Schritte zerlegt. Beim Map-Schritt werden die Daten parallel auf vielen Knoten (Worker) mit einer Teilmenge der Gesamtdaten verarbeitet. Anschließend werden im Reduce-Schritt die Ergebnisse der einzelnen Knoten zu einem Gesamtergebnis des MapReduce-Schritts aggregiert.

Das Hadoop-Projekt stellt das geschilderte MapReduce-Muster in einer Open-Source-Implementierung bereit und bildet damit die Grundlage einer skalierbaren, parallelen Massendatenverarbeitung. Einer der größten Sponsoren des Hadoop-Projekts in der Vergangenheit war Yahoo. Hadoop ist ein verteiltes System, das seine einzelnen Jobs in Batch-Manier abarbeitet. Das unterliegende verteilte Dateisystem heißt Hadoop Distributed File System oder kurz HDFS. HDFS speichert die Daten per Default mit zwei zusätzlichen, redundanten Replicas auf verschiedenen Knoten ab, sodass bei Verlust eines Knotens weiterhin zwei Replicas im Cluster verfügbar sind. Der typische Ablauf eines MapReduce-Jobs ist hierbei:

  • Die Rohdaten werden direkt in HDFS abgespeichert
  • Die Daten werden anschließend per MapReduce weiterverarbeitet
  • Das Ergebnis wird wiederum in HDFS gespeichert und zur Verfügung gestellt

Weitere Vertreter der Big-Data-Tools sind NoSQL-Datenbanken oder auch Streaming-Data-Software, wie etwa Apache S4. Prinzipiell ist es das Ziel, das für das Ergebnis beste Tool zu verwenden und damit möglichst eine zum Typ der Daten passende Software einzusetzen (no type mismatch). Das kann in manchen Fällen ein Key/Value-Store sein, in anderen Fällen eine Graphendatenbank oder eine einfache Ausgabedatei.

Hat man eine Big-Data-Infrastruktur einmal im Einsatz, bekommt man damit oft die Möglichkeit der Analyse von Daten, die vor der Einführung gar nicht gesammelt werden konnten. Die Analyse versucht nun, Muster in den gesammelten Daten zu entdecken. Trotz der großen Datenmenge sind Abfragen schnell, da sie auf den einzelnen Knoten des Clusters mit lokalen Daten parallel ausgeführt werden können. Man kann sich der Analyse der Daten also mit einer ordentlichen Portion Neugier und Experimentierfreude nähern. Das Analysieren der Rohdaten hat dabei oft einen explorativen Charakter, um mit den Daten im wahrsten Sinne des Wortes zu jonglieren. Die Datenanalyse zeichnet sich also verstärkt durch eine agile Herangehensweise an den Umgang mit den Daten aus.

Die erfolgreichen großen Unternehmen der letzten Jahre im Webumfeld, wie Facebook, Amazon und Google, zeichnen sich allesamt durch den starken Einsatz von Big-Data -Techniken aus. Wie kann aber eine sinnvolle Herangehensweise an Big Data aussehen, auch wenn wir nicht Facebook sind?

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.