Big Data stellt die IT-Infrastruktur von Unternehmen und öffentlichen Einrichtungen vor neue Herausforderungen. Große Datenmengen, die zudem in unterschiedlichen Formaten vorliegen, lassen sich nicht mit herkömmlichen Techniken erfassen, bearbeiten und auswerten - und dies schon gar nicht in Echtzeit. Dazu sind neue Ansätze erforderlich.
Big Data bietet Unternehmen und öffentlichen Einrichtungen einen vielfältigen Nutzen. Firmen können beispielsweise wertvolle Informationen über die Zufriedenheit von Kunden, deren Wünsche und neue Markttrends gewinnen. Dazu werten sie das Kaufverhalten und Rückmeldungen beim User-Support aus, oder sie analysieren die Beiträge in sozialen Netzwerken. Behörden und öffentliche Einrichtungen erhalten dank Big Data valide Daten, die sich beispielsweise für die Stadtentwicklung oder die Verkehrsplanung heranziehen lassen.
Allerdings setzt Big Data eine IT-Infrastruktur voraus, die auf die speziellen Anforderungen zugeschnitten ist. Ein Merkmal von Big Data ist, dass große Mengen von Daten - von mehreren TByte bis hin zu PByte - erfasst, aufbereitet und analysiert werden müssen. Zudem stammen diese Daten aus unterschiedlichen Quellen und liegen in keinem einheitlichen Format vor. Neben strukturierten Daten sind unstrukturierte Daten wie E-Mails und Audio-Files anzutreffen. Sie machen etwa 80 Prozent des gesamten Informationsbestands aus. Hinzu kommen semistrukturierte Daten wie RSS-Feeds sowie polystrukturierte Informationen wie Datensätze in Form von XML-Dokumenten. Eine weitere Anforderung ist: Die Resultate von Big-Data-Analysen sollen in Echtzeit verfügbar sein. Eine herkömmliche Business-Intelligence-Lösung für Big Data einzusetzen, funktioniert in der Praxis nicht. Ein wesentlicher Grund ist, dass die zugrunde liegenden Data Warehouses auf relationalen Datenbanksystemen basieren. Diese sind für strukturierte Daten ausgelegt. Unstrukturierte Informationen müssen zuvor aufbereitet werden. Dies wiederum erfordert erhebliche Server-Ressourcen.
Neue Ansätze erforderlich
Eine vertikale Server-Skalierung (Scale up) bietet dort keinen Ausweg. Denn für die physischen Ressourcen eines Server-Systems gelten Grenzen - von derzeit etwa 128 Prozessorkernen, 4 TByte Arbeitsspeicher, 10 bis 50 TByte Plattenspeicher und einer Netzwerkbandbreite von 40 GBit/s. Zwar werden sich diese Werte im Lauf der Zeit nach oben verschieben. Aber jeder Performance-Gewinn wird durch das schnelle Wachstum der Datenmengen mehr als kompensiert.
Bei einem Scale-out-Ansatz, also einer horizontalen Server-Skalierung in Verbindung mit relationalen Datenbanken, können sich dagegen die Speicherverbindungen zum Flaschenhals entwickeln. Zudem steigt der Aufwand für die Koordination der Zugriffe auf gemeinsam genutzte Daten, je mehr Datenbank-Server zum Einsatz kommen.
Verteilte Parallelverarbeitung
Einen Ausweg bietet eine Parallelisierung auf der Basis einer Shared-Nothing-Architektur und nicht blockierenden Netzwerken. Sie garantiert in einer Big-Data-Umgebung eine reibungslose Kommunikation zwischen den Servern. Das Konzept sieht eine Verteilung der I/O-Prozesse auf mehrere Server-Knoten vor. Dazu lassen sich Datenuntermengen in den lokalen Speicher der Server-Systeme auslagern. In vergleichbarer Weise erfolgt dies bei der Bearbeitung der Daten: Rechenprozesse werden auf diejenigen Server-Knoten verschoben, auf denen die Daten vorhanden sind.
Parallelisierung hat mehrere Vorteile. Bearbeiten viele Knoten eine Abfrage, reduziert sich die Bearbeitungszeit und Analyseresultate stehen schneller zur Verfügung. Zudem lässt sich eine solche Lösung hervorragend skalieren: Der Anwender kann mit wenigen Knoten starten und bei Bedarf weitere hinzufügen. Eine solche Infrastruktur lässt sich somit linear und ohne Obergrenze horizontal erweitern.
In-Memory-Datenbanken als Turbo
Ein zentrales Element von Big Data ist, dass die Analyseergebnisse schnellstmöglich zur Verfügung stehen. Dies setzt adäquate Verfahren für das Speichern der Daten voraus. Dabei kommen In-Memory-Datenbanken (IMDB) ins Spiel. Nach Erfahrungswerten, die beispielsweise Fujitsu im Rahmen von Big-Data-Projekten mit SAP Hana sammelte, laufen Datenanalysen bei Einsatz einer IMDB etwa um den Faktor 1.000 bis 10.000 schneller ab als bei Verwendung konventioneller Datenbanktechniken.
Bei einer In-Memory-Datenbank wird das gesamte Datenvolumen zusammen mit den Datenbankanwendungen in den Hauptspeicher des Servers geladen. Dabei spielt es keine Rolle, ob es sich um eine SQL- oder NoSQL-Datenbank handelt. Auf Festplatten kann der Anwender bei diesem Ansatz komplett verzichten. Diese dienen nur noch für das Ablegen von Protokolldaten und Sicherungskopien für den Fall, dass beispielsweise wegen eines Stromausfalls der Inhalt des Hauptspeichers verloren geht.
Da bei einer In-Memory-Datenbank das Einlesen der Daten von einem - langsamen - Plattenspeicher entfällt, lassen sich die Informationen extrem schnell speichern, abrufen und sortieren. Die Analyse von Geschäftsdaten lässt sich somit in Echtzeit durchführen. Bei Business-Intelligence-Lösungen, die konventionelle Techniken wie relationale Datenbanken mit Festplattenspeichern nutzen, dauern solche Auswertungen Tage oder gar Wochen.
Daten replizieren
Im Normalfall sind In-Memory-Datenbanken vertikal zu skalieren. Einige IMDB-Lösungen wie SAP Hana bieten auch eine horizontale Skalierung an, das heißt, einem Cluster werden weitere Server hinzugefügt. Um die Persistenz der Daten bei einer IMDB zu gewährleisten, gibt es mehrere Optionen. Am sichersten ist das Replizieren der Daten auf Festplatte - und dies in Echtzeit. In vergleichbarer Weise lassen sich in einem Server-Cluster synchronisierte Datenkopien auf andere Server-Knoten verteilen. Allerdings reduziert dies die verfügbare Nettospeicherkapazität.
Über die verteilte Parallelverarbeitung lassen sich Daten, die aus unterschiedlichen Quellen stammen, vorverarbeiten und in ein für die anstehenden Analyseaufgaben optimales Format bringen, bevor diese schließlich in die In-Memory-Datenbank exportiert werden. Alle weiteren Analyseschritte erfolgen ausschließlich im Hauptspeicher.
Alternative: In-Memory Data Grid
Kommt eine In-Memory-Datenbank nicht infrage, bietet sich als Alternative ein In-Memory Data Grid (IMDG) zwischen dem Plattenspeicher und den Applikationen an. Ein IMDG ist ein über mehrere Server verteilter speicherresidenter Cache-Speicher. Da dieses Konzept die I/O-Last reduziert, erlaubt es ebenfalls Datenanalysen in Echtzeit. Hohe Verfügbarkeit der Daten lässt sich durch das Replizieren der Informationen auf mehrere Server sicherstellen. Bei Ausfall eines Servers übernehmen andere Systeme dessen Funktion. Datenverluste nach einem Stromausfall können lokale Datenspeicher in den Servern verhindern - etwa Solid State Drives. Auch ein IMDG kann der Anwender durch Hinzufügen von Servern auf einfache Weise erweitern.
Complex Event Processing zur Echtzeitanalyse
Sind überwiegend Daten wie Clickstreams oder Sensordaten in Echtzeit zu verarbeiten, kommt ein sogenanntes Complex Event Processing (CEP) hinzu. Dieses ermöglicht die Echtzeitanalyse der Datenströme nach vorab definierten Regeln. Dazu werden die Daten nach bestimmten Regeln gefiltert und miteinander korreliert. Treten innerhalb eines bestimmten Zeitintervalls genügend Übereinstimmungen - oder je nach Projekt zu wenig Übereinstimmungen - in den Datensätzen auf, löst das System einen Alarm aus und leitet in Echtzeit eine bestimmte Maßnahme ein.
Typischerweise muss eine CEP-Engine Hundertausende oder gar Millionen von Ereignissen pro Sekunde bewältigen. Die Latenzwerte (Zeit zwischen Ereignisein- und -ausgabe) betragen typischerweise wenige Mikro- oder Millisekunden. Um zeitintensive I/O-Vorgänge einzusparen, kommt als "Sammelbehälter" für die Streaming-Daten deshalb oft ein über mehrere Server verteilter In-Memory-Cache zum Einsatz. Zur Vermeidung von Datenverlusten nach Server-Ausfällen lassen sich die Daten auf mehrere Server-Knoten replizieren.
Im Rahmen eines Big-Data-Projekts sollten Anwender neben der Auswahl der richtigen Techniken einen weiteren Faktor berücksichtigen: Die Implementierung von Techniken wie In-Memory-Datenbanken, IMDGs und Server-Clustern erfordert spezielles Know-how.
IT-Abteilungen benötigen Hilfe
Dies gilt vor allem für die Integration solcher Lösungen in die vorhandene IT-Infrastruktur. Die IT-Abteilungen vieler Unternehmen sind damit oft überfordert. Damit eine Big-Data-Lösung schnell und problemlos in Betrieb gehen kann, bietet es sich deshalb an, vorkonfigurierte Hardwarepakete eines renommierten Anbieters einzusetzen. Diese reduzieren die Vorlaufzeit bis zum Produktiveinsatz einer Big-Data-Infrastruktur.
Fujitsu beispielsweise bietet seine Power Appliances for SAP Hana zur Implementierung einer IMDB an sowie als IMDG-Lösung den Server Terracotta Bigmemory, der aus einer Kooperation mit der Software AG hervorgegangen ist, und flankiert die Projekte mit entsprechenden Services.