Buzzwords so scheint es, sind die Lieblinge der Marketingwelt. Es wird viel mit ihnen umhergeworfen, kaum einer weiß wirklich was dahintersteckt. Und da wären wir auch schon mitten im Thema: Big Data – der Mega-Trend im Marketing. Aber fragt man jemanden, wie das denn nun geht mit Analyse und Data-Driven, schaut man in fragende Gesichter. Dass gute Analysetools zur Aufbereitung und Nutzung der Daten Wettbewerbsvorteile mit sich bringen haben wir bereits hier deutlich gemacht. Aber wie funktioniert jetzt das Ganze?

Klar ist so viel: Es werden massenhaft Daten gesammelt, ausgewertet und am Ende kommt irgendein Ergebnis heraus, dass die aktuelle Situation widerspiegelt (ach nein!) und irgendwie zur Verbesserung von bestehenden Modellen und Geschäftsprozessen verwendet werden kann. Und Algorithmen haben dabei scheinbar auch eine Funktion. So weit kommt ungefähr jeder, der mal für fünf Sekunden in den Wikipedia Artikel schaut.

Die Frage ist wie genau läuft Datenanalyse ab, worauf sollte man achten, welche Trends zeichnen sich ab und wie kann ich die für mein Unternehmen gewinnbringend einsetzen? ACHTUNG: Was jetzt kommt ist teilweise ziemliches IT- und Statistikkauderwelsch, aber, wenn ich einen Weg gefunden hätte diese ganzen Rechnungen und Prozesse zu vereinfachen, säße ich jetzt am Strand von Waikiki und nicht mit der dritten Tasse Kaffee am Schreibtisch. Lesenswert ist es trotzdem, versprochen.

Zurück zum Thema: Es gibt bereits einige grundlegende Verfahren die sich mit der Auswertung von Daten beschäftigen, und die jeder Datenanalyst beherrschen sollte. Dazu gehören zum Beispiel statistische Hypothesentests, wie der t-Test oder der Chi-Quadrat-Test. Ebenfalls im Grundrepertoire vorhanden sein sollten auch Regressionsmodelle, Graphentheorie, Clustering-Verfahren oder Klassifikationsverfahren wie der Random-Forest-Algorithmus. Ausgehend von den Grundverfahren werden ständig individuelle Anpassungen vorgenommen um die Methoden auf die zu untersuchenden Daten abzustimmen. Dementsprechend gibt es in diesen Bereichen zwar auch immer wieder neue Verfahren; sie sind allerdings sehr individuell. So weit so klar? Zumindest den t-Test oder Chi-Quadrat haben wir alle mal mehr oder weniger bewusst in irgendeiner Statistikvorlesung gehört.

Darüber hinaus gibt es aber einige Konzepte die sich nicht mit dem direkten Auswerten von Daten beschäftigten, sondern mit der Art des Abspeicherns, Auswerten und Zugreifen der Daten an sich. Gerade in diesen Bereichen gibt es einige Neuerungen, die sich immer größerer Beliebtheit erfreuen.
So beruht ein Konzept darauf, die Daten nicht lokal oder in einer Datenbank zu speichern, sondern vielmehr in einer Cloud. Am bekanntesten ist Hadoop; ein in Java geschriebenes freies Framework für skalierbare, verteilt arbeitende Software, welches auf dem „MapReduce“ Algorithmus basiert. Im Wesentlichen geht es dabei darum, aufwendige Rechenprozesse, also solche die auf große Datenmengen zugreifen, auf Computerclustern durchzuführen. Dabei kommen verschiedene Bestandteile zum Tragen.

