Spaltenbasiert und In-Memory

Apache Arrow - der neue Turbo für Big-Data-Analysen?

Spezialgebiet Business-Software: Business Intelligence, Big Data, CRM, ECM und ERP; Betreuung von News und Titel-Strecken in der Print-Ausgabe der COMPUTERWOCHE.
Die Apache Foundation treibt mit Arrow ein neues Projekt voran, das Big-Data-Analysen deutlich beschleunigen soll. Ein zentraler Layer mit spaltenbasierter Datenhaltung und In-Memory-Datenverarbeitung soll Brücken in heterogen zusammengesetzten Big-Data-Infrastrukturen schaffen.

Die Ziele des Apache Arrow Projekts sind ambitioniert. Die Verantwortlichen des unter den Fittichen der Apache-Foundation vorangetriebenen Vorhabens wollen einen Defacto-Standard für spalten- und In-Memory-basiertes Analytics etablieren, der die Leistung und Interoperabilität der meisten Big-Data-Technologien neu definieren werde. "Ich gehe davon aus, dass in wenigen Jahren der Großteil sämtlicher weltweit neu produzierter Daten durch den Arrow-Layer laufen wird", sagte Jacques Nadeau, CTO des derzeit noch im Stealth-Modus agierenden Startups Dremio.

Apache Arrow als Schaltzentrale zwischen den einzelnen Big-Data-Systemen verspricht ein deutlich effizienteres Daten-Handling als Punkt-zu-Punkt-Verbindungen zwischen den einzelnen Bestandteilen einer Big-Data-Infrastruktur.
Apache Arrow als Schaltzentrale zwischen den einzelnen Big-Data-Systemen verspricht ein deutlich effizienteres Daten-Handling als Punkt-zu-Punkt-Verbindungen zwischen den einzelnen Bestandteilen einer Big-Data-Infrastruktur.
Foto: Apache

Arrow hat einen Blitzstart hingelegt. Während die meisten Apache-Projekte ein paar Jahre brauchen, um Fahrt aufzunehmen und die notwendigen Unterstützer um sich zu scharen, schnellt Arrow von Beginn an als Top-Level-Project aus den Apache-Startblöcken. Das Projekt wird von zahlreichen renommierten Entwicklern aus anderen Apache-Vorhaben unterstützt, unter anderem Cassandra, Hadoop, Impala, Spark und Storm. Aber auch außerhalb der Apache-Gemeinde hat Arrow bereits namhafte Unterstützer wie beispielsweise die drei großen Hadoop-Distributoren Cloudera, Hortonworks und Mapr sowie Unternehmen wie Salesforce und Twitter für sich gewinnen können. "Wegen der breiten Unterstützung und der Personen, die in das Projekt involviert sind, sehe ich das Ganze als die Gelegenheit, eine neue Lösungs-Generation für Dateninfrastruktur zu etablieren", sagte Nadeau.

Big Data verschwendet viel Leistung

Im Kern besteht Arrow aus drei Komponenten: einer spaltenbasierten Datenhaltung, In-Memory-Verarbeitung sowie einem Set von Libraries, um verschiedenste Datentypen und -formate sowie unterschiedliche Programmiersprachen zu unterstützen. Damit bildet Arrow eine Art Software-Zwischenlayer, um verschiedene Big-Data-Systeme effizient miteinander zu verknüpfen. Bislang würde an dieser Stelle viel Leistung verschwendet, so Nadeau. 70 bis 80 Prozent der CPU-Zyklen würden darauf verwendet, Daten zu sortieren und wieder neu zu ordnen, um sie zwischen den Systemen austauschen zu können. Das sei notwendig, da die einzelnen Big Data-Lösungen in aller Regel jeweils eine eigene Repräsentationsschicht für ihre Daten vorhalten.

Mit dem spaltenbasierten In-Memory-Buffer von Apache Arrow soll sich die vorhandene CPU-Leistung besser für die wirklichen Big-Data-Aufgaben, die Analyse der Daten, nutzen lassen.
Mit dem spaltenbasierten In-Memory-Buffer von Apache Arrow soll sich die vorhandene CPU-Leistung besser für die wirklichen Big-Data-Aufgaben, die Analyse der Daten, nutzen lassen.
Foto: Apache

Passend zum Thema: Teams, Tools und Tags

Teams, Tools und Tags - Foto: alphaspirit - shutterstock.com

Mit Arrow ließe sich dieser Overhead im Daten-Handling beseitigen, versprechen die Verantwortlichen des Apache-Projekts. Analytics- und Storage-Systeme im Big-Data-Umfeld ließen sich mit einer allgemeingültigen Repräsentation der Daten um den Faktor zehn bis 100 beschleunigen, sagte Nadeau. "Ein standardisierter, spaltenbasierter In-Memory-Daten-Layer versetzt Anwender in die Lage, verschiedene Systeme, Applikationen und Programmiersprachen in einem einzigen Workload zu vereinheitlichen", ergänzt Ted Dunning, Vice President des Project Management Committees (PMC) von Apache Arrow.

Arrow soll heterogen zusammengesetzte Systeme verbinden

Neben klassischen relational organisierten Daten unterstützt Arrow auch andere Datenobjekte wie beispielsweise JSON-Daten, die vor allem im Umfeld des Internet of Things (IoT) verwendet werden. An Programmiersprachen werden unter anderen C++, Java und Python unterstützt, die speziell auf analytische Workloads ausgerichtete Sprache R soll im Laufe des Jahres folgen. Etliche Apache-Projekte wollen Arrow bis Ende dieses Jahres integrieren, darunter Drill, Ibis, Impala, Kudu, Parquet und Spark. Die Verantwortlichen gehen davon aus, dass die Liste in den kommenden Monaten noch länger wird.

Mit den wachsenden Anforderungen im Big-Data-Umfeld kam in den vergangenen Jahren immer mehr Bewegung in den Markt für Datenbanken und Data Warehouses. Vor allem SAP sorgte mit seiner spaltenbasierten In-Memory-Datenbank HANA für Furore. Auch die anderen großen Anbieter wie IBM, Microsoft und Oracle forcierten ihre Entwicklungen in diesem Umfeld. Allerdings haben diese Hersteller ihre Technik meist mehr oder weniger fest in eigene Stacks mit teilweise engen Abhängigkeiten zwischen dem Applikations- und Infrastruktur-Layer gegossen - beispielsweise verknüpft SAP seine neue Anwendungsgeneration S/4HANA eng mit der darunterliegenden Datenbank, Oracle baut Appliances - auch für Big Data - in denen Hard- und Software eng aufeinander abgestimmte Systeme bilden.

Arrow - Alternative zu den großen Stacks?

Zum Leidwesen der Anwender, die die Abhängigkeit von einzelnen Anbietern in aller Regel möglichst gering halten wollen. So fordert beispielsweise die Deutschsprachige SAP Anwendergruppe (DSAG), dass SAP die Anwendungslogik von S/4HANA offenlege und damit anderen Datenbankanbietern die Möglichkeit bietet, mit HANA vergleichbare Produkte zu bauen. Kopfzerbrechen bereitet den Anwendern zudem, dass der Umstieg auf neue Technik der großen Hersteller meist mit einem größerem Aufwand verbunden ist, beispielsweise dem Wechsel der Datenbank oder der teuren Anschaffung einer Appliance. Ein standardisierter Layer mit spaltenbasierter Datenhaltung und In-Memory-Datenverarbeitung zwischen den Systemen im Gravitationszentrum der bestehenden Big-Data-Infrastrukturen in den Unternehmen könnte sich daher zu einer durchaus interessanten Alternative entwickeln.

Die Apache-Arrow-Software steht unter der Apache License v2.0 als Open-Source-Produkt allen Interessierten frei zur Verfügung.