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.
- Hadoop-Distributionen im Kurzprofil
Im Zuge von Big Data steigt in deutschen Unternehmen das Interesse an einem Framework für eine hoch skalierbare Infrastruktur zur Analyse großer Datenmengen. Die Open-Source-Variante Hadoop hat sich hier als Quasi-Standard etabliert. Mittlerweile sind jedoch auch Enterprise-Distributionen einiger Hersteller auf dem Markt, darunter auch IBM und Microsoft. Wir stellen sieben Anbieter und ihre Produkte vor. - Amazon Elastic MapReduce (EMR)
Amazons Cloud-basierter Service "Elastic MapReduce" (EMR) nutzt Hadoop für die Verteilung der Daten und die Verarbeitung auf einem skalierbaren Cluster. Dieses Cluster besteht aus Server-Instanzen, die Amazon EC2 (Elastic Compute Cloud) bereitstellt, sowie aus Speicherkapazitäten von Amazon S3. Ein Vorteil ist, dass der User ein EMR-Cluster in wenigen Minuten einrichten kann. Er muss sich weder um die Bereitstellung von Knoten noch um das Konfigurieren von Clustern und Hadoop kümmern. - Cloudera
Die US-Firma Cloudera zählt zu den bekanntesten Anbietern von Hadoop-Distributionen. Im März 2014 beteiligte sich Intel mit angeblich 720 Millionen Dollar an dem Unternehmen und brachte seine eigene Hadoop-Technik in die Partnerschaft ein. - Hortonworks
Die aktuelle Version 2.1 der "Hortonworks Data Platform" steht seit Kurzem zur Verfügung. Eine Besonderheit ist, dass Hortonworks nicht nur Linux, sondern auch Windows unterstützt. Die Hadoop-Distribution enthält unter anderem die Tools Stinger Solr und Storm, aber auch Lösungen für Sicherheit sowie IT- und Daten-Governance. - IBM mit InfoSphere BigInsights
IBMs Distribution "InfoSphere-BigInsights" wird von Forrester Research in einer Studie zu Hadoop-Distributionen von Anfang 2014 gut bewertet. Das überrascht ein wenig, weil das Unternehmen nicht unbedingt als Open-Source-Spezialist bekannt ist. Allerdings verfügt IBM über alle Tools und Kenntnisse, die für Big Data vonnöten sind: Datenbanken, Analysewerkzeuge, Erfahrung im Bereich Cluster und High-Performance-Computing, Datenmodellierungs-Tools etc. - Intel
Seinen Ausflug in Hadoop-Regionen hat Intel im März 2014 nach einem Jahr bereits wieder beendet. Mit der "Intel Distribution for Hadoop Software" hatte das Unternehmen eine Big-Data-Software-Plattform auf Basis von Hadoop entwickelt. Sie setzte weitgehend auf der Software von Apache auf, inklusive YARN. - MapR
MapR stellt laut einem Test von Flux7 eine Hadoop-Distribution zur Verfügung, die sich durch besonders hohe Performance auszeichnet. Dazu trägt das hauseigene File-System MapR-FS bei, das anstelle des Original-Dateisystems HDFS von Hadoop zum Zuge kommt. Weitere Besonderheiten sind die Unterstützung von NFS (Network File System), Änderungen an HBase, die sich in kürzeren Antwortzeiten niederschlagen, sowie die Option, unterschiedlichen Programmcode im Cluster laufen zu lassen. - Microsoft HDInsight
Mit "HDInsight Hadoop" stellt Microsoft eine Apache-Hadoop-Distribution über seine Cloud-Plattform Azure bereit. Auf der Entwicklerkonferenz "Build" gab Microsoft Anfang April 2014 in San Francisco bekannt, dass der Hadoop-Cloud-Service HDInsight Hadoop auf die aktuelle Version 2.2 upgedatet wurde. Zudem steht den Nutzern nun auch "Hadoop YARN" (Yet Another Resource Negotiator) zur Verfügung. Damit lassen sich auch Streaming-Daten verarbeiten. - Pivotal HD
Als Hadoop-Distribution, die im Gegensatz zur Standardversion der Software auch SQL-Datenbanken als Datenquellen nutzen kann, positioniert sich "Pivotal HD". Die Distribution basiert auf Hadoop 2.0 und verbindet EMCs Greenplum-Datenbank mit der Open-Source-Software. Die engen Bande zu EMC kommen nicht von ungefähr, weil Pivotal eine Ausgründung des Storage-Spezialisten ist.
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.
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.
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.