Apache Arrow 3.0: Das Big-Data-Framework erhält neue Rust-Features

Das Major Release des Frameworks für spaltenorientierte In-Memory-Verarbeitung umfasst 470 neue Features – insbesondere für Rust und C++.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 3 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

Apache Arrow ist mit zahlreichen Fehlerbereinigungen und neuen Funktionen in Version 3.0 erschienen: Drei Monate nach dem letzten Minor Release umfasst das Changelog der neuen Hauptversion 470 neue, überwiegend kleinere Features und rund 250 Bugfixes.

Der Schwerpunkt liegt dabei offenbar auf Neuerungen und Problembehebungen für Programmiersprachen, die in der Datenverarbeitung eine Rolle spielen: Rust, C++, Python und R, aber auch Java und Julia hat das Entwicklerteam mit Neuerungen versorgt. So unterstützt das neue Release in Rust Dezimaltypen, kann Zeitwerte aus geparsten CSV-Dateien auslesen und hat die Testing-Möglichkeiten für Rust erweitert, beispielsweise sind nun auch Flight-Tests möglich.

Die Apache Software Foundation (ASF) hatte das Framework für spaltenorientierte In-Memory-Datenverarbeitung Anfang 2016 zum Top-Level-Projekt erklärt. Apache Arrow 1.0 markierte den Übergang zu einer semantischen Versionierung der Arrow-Software-Bibliotheken, die neue Hauptversion 3.0 folgt diesem System und signalisiert mit der "runden" Versionsnummer ihre Auf- und Abwärtskompatibilität. Seit Arrow 1.0 gilt das Spaltenformat als binärstabil.

Apache Arrow bietet ein gemeinsames Speicherformat ohne Overhead für zahlreiche Big-Data-Systeme und schickt sich an, ein neuer Standard für spaltenorientierte In-Memory-Datenverarbeitung zu werden. Rückendeckung hatte das Projekt von Anfang an durch zahlreiche bei Apache gelistete Big-Data-Projekte wie Cassandra, Drill, HBase, Spark und Storm, aber auch Projekte außerhalb der ASF haben die Entwicklung gefördert, beispielsweise Pandas.

Unter anderem müssen Rust-Entwickler in der neuen Hauptversion von Apache Arrow nicht mehr bei jeder Änderung die Library neu aufbauen. Unter Rust lässt sich nun das Threading-Modell für eine Datenfusion neu implementieren und die Casting-Regeln für das Erstellen einer DataFusion sind konsistent mit dem Cast-Kernel, auch das Mergen und Akkumulieren von Daten soll vereinfacht sein. Flankierend hat das Arrow-Team sich der Fehler in DataFusion unter Rust angenommen, sodass Rust-Entwickler nun auf differenziertere Fehlermeldungen bauen dürfen, auch die Dokumentation dazu ist erweitert.

Für eine Reihe von Vorgängen in Apache Arrow erfährt Rust neuerdings SQL-Unterstützung, zum Beispiel bei den Tabellenbezügen und impliziter Syntax. Redundante Klone lassen sich bei der Datenfusion nun offenbar leichter entfernen. Die Authentifizierung für FlightRPC hat ein Redesign erfahren und unter C++ lassen sich jetzt Kernels für Strings und Binaries splitten. R unterstützt jetzt Tabellen in Apache Arrow Flight, und ebenfalls für R haben die Arrow-Entwickler einige Verbesserungen am Troubleshooting für die Linux-Installation verkündet.

Weitere Neuerungen betreffen unter anderem die Performance und das Testing in verschiedenen Programmiersprachen. Allein für Rust umfasst das Changelog über 300 Einträge, 249 davon sind neue Features. Auch C++ (90 neue Features), Python (30) und R (14) haben die Entwickler des Frameworks mit Neuerungen bedacht, sowie Java (12) und Julia (5). Insgesamt haben über hundert einzelne Entwicklerinnen und Entwickler Commits zu diesem Release beigesteuert.

Alle technischen Details lassen sich dem umfangreichen Changelog in den Release Notes entnehmen. Apache Arrow 3.0 steht auf einer Reihe von Mirrors zum Download bereit.

(sih)