Top-Fragen
Zeitleiste
Chat
Kontext

Apache Arrow

Spaltenorientiertes Datenanalyse Framework Aus Wikipedia, der freien Enzyklopädie

Apache Arrow
Remove ads

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]

Schnelle Fakten Basisdaten ...
Remove ads

Geschichte

Appache 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 Progammiersprachen wie Java, C++, Python und R zu verschieben und direkt auswertbar zu machen.[8]

Remove ads

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.

Remove ads

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 Verschschlü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

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads