Apache Arrow

Apache Arrow

Basisdaten

Entwickler Apache Arrow Committee
Erscheinungsjahr 17. Februar 2016[1]
Aktuelle Version 25.0.1[2]
(10. August 2026)
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]

Geschichte

Apache Arrow ist seit 2016 ein Apache Top Level Projekt. Im Jahr 2005 wurde von MonetDB eine wissenschaftliche Arbeit vorgestellt in der die Architektur einer neuen SIMD-Instruktionen verwendende vektorbasierte Query-Engine für MonetDB beschrieben wurde. Die Leistung fiel aber stark ab, wenn der Cache überlastet wurde. Erst mit dem Erscheinen des Google Demel Paper[6][7] wurden Wege aufgezeigt, die spaltenorientierte Datenbanken effizient einsetzbar machten. Darauf hin entwickelten Twitter und Cloudera entwickelten darauf hin Apache Parquet und Hortonworks in Zusammenarbeit mit Facebook Apache ORC. Parquet und ORC führten zu einer signifikanten Effizienzsteigerung im Daten-Prozessing von Hadoop. Apache Arrow wurde später von dremel.io entwickelt um Daten aus diesen spaltenorienten Speicherformaten im Hauptspeicher zwischen unterschiedlichen Programmiersprachen wie Java, C++, Python und R zu verschieben und direkt auswertbar zu machen.[8]

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)[9], R (arrow_table)[10], 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[11], Genomik[12][13] und Cloud Computing.[14]

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.[15] 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 Verschlüsselung und Datenkomprimierung reduziert die CPU-Last erheblich.[16] Die Projekte Arrow und Parquet umfassen Bibliotheken, die das Lesen und Schreiben von Daten zwischen den beiden Formaten ermöglichen.[9] 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.[17]

Einzelnachweise

  1. Origin and History of Apache Arrow. (abgerufen am 16. November 2025).
  2. Release 25.0.1. 10. August 2026 (abgerufen am 11. August 2026).
  3. Apache Arrow Overview. The Apache Software Foundation, abgerufen am 16. November 2025 (amerikanisches Englisch).
  4. Serdar Yegulalp: Apache Arrow aims to speed access to big data. In: InfoWorld. 17. Februar 2016, abgerufen am 16. November 2025 (amerikanisches Englisch).
  5. Tanveer Ahmad: ArrowSAM: In-Memory Genomics Data Processing through Apache Arrow Framework. 21. August 2019, abgerufen am 16. November 2025 (englisch).
  6. Sergey Melnik et al.: Dremel: Interactive Analysis of Web-Scale Datasets. In: VLDB Endowment Inc. (Hrsg.): Proceedings of the VLDB Endowment. Vol. 3, Nr. 1-2, ISSN 2150-8097, S. 330–339, doi:10.14778/1920841.1920886 (englisch, vldb.org [PDF]).
  7. Sergey Melnik et al.: Dremel: A Decade of Interactive SQL Analysis at Web Scale∗. In: VLDB Endowment Inc. (Hrsg.): Proceedings of the VLDB Endowment. Vol. 13, Nr. 12, ISSN 2150-8097, S. 3461–3472, doi:10.14778/3415478.3415568 (englisch, vldb.org [PDF]).
  8. Dremio: Origin and History of Apache Arrow. In: Dremio. 20. Juni 2018, abgerufen am 16. November 2025 (amerikanisches Englisch).
  9. a b Python — Apache Arrow v22.0.0. Abgerufen am 16. November 2025.
  10. 7 Manipulating Data - Tables | Apache Arrow R Cookbook. (apache.org [abgerufen am 16. November 2025]).
  11. 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.
  12. 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).
  13. 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).
  14. 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]).
  15. 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).
  16. 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.
  17. Mark Raasveldt: DuckDB – In-Process Analytical Database System. Folien für einen Kurs an der Carnegie Mellon University. S. 40 (cmu.edu [PDF]).

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.