Von Business Intelligence bis Business Analytics

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

Dr. Klaus Manhart hat an der LMU München Logik/Wissenschaftstheorie studiert. Seit 1999 ist er freier Fachautor für IT und Wissenschaft und seit 2005 Lehrbeauftragter an der Uni München für Computersimulation. Schwerpunkte im Bereich IT-Journalismus sind Internet, Business-Computing, Linux und Mobilanwendungen.

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 und 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.

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 so genannten 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 Parellel-Computing-Prinzipien und besteht aus den beiden zentralen Bestandteilen:

  • Dem Hadoop Distributed File System (HDFS): Es erreicht hohe Fehlertoleranz und 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.

Echtzeit-Analyse - In Memory Datenbanken

Ein Hadoop-Cluster löst wie angedeutet nicht alle Big Data Aufgaben. Liegen die Daten auf der Festplatte, kannibalisieren langsame Datenbankzugriffe, 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 Datenbank-Anwendungen - 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 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 Datawarehouse 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.

Zur Startseite