Von Business Intelligence bis Business Analytics

Ratgeber für den Mittelstand - was ist was bei Big Data?

Big-Data-Systeme: ein Überblick

Dies alles sind Gründe, warum spezielle "Big-Data-Systeme" notwendig sind. Sie müssen nicht nur die Datenmassen bewältigen, sondern auch unstrukturierte Daten möglichst effizient bearbeiten - und das Ganze möglichst schnell.

Wegbereiter solcher Big-Data-Werkzeuge war Google. Mit dem Programmiermodell MapReduce konnte der Konzern die Verarbeitung der Datenmassen so aufteilen, dass die Infrastruktur flexibel an die Datengröße angepasst werden kann. Daraus entstand das populäre Open-Source-Projekt Hadoop - heute neben In-Memory und NoSQL-Datenbanken für unstrukturierte Daten der Standard für Big Data.

Das Herzstück der Big-Data-Analyse aber bilden Modelle und Algorithmen, die darauf getrimmt sind, Zusammenhänge in den Datenbergen aufzuspüren sowie Muster und Ähnlichkeiten zu erkennen. Diese - auf große Datenmengen ausgerichteten - Predictive- oder Analytics Lösungen helfen nicht nur, schnell und akkurat ein Bild der Gegenwart zu zeichnen, sondern auch, Vorhersagen zu treffen und damit Prognosen über künftige Entwicklungen aufzustellen.

Daten beherrschen - MapReduce und Hadoop

Ein Big-Data-System, das alle genannten Anforderungen erfüllt, gibt es nicht. Aber es gibt für jede der Problemstellungen adäquate Methoden und Werkzeuge. Für die Frage, wie man große Datenmassen effizient speichert und verarbeitet, hat sich etwa das altrömische Prinzip "Teile und herrsche" als geeignet erwiesen.

Statt die Daten an einem zentralen Ort zu speichern und zu verarbeiten, werden sie verteilt und parallel bearbeitet. Das ist das Grundprinzip des von Google entwickelten MapReduce-Algorithmus. Die beiden wichtigsten Bausteine dieses Ansatzes sind erstens ein distributives (= verteiltes) Dateisystem, das Daten auf den lokalen Speicher eines Rechner-Clusters - also eines Rechnerverbundes - verteilt, und zweitens eine Instanz, die ein Problem in Teilaufgaben aufgliedern und die Ergebnisse wieder zusammenfügen kann.

Der Google-Algorithmus verwendet dazu einen "Koordinator", der die Datenmassen aufsplittet und sie anhand von vordefinierten Regeln auf die einzelnen Server verteilt. Jeder dieser Server speichert und bearbeitet nur den ihm zugewiesenen, winzigen Ausschnitt der Datenmenge. Bei einer Berechnungsanfrage verteilt der Koordinator die Aufgaben auf in der Nähe befindliche Server. Da die Tasks den einzelnen Serverknoten zugeordnet werden (= Mapping), werden sie als "Map-Tasks" bezeichnet.

Die Map-Tasks berechnen zunächst Zwischenergebnisse, die der Koordinator bei Bedarf sortiert und in einem temporären Speicher ablegt. Sind alle Zwischenergebnisse kalkuliert, ist die Map-Phase beendet. Das Endergebnis wird dann durch Aggregation, das heißt durch Kombinieren, Zusammenführen und Konsolidieren der Zwischenergebnisse, in einem sogenannten Reduce-Vorgang berechnet. Daher werden diese Tasks als "Reduce-Tasks" bezeichnet.

Eine konkrete Implementierung des MapReduce-Algorithmus ist Apache Hadoop. Die verteilt arbeitende Software realisiert die eben beschriebenen Parallel-Computing-Prinzipien und besteht aus zwei zentralen Bestandteilen:

  • dem Hadoop Distributed File System (HDFS): Es erreicht eine hohe Fehlertoleranz und eine hohe Performance durch das Aufteilen und Verbreiten von Daten über eine große Zahl von Arbeitsknoten;

  • der Hadoop MapReduce-Engine: Sie nimmt Aufträge von Anwendungen an und unterteilt diese Aufträge in kleinere Aufgaben, die sie verschiedenen Arbeitsknoten zuordnet.

