Lösung für Big Data

Hadoop und SQL rücken enger zusammen

11.11.2013
Von  und
Dr. Jens Albrecht ist Professor an der Hochschule für angewandte Wissenschaften Würzburg-Schweinfurt (FHWS), Fakultät für Informatik und Wirtschaftsinformatik.


Sascha Alexander ist seit vielen Jahren als Redakteur, Fachautor, Pressesprecher und Experte für Content-Strategien im Markt für Business Intelligence, Big Data und Advanced Analytics tätig. Stationen waren unter anderem das Marktforschungs- und Beratungshaus BARC, die "Computerwoche" sowie das von ihm gegründete Portal und Magazin für Finanzvorstände CFOWORLD. Seine Themenschwerpunkte sind: Business Intelligence, Data Warehousing, Datenmanagement, Big Data, Advanced Analytics und BI Organisation.

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

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)