Ein wichtiger Bestandteil von Hadoop ist das HDFS; ein Dateisystem zur Speicherung von sehr großen Datenmengen auf Dateisystemen mehreren Rechnersystemen, die als Knoten bezeichnet werden. Dabei werden die Daten in Datenblöcke mit fester Anzahl an Datensätzen aufgeteilt und zufällig an die einzelnen Knoten weitergeleitet. Die Länge der Datenblöcke ist individuell vom Anwender bestimmbar. Die sogenannten Knoten werden außerdem in zwei Kategorien mit verschiedenen Aufgaben unterteilt: die Master- und Slave-Knoten. ( Gebt‘s zu, auch ihr musstet schmunzeln!) Masterknoten haben die Aufgabe, eingehende Datenanfragen zu bearbeiten und die Ablage in den Slaveknoten zu organisieren. Berechnungen werden hingegen nicht in den Master- sondern innerhalb der Slaveknoten ausgeführt. Hierbei spielt der Begriff „Parallel Computing“ eine zentrale Rolle. Konkret bedeutet dies, dass Berechnungen parallel in allen Slaveknoten ausgeführt werden. Im Gegensatz zu einer prozeduralen Berechnung, also dem Nacheinander Ausführen, kann hier enorm viel Zeit eingespart werden. Allerdings macht dieses Konzept nur bei großen Datenmengen, wie es im Allgemeinen bei Big Data der Fall ist, Sinn. Denn bei um die 100 Millionen Datensätzen wäre ein einziges Rechnersystem für die Berechnungen solcher Datenmengen viel zu schwach.

Noch dabei? Sehr gut und sooo schlimm ist es ja auch gar nicht, oder? Weiter geht’s.

Die andere wichtige Komponente von Hadoop ist der MapReduce-Algorithmus, ein Programmiermodell für mehrere parallel laufende Berechnungen großer Datenmengen auf Computerclustern. Der Algorithmus ist in drei Phasen gegliedert: Map, Shuffle und Reduce. Die Map-Funktion, genauso wie die Reduce-Funktion, lässt sich vom Benutzer spezifizieren. Der Benutzer gibt an, welche Berechnungen innerhalb der einzelnen Datensätze ausgeführt werden sollen. Das können zum Beispiel oben erwähnte individuell angepasste Verfahren sein. Zu Beginn werden dann alle Datensätze auf eine Reihe von Map-Prozessen verteilt (Slaveknoten) und für jeden Datensatz wird die Berechnung, idealerweise parallel, ausgeführt. Jede der Map-Prozesse speichert die berechneten Ergebnisse als Zwischenergebnisse ab, welche wiederum in gegebenenfalls verschiedene Zwischenspeicher fließen. Die Anzahl der Zwischenspeicher ist deutlich geringer als die ursprüngliche Anzahl an Datensätzen. Das liegt daran, dass die mithilfe der Map-Funktion bearbeiteten Datensätze nach verschiedenen Kriterien gruppiert werden, zum Beispiel nach männlichen und weiblichen Teilnehmern. Dieser Prozess wird auch als Shuffle-Phase bezeichnet, da die Daten zwischen vielen Computersystem hin und her getauscht werden. Nach dem erfolgreichen Berechnen der Zwischenergebnisse beginnt die Reduce-Phase, in der für jeden Zwischenergebnis-Speicher die Reduce-Funktion angewandt wird. Idealerweise werden auch diese benutzerspezifizierten Berechnungen parallel ausgeführt und man erhält die Ausgabedaten.

Im Großen und Ganzen geht es bei der Parallelverarbeitung also um die Optimierung von Zeitressourcen, indem die Daten in einer Cloud abgespeichert werden und dann parallel verarbeitet werden. Klingt gut, ist auch gut.

Businessman works and designs with futuristic technology
©alphaspirit/Fotolia

Eine weitere Neuerung bei der Bearbeitung von Big Data ist die Überarbeitung der Datenbanktheorie. Bisher war es also immer so, dass die Struktur einer Datenbank angelegt wurde bevor sie mit tatsächlichen Daten gefüllt wurde. Dabei wurden unter anderem die Typen der Variablen aber auch die Anzahl an Variablen im Vornhinein festgelegt.

Auch hier geht es wieder um Ressourcenschonung und höhere Effizienz. Um den Aufwand des Abspeicherns jedes einzelnen Datensatzes zu verringern, gibt es ein sogenannten „data lake“, also ein „Datensee“. Dabei fließen alle Rohdaten, in einen großen Datenpool und werden dort abgespeichert. Vorteilhaft ist die simple Struktur der Daten, die nur mit einer minimalen Anzahl an Identifizierungsschlüsseln ausgestattet werden, also zum Beispiel das Alter einer Person. Die Daten müssen dann solange nicht angerührt werden bis eine entsprechende Abfrage gestartet wird. In diesem Fall können die Daten aufgrund ihrer simplen Struktur nach den entsprechenden Schlüsselwerten durchsucht werden. Es werden nur diejenigen Datensätze extrahiert die den entsprechenden Schlüsselwert besitzen, also zum Beispiel Personen im Alter von 20 und 30 Jahren. Logischerweise erhält man auf diese Weise eine kleinere Anzahl an Daten die analysiert werden müssen. Aber vor allem ist das Abspeichern und Aufrufen der Daten viel effizienter. Auf der anderen Seite müssen die Analysten, die diese Form von Modell bedienen hochqualifiziert sein. Schließlich lässt sich in den Daten so einfach keine Struktur erkennen wie es in einer traditionellen Datenbank der Fall ist.

Und was ist, wenn ich weder Geld noch Lust hab diese viel zu teuer bezahlten Daten-Heinis einzustellen? Keine Sorge, es ist es trotzdem möglich mit den neuesten Big Data Trends mit zu halten. Es gibt nämlich viele Systeme die die Datenbanksprache SQL unterstützten, oder zumindest eine darauf basierende Sprache. Somit werden Analysten die Skripte in Java, JavaScript oder Python programmieren können, für diesen Zweck nicht zwangsläufig benötigt. Vielmehr können Mitarbeiter, die SQL beherrschen, mit der Aufgabe betraut werden, was eine Alternative zu teurer Software und die dafür benötigten Analytiker darstellt.

Gerade im Zusammenhang mit SQL erscheinen immer mehr Datenbanken, die auf SQL basieren und mit NoSQL (Not only SQL) bezeichnet werden. Grund ist, dass die klassischen relationalen Datenbanken bei der Verwaltung von großen Datenmengen schnell an ihre Grenzen stoßen. NoSQL Datenbanken hingegen sind sogenannte nicht relationale Hochleistungsdatenbanken, die gerade für solche Anwendungsfälle geschaffen wurden in denen die traditionellen Datenbanken ins Stolpern geraten. Es geht also nicht darum die klassischen SQL Datenbanken zu ersetzen, sondern darum sich nicht ausschließlich auf diese zu beschränken.

Eine einheitliche Klassifikation von NoSQL-Datenbanken gibt es aber dennoch nicht, es werden alle System, die eben nicht relational arbeiten darunter zusammengefasst. So sind unter diesem Begriff verschiedene Systeme wie zum Beispiel Key-Value-Stores, Document-Stores , Wide-Column-Stores oder auch Graph-Datenbanken zusammengefasst.

Geschftsmann steht vor einem leuchtenden Fragezeichen-Durchgang
©fotogestoeber/Fotolia

Was für ein Store, welcher Graph und was zur Hölle ist ein Key-Value? Nicht verzweifeln, weiterlesen.

Das Konzept der Key-Value-Stores ist schon sehr lange bekannt und erfreut sich immer größer werdender Beliebtheit. Wieso? Weil sich diese Systeme sehr gut dazu eignen Daten auf vielen verschiedenen Servern zu verteilen. Der Aufbau von Key-Value-Stores ähnelt den relationalen Datenbanksystemen. Konkret bedeutet das, dass ein bestimmter Schlüssel (key) auf einen Wert (value) zeigt. Schlüssel werden nur einmalig vergeben und deshalb ist die Zuordnung eindeutig. Gerade dieses einfache Schema ist aber auch ein Nachteil der Key-Value-Stores, da einfache Abfragen zwar schnell verarbeitet werden können, komplexere Abfragen aber kaum zu bewältigen sind.

Document-Stores hingegen speichern Daten nicht in Form von Tabellen, sondern in Form von Dokumenten. Dabei wird unter dem Begriff Dokument eine Zusammenstellung von strukturierten Daten verstanden, welche sowohl Tabellen als auch mehrere relationale Datenbanken oder auch Objekte enthalten kann. Wichtig ist, dass hierbei alle zusammenhängenden Daten in einem Dokument gespeichert werden. Dadurch lässt sich es sich vermeiden bei einer Abfrage Daten aus mehreren Tabellen auszulesen und anschließend noch zu kombinieren.

Wide-Column-Stores gruppieren die Daten mehrerer Einträge nach ihren Spalten und nicht nach ihren Zeilen, wie es bei relationalen Datenbanken der Fall ist. Zusammenhängende Spalten werden dann gruppiert, wobei nicht festgelegt ist wie viele Spalten in einer Gruppe enthalten sein dürfen. Das ist ein großer Vorteil, da sie sich so gut für große Datenvolumen eignen.

Am schwierigsten ist es Beziehungen in einer relationalen Datenbank abzuspeichern, also etwa Informationen über Freunde oder Wer-kennt-Wen-Probleme. Bei derartigen Problemen kommen deshalb sogenannte Graph-Datenbanken zum Einsatz, da sich Beziehungen am besten mithilfe eines oder mehreren Graphen darstellen lassen. Genauso wie bei einem Graphen bestehen Graph-Datenbanken aus Knoten und Kanten und da es verschiedene Typen von Graphen gibt, gibt es auch verschiedene Typen von Graph-Datenbanken, wie etwa gerichtete, ungerichtete oder gewichtete und ungewichtete. Je nach Anwendung muss das passende Modell ausgewählt werden. Falls der Graph am Ende zu groß für einen Server wird, muss er partitioniert werden. Es wird also versucht den Graphen an einer oder mehreren passenden Stellen zu teilen. Dafür existieren keine exakten mathematischen Methoden, sondern lediglich ein paar heuristische Methoden, wie zum Beispiel Clustering-Algorithmen. Das kann in manchen Fällen ein Nachteil von Graph-Datenbanken sein. Der Vorteil ist aber, dass komplexe Beziehungen dargestellt werden können.

Alles klar soweit? Auch wenn du jetzt nicht jeden einzelnen Rechenweg verstanden hast, klar geworden sollte allemal Folgendes sein: Auf Grund der wachsenden Datenmengen und den daraus resultierenden Auswertungen ändern sich auch die Anforderungen an den Umgang mit Daten. Schließlich reichen veraltete Systeme für solche Unmengen an Daten schlicht und einfach nicht mehr aus. Gerade deshalb werden neue Konzepte wie die Parallelverarbeitung, der Datensee oder NoSQL-Datenbanken benötigt und auch eingesetzt. Diese Ideen ermöglichen es schließlich Big Data auszuwerten und die Ergebnisse zu verwenden.

 

______________________________

In eigener Sache: https://www.linkedin.com/pulse/spartacoalert-geht-den-start-axel-oppermann/ .

Wirmöchten Deine Aufmerksamkeit heute auf einen neuen Service richten: spartaco|alert

spartaco|alert hilft dir, Content zu von Dir definierten Themen aufzuspüren; und dies im besten Fall im Kontext. In einem unverfälschten, smoothen und minimalistischen Prozess bekommst Du eine Übersicht über die neuesten Erwähnungen von Namen, Begriffen, Keywords oder Themen.

spartaco|alert geht an den Start

Mabelle Franke
Themen die sich mit Datenanalyse und Computerverfahren aller Art beschäftigen, sind Mabelle's Steckenpferd. Fundierte Kenntnisse in diesem Bereich gewinnt Mabelle überwiegend im Studium der Mathematik. Den Bachelorabschluss hat sie seit Mitte 2015 in der Tasche und arbeitet nun am Masterabschluss.