Lösungen für Big Data

Hadoop und SQL rücken enger zusammen

22.11.2013 von Sascha  Alexander und Jens Albrecht
Das Hadoop-Framework hat sich zu einem De-Facto-Standard für Big-Data-Anwendungen gemausert. Damit einher geht eine wachsende Bedeutung der Open-Source-Technik für den kommerziellen Datenbank-Markt.

Innovative Lösungen setzen die alteingesessenen Datenbankhersteller unter Druck, Hadoop mit ihren relationalen Datenbanksystemen zu verknüpfen. Klassische relationale Datenbanksysteme stoßen im Umfeld von Big Data vielfach an ihre Grenzen, denn große Datenbanken im Multi-Terabyte-Bereich erfordern schnellen Storage, leistungsstarke Server und damit meist auch viele CPU-Lizenzen. Als Ergänzung setzen Unternehmen deshalb inzwischen immer häufiger das Open-Source-Framework Hadoop ein. Apache Hadoop besteht im Kern aus zwei Komponenten:

Hadoop - der neue Stern am Datenbankhimmel
Foto: Apache.org

Stärken und Schwächen von Hadoop

Hinter MapReduce verbirgt sich grundsätzlich das Programmierparadigma, Rechenaufträge stark parallelisiert auf einer Vielzahl von Rechnerknoten abzuarbeiten. MapReduce basiert dabei im Kern auf Ideen von Google, das den Algorithmus ursprünglich dazu entwickelt hat, um einen eigenen Such-Index aus den Web-Inhalten zu erstellen. Ein wesentliches Ziel des Verfahrens ist die parallele Verarbeitung von Jobs auf einer Low-Cost-Hardware-Infrastruktur bestehend aus Standard-Servern. Neben der Skalierungsfähigkeit liegt der große Vorteil eines solchen Gesamtsystems in seiner Fehlertoleranz: Ausfälle einzelner Maschinen lassen sich jederzeit tolerieren und durch die anderen Rechner auffangen.

Allerdings werden bei der Hadoop-Implementierung für jeden Prozessschritt eigene Betriebssystemprozesse gestartet, so dass das Verfahren grundsätzlich etliche Sekunden Overhead benötigt. Sofern wie bei Google oder Yahoo viele Dateien im Batch gelesen und verarbeitet werden müssen, fällt dieser Overhead nicht ins Gewicht. Interaktive Analysen auf relationalen Datenbanken sind damit aber nicht möglich. Hadoop eignet sich daher zunächst nur für die Speicherung und Vorverarbeitung von Big Data. Für Business Intelligence auf polystrukturierten Daten im HDFS ist das Framework nicht ohne weiteres einsetzbar.

Im Kern sind MapReduce-Jobs Java-Programme. Allerdings bietet Hadoop mit der Zusatzsoftware "Hive" einen relationalen Wrapper. Hive übersetzt klassische SQL-Anfragen in MapReduce-Code und führt ihn aus. Ein Zugriff auf Hadoop via Open Database Connectivity (ODBC) und Java Database Connectivity (JDBC), den herkömmlichen Verbindungswegen in eine relationale Datenbank, ist damit prinzipiell möglich. Allerdings unterstützt Hive nur SQL-Basisfunktionen und arbeitet aufgrund der Verwendung des MapReduce-Frameworks ebenso Batch-orientiert.

Auch wenn Lizenz- und Hardware-Kosten für Hadoop auf den ersten Blick gering erscheinen, gilt es für Anwender, einige weitere Kostenfaktoren zu beachten. Sowohl beim Betrieb als auch für den Zugriff auf die Daten ist Spezialwissen erforderlich, das häufig extern eingekauft werden muss. Zudem fehlen in der Apache-Basisversion für den geschäftskritischen Betrieb notwendige Überwachungs- und Sicherheitsfunktionen. Kommerzielle Distributionen von Cloudera, Hortonworks oder IBM schaffen hier zwar Abhilfe, verursachen allerdings im Gegenzug Lizenz- und Wartungsgebühren, die den Kostenvorteil schrumpfen lassen.

Big Data in Zahlen
Karl Valentin hat einmal das Bonmot geprägt, schwer sei leicht was. Das kann man für den Trend Big Data mit Sicherheit auch behaupten. Sinnvoll in der Theorie, schwer in der Realisierung. Wir liefern ein paar Fakten.
Welche Probleme sehen Sie beim Einsatz von Big Data?
Big-Data-Konzepte werden nicht vorangetrieben, weil es an den richtigen Skills fehlt.<br> Angaben in Prozent; n = 206; Mehrfachnennungen möglich; Quelle: BARC

Relationale Datenbanken und Hadoop verknüpfen

Trotz dieser Beschränkungen lassen sich echte Big-Data-Anwendungen (mehrere Terabyte und polystrukturierte Daten) ohne Hadoop kaum wirtschaftlich realisieren. Von daher ist es nicht verwunderlich, dass praktisch alle namhaften Anbieter im Datenbankmarkt das quelloffene Framework auf die eine oder andere Weise in ihr Produktportfolio einbinden. Ein Import-Export-Konnektor für den direkten Datenimport aus Hadoop kann heute bereits als Standard angesehen werden. Basis hierfür ist in der Regel die zu Hadoop gehörende Anwendung "Sqoop" oder eine entsprechende hersteller-spezifische Adaption.

Viele Datenbanksysteme bieten über sogenannte External Tables alternativ die Möglichkeit, über SQL auf Dateien zuzugreifen. Die Daten, die zum Beispiel in Form von Text-Dateien abgelegt sind, werden dabei nicht in die relationale Datenbank geladen. Stattdessen werden die Dateien als "External Tables" deklariert. Man nennt dieses Verfahren auch "Schema-on-Read", da dabei das relationale Schema lediglich als virtuelle Struktur über die Dateien gelegt wird und somit auch unterschiedliche Schemata für ein und dieselbe Text-Datei möglich sind. Diesen Mechanismus haben beispielsweise Oracle, Teradata Aster, EMC Greenplum und Microsoft implementiert.

Eher Import als Interaktion

Da auch beim SQL-Zugriff auf Daten im HDFS über External Tables die Dateien immer komplett gelesen werden, eignet sich das Verfahren hauptsächlich für den Import in die relationalen Systeme und weniger für interaktive Datenzugriffe. Letzteren Aspekt adressieren einige neuentwickelte SQL-Datenbanken wie "Cloudera Impala", "EMC Pivotal HD/HAWQ", "Rainstor" oder "IBM BigSQL". Diese Systeme basieren nicht wie bislang üblich auf einem Unix- oder Windows-File-System, sondern auf dem Hadoop File System (HDFS). Ziel dabei ist es, eine kostengünstige, hochverfügbare, skalierbare Big-Data-Plattform bereitzustellen, die interaktive Abfragen mit SQL ermöglicht. Performance-Gewinne lassen sich dadurch erreichen, dass statt oder zumindest alternativ zum Hadoop-MapReduce-Verfahren eigene SQL-Engines eingesetzt werden, die für kurze Antwortzeiten statt für Batch-Verarbeitung optimiert sind.

Neben der Hadoop-Schnittstelle bieten einige Datenbankhersteller über eigene Implementierungen von MapReduce die Möglichkeit, Datenzugriffe durch spezielle User-Defined Functions innerhalb der relationalen Datenbank zu parallelisieren (In-Database MapReduce). So unterstützt beispielsweise "Teradata Aster" auf MapReduce basierende Built-In und User-Defined Table Functions, die sehr eng auf die eigene ohnehin parallel arbeitende Architektur abgestimmt sind. Auch Oracle bietet seit der Version 11 seines Datenbanksystems die Möglichkeit, mit Hilfe von Pipelined Table Functions das MapReduce-Paradigma zu nutzen. Darüber hinaus hat der US-amerikanische Softwarekonzern eine zu Hadoop Code-kompatible Neuimplementierung angekündigt.

Neben diesen klassischen relationalen Datenbanksystemen verfügen insbesondere NoSQL-Datenbanken, die ebenso wie Hadoop für die Skalierung auf kostengünstiger Hardware konzipiert wurden, über eigene MapReduce-Implementierungen. Beispiele sind "CouchDB", "MongoDB" oder "Riak".

Trendthema Big Data
Von der Auswertung der riesigen Datenmengen, die täglich von IT-Systemen erfasst werden, versprechen sich Unternehmen, aber auch öffentliche Einrichtungen große Vorteile.
Vorteile von Big Data
Laut der Untersuchung von Barc erwarten sich Unternehmen von Big Data vor allem Vorteile auf strategischer Ebene. Doch das setzt voraus, dass Fachleute aus unterschiedlichen Bereichen Hand in Hand arbeiten: Business Manager, IT-Fachleute und Experten für das Sammeln und Auswerten von großen Datenbeständen.
Benno Zollner, Chief Information Officer von Fujitsu Technology Solutions
" Big Data Lösungen kombinieren Informationen aus unterschiedlichen Quellen und einer Vielzahl von Technologien. Deshalb müssen Big-Data-Fachleute interdisziplinäre Erfahrungen mitbringen."
Big Data: Wer analysiert?
Die Analyse der Daten, die im Rahmen von Big-Data-Projekten erfasst werden, erfolgt laut einer Studie von TCS vornehmlich durch die Fachabteilungen, die diese Informationen verwenden. Die IT-Abteilung spielt eine untergeordnete Rolle.
Kay Müller-Jones, Head of Global Consulting Practice bei Tata Consultancy Services:
"Neben technischen Fertigkeiten und fachlichem Wissen sollten Big-Data-Fachleute über ein hohes Maß an Fingerspitzengefühl im Umgang mit Kollegen verfügen. Denn gerade Big Data erfordert ein fachbereichsübergreifendes Denken, das Informationen aus vormals klar abgegrenzten Bereichen zusammenführt."
Big Data, die Probleme
Laut einer Studie des Marktforschungsinstituts Barc zählt fehlendes Fachwissen zu den größten Hemmnissen, mit denen sich europäische Unternehmen bei Big-Data-Projekten konfrontiert sehen.
Big Data: Wer ist zuständig?
Die Verarbeitung, das "Processing", von Big Data ist Aufgabe von IT-Fachleuten. Das können hauseigene Mitarbeiter sein, aber auch externe Spezialisten.
Analytische Infrastruktur für Big Data

Als richtungsweisend könnten sich hybride Systeme erweisen, welche über intelligente Mechanismen sowohl die klassische relationale Speicherung als auch die Datenablage in Hadoop unterstützen. Das erste System mit einem hybriden Ansatz war "Hadapt", das strukturierte Daten relational, unstrukturierte Daten hingegen im HDFS verwaltet. Für die relationale Verarbeitung wird auf jedem Knoten des Hadoop-Clusters eine Instanz von "PostgreSQL" betrieben. Ebenfalls in die Klasse der hybriden Systeme einzuordnen ist Microsofts "Polybase". Polybase ermöglicht die Integration von Hadoop in das "SQL Server Parallel Data Warehouse" (PDW). Einige Funktionalitäten, die sich effizienter auf der relationalen Seite als in Hadoop abbilden lassen, übernimmt dabei schon heute das PDW. Für die Zukunft ist eine Erweiterung des kostenbasierten Optimierers geplant, um dynamisch den Datenzugriff zu optimieren.

Wie reif ist Hadoop?

Hadoop ist längst den Kinderschuhen entwachsen und stellt eine sinnvolle Ergänzung der vorhandenen Datenhaltungssysteme für Big-Data-Anwendungen dar. Insbesondere bei Anwendungsfällen, in denen es um große Mengen unstrukturierter Daten geht, führt kaum ein Weg an dem Open-Source-Framework beziehungsweise einer der kommerziellen Distributionen vorbei.

Auch eine Integration mit vorhandenen relationalen Datenbanksystemen ist bereits heute meist problemlos möglich. Darüber hinaus werden Hadoop-basierte Systeme auch für die Ablage strukturierter Massendaten immer interessanter. Ähnlich wie beim hierarchischen Speicher-Management auf Ebene der Datenträger könnte die relationale Datenhaltung im Big-Data-Umfeld bald durch Hadoop-Komponenten kosten- und leistungsmäßig optimiert werden. (ba/sh)