Vor mehreren Jahren hat die Apache Software Foundation die Hadoop-Plattform als Open-Source-Software freigegeben. Das in Java geschriebene Framework lässt sich auf mehrere Tausend Server skalieren, arbeitet fehlertolerant und gilt als Branchenstandard für Big-Data-Umgebungen.

Echtzeitanalyse - In-Memory-Datenbanken

Ein Hadoop-Cluster löst wie angedeutet nicht alle Big-Data-Aufgaben. Liegen die Daten auf der Festplatte, kannibalisieren langsame Datenbankzugriffe das, was man beim Parallelisieren gewonnen hat. Für die beschleunigte Verarbeitung extrem großer Datenmengen haben sich In-Memory-Datenbanken etabliert. Diese Datenbanken machen sich die Tatsache zunutze, dass das Speichern und Abrufen von Daten im Arbeitsspeicher (RAM) deutlich schneller vor sich geht als von Festplatten.

In-Memory-Datenbanken laden deshalb das gesamte Datenvolumen - zusammen mit den Datenbankanwendungen - in den Hauptspeicher, der dann entsprechend groß dimensioniert sein sollte. Dort kann die sehr schnelle Analyse erfolgen. Die Analyse von Geschäftsdaten kann mit In-Memory-Datenbanken praktisch in Echtzeit ausgeführt werden und nimmt nicht Tage oder gar Wochen in Anspruch.

Mit dem inzwischen recht populären HANA bietet SAP beispielsweise eine auf In-Memory-Technik basierende Applikation, die Mitte 2010 von ihren geistigen Vätern Hasso Plattner und Technik-Chef Vishal Sikka als Hochleistungsplattform für die analytische Bearbeitung großer Datenmengen entwickelt wurde.

In-Memory-Datenbanken sind inzwischen kein Nischenthema mehr. Laut einer von TNS-Infratest im Auftrag von T-Systems durchgeführten Studie haben 43 Prozent der deutschen Unternehmen In-Memory-Technologien zur Datenauswertung bereits im Einsatz oder planen dies für die nahe Zukunft. 90% verweisen dabei auf gute und sehr gute Erfahrungen.

V3: die drei Merkmale von Big Data im Überblick.
V3: die drei Merkmale von Big Data im Überblick.
Foto: PAC

Nicht nur SQL - NoSQL-Datenbanken

Für die effiziente Speicherung und Verwaltung unstrukturierter Daten haben sich im Big-Data-Umfeld NoSQL-Datenbanken etabliert. SQL ist bekanntlich die Abfragesprache für die klassischen, tabellenorientierten Datenbanken. NoSQL ist der Name einer Bewegung weg von den relationalen Datenbanken hin zu neuen beziehungsweise vergessenen Datenbankmodellen. Der Begriff "NoSQL" steht dabei nicht für "kein SQL", sondern für "nicht nur SQL" (= not only SQL).

NoSQL soll bestehende Datenbanktechnologien also nicht ersetzen, sondern ergänzen, und zusätzlich zu den klassischen Datenbanken eingesetzt werden. Entsprechende Daten können dann wieder in strukturierte Datensysteme überführt und als Kennzahlen beispielsweise in ein Data-Warehouse eingespeichert werden. Der Unterschied zu SQL-Datenbanken ist nicht so groß, wie man meinen möchte, zumal die Abfragen dieser Nicht-SQL-Datenbanken jenen in SQL ähneln.

In graphenorientierten Dateiformaten wie dem Resource Description Framework, kurz RDF, werden Informationen als Graphen in Form von Triples abgelegt.
In graphenorientierten Dateiformaten wie dem Resource Description Framework, kurz RDF, werden Informationen als Graphen in Form von Triples abgelegt.
Foto: Bitkom

Bei NoSQL-Datenbanken gibt es mehrere Varianten, die auf jeweils spezifische Probleme zugeschnitten sind. Eine Variante von NoSQL-Datenbanken sind beispielsweise Graphen-Datenbanken. Bei diesen Datenbanken werden unstrukturierte Daten in Diagrammen durch Knoten und Kanten zusammen mit ihren Eigenschaften gespeichert. Das dabei oft genutzte Datenbankformat RDF (Resource Description Framework) stellt ein Format ohne fixes Schema bereit, das die Informationen innerhalb der Graphen speichert. Eine typische Anwendung dafür ist die Darstellung von Nutzerbeziehungen innerhalb von sozialen Netzwerken.