Apache Arrow
| Apache Arrow
| |
|---|---|
| Basisdaten
| |
| Entwickler | Apache Arrow Committee |
| Erscheinungsjahr | 17. Februar 2016[1] |
| Aktuelle Version | 22.0.0[2] (24. Oktober 2025) |
| Kategorie | Datenformat |
| Lizenz | Apache-Lizenz 2.0 |
| arrow.apache.org | |
Apache Arrow ist ein sprachunabhängiges Software-Framework für die Entwicklung von Datenanalyseanwendungen. Ein wesentlicher Bestandteil ist ein spaltenorientiertes In-Memory-Format. Es verwendet eine standardisierte, sprachunabhängige Spezifikation zur Darstellung hierarchisch strukturierter und tabellenähnlicher Datensätze im Arbeitsspeicher. Es ermöglicht effiziente Analysevorgänge auf moderner CPU- und GPU-Hardware. [3][4] Das Framework reduziert oder beseitigt Faktoren, die die Arbeit mit großen Datensätzen einschränken, wie die Volatilität oder die physikalischen Einschränkungen des dynamischen Arbeitsspeichers und kann so Kosten sparen.[5]
Interoperabilität
Arrow kann mit Apache Parquet, Apache Spark, NumPy, PySpark, pandas und anderen Datenverarbeitungsbibliotheken verwendet werden. Das Projekt umfasst native Programmbibliotheken, die in C, C++, C#, Go, Java, JavaScript, Julia, MATLAB, Python (PyArrow)[6], R (arrow_table)[7], Ruby und Rust geschrieben sind. Arrow ermöglicht Zero-Copy-Lesevorgänge und schnellen Datenzugriff sowie Datenaustausch ohne Serialisierungsaufwand zwischen diesen Sprachen und Systemen.
Anwendungen
Arrow wird in verschiedenen Bereichen eingesetzt, darunter Analytik[8], Genomik[9][10] und Cloud Computing.[11]
Vergleich mit Apache Parquet, ORC und DuckDB-Speicherformat
Apache Parquet, Apache ORC und DuckDB sind beliebte Beispiele für spaltenorientierte Datenformate auf Festplatte. Arrow wurde als Ergänzung zu diesen Formaten für die Verarbeitung von Daten im Arbeitsspeicher entwickelt.[12] Apache Arrow wurde als In-Memory-Format optimiert. Damit fallen Anforderungen wie Verschlüsselung und sparsame Speicherplatzverwendung sowie schneller Datentransfer durch komprimierte Datenpakete weg, die sowohl bei Apache Parquet und ORC wichtige Merkmale darstellen. Der Wegfall von Verschschlüsselung und Datenkomprimierung reduziert die CPU-Last erheblich.[13] Die Projekte Arrow und Parquet umfassen Bibliotheken, die das Lesen und Schreiben von Daten zwischen den beiden Formaten ermöglichen.[6]. Das Format von DuckDB ähnelt dem von Apache Arrow, ist aber noch mehr auf Ausführung von Analyse-Abfrage ausgelegt, verfügt aber für das Abspeichern auf Festplatten über Komprimierungs-Algorithmen.[14]
Einzelnachweise
- ↑ Origin and History of Apache Arrow. (abgerufen am 16. November 2025).
- ↑ Release 22.0.0. 24. Oktober 2025 (abgerufen am 11. November 2025).
- ↑ Apache Arrow Overview. The Apache Software Foundation, abgerufen am 16. November 2025 (amerikanisches Englisch).
- ↑ Serdar Yegulalp: Apache Arrow aims to speed access to big data. In: InfoWorld. 17. Februar 2016, abgerufen am 16. November 2025 (amerikanisches Englisch).
- ↑ Tanveer Ahmad: ArrowSAM: In-Memory Genomics Data Processing through Apache Arrow Framework. 21. August 2019, abgerufen am 16. November 2025 (englisch).
- ↑ a b Python — Apache Arrow v22.0.0. Abgerufen am 16. November 2025.
- ↑ 7 Manipulating Data - Tables | Apache Arrow R Cookbook. (apache.org [abgerufen am 16. November 2025]).
- ↑ Thomas W. Dinsmore: In-Memory Analytics. In: Disruptive Analytics: Charting Your Strategy for Next-Generation Business Analytics. Apress, Berkeley, CA 2016, ISBN 978-1-4842-1311-7, S. 97–116, doi:10.1007/978-1-4842-1311-7_5.
- ↑ Francesco Versaci, Luca Pireddu, Gianluigi Zanetti: Scalable genomics: from raw data to aligned reads on Apache YARN. 22. Februar 2017, abgerufen am 16. November 2025 (englisch).
- ↑ Tanveer Ahmad, Nauman Ahmed, Johan Peltenburg, Zaid Al-Ars: ArrowSAM: In-Memory Genomics Data Processing Using Apache Arrow. 6. April 2020, abgerufen am 16. November 2025 (englisch).
- ↑ Martin Maas, Krste Asanović, John Kubiatowicz: Return of the Runtimes: Rethinking the Language Runtime System for the Cloud 3.0 Era. In: Proceedings of the 16th Workshop on Hot Topics in Operating Systems (= HotOS '17). Association for Computing Machinery, New York, NY, USA 2017, ISBN 978-1-4503-5068-6, S. 138–143, doi:10.1145/3102980.3103003 (acm.org [abgerufen am 16. November 2025]).
- ↑ Julien LeDem: Apache Arrow and Apache Parquet: Why We Needed Different Projects for Columnar Data, On Disk and In-Memory. In: KDnuggets. Abgerufen am 16. November 2025 (amerikanisches Englisch).
- ↑ Daniel Abadi: DBMS Musings: Apache Arrow vs. Parquet and ORC: Do we really need a third Apache project for columnar data representation? In: DBMS Musings. 31. Oktober 2017, abgerufen am 16. November 2025.
- ↑ Mark Raasveldt: DuckDB – In-Process Analytical Database System. Folien für einen Kurs an der Carnegie Mellon University. S. 40 (cmu.edu [PDF]).