Vergleichen
Arrow und Zarr im Vergleich
Apache Arrow spezifiziert ein sprachunabhängiges spaltenorientiertes Speicherformat und Serialisierung zum Datenaustausch. Zarr speichert N-dimensionale Arrays als Chunks samt Metadaten.
Welches Format sollten Sie wählen?
Wählen Sie Arrow zur Weitergabe tabellarischer Daten im Speicher zwischen Analyseprozessen, gegebenenfalls ohne Kopie. Für persistente große Arrays mit selektivem Chunk-Lesen kommt Zarr infrage. Arrow IPC und das Arrow-Speicherformat hängen zusammen, sind aber nicht dasselbe.
Geeignet für Apache Arrow IPC
Spaltenorientierte Tabellendaten zwischen kompatiblen Programmen und Sprachen austauschen · Analysedatensätze zwischen Arrow-fähigen Werkzeugen übertragen
- Typisierte Daten zwischen Arrow-Bibliotheken und Analyse-Engines bewegen
- Im IPC-Dateiformat gezielt auf Record Batches zugreifen
Geeignet für Zarr
Große mehrdimensionale Arrays blockweise speichern und austauschen · Wissenschaftliche Daten in Cloud-Objektspeichern nutzen
- Ausgewählte Bereiche großer Arrays effizient lesen
- Aufgeteilte Datensätze zwischen kompatiblen Werkzeugen teilen
Grundlegende Informationen
| Merkmal | Apache Arrow IPC | Zarr |
|---|---|---|
| Dateiendung | .arrow, .feather, .arrows | .zarr |
| MIME-Typ | application/vnd.apache.arrow.file, application/vnd.apache.arrow.stream | |
| Häufige Verwendung | Spaltenorientierte Tabellendaten zwischen kompatiblen Programmen und Sprachen austauschen · Analysedatensätze zwischen Arrow-fähigen Werkzeugen übertragen | Große mehrdimensionale Arrays blockweise speichern und austauschen · Wissenschaftliche Daten in Cloud-Objektspeichern nutzen |
| Öffnen | Lesen Sie die Datei mit einer Apache-Arrow-Bibliothek oder einem Analysewerkzeug mit Arrow-IPC-Unterstützung. .arrow steht üblicherweise für das Dateiformat, .arrows für den Datenstrom. Prüfen Sie, welches IPC-Format das empfangende Werkzeug erwartet und welche Codecs es unterstützt. Bei Feather-Dateien sollte auch die Kompatibilität mit dem älteren Feather V1 geprüft werden. | Verwenden Sie eine Zarr-fähige Bibliothek oder Analyseanwendung. Prüfen Sie Version, Arrayform, Blockraster, Codecs und Attribute. Bewahren Sie das vollständige lokale Verzeichnis oder nötige Objektschlüssel auf. |
| Exportieren oder konvertieren | Parquet kann für die Speicherung und Verteilung von Analysedaten geeignet sein, CSV für den einfachen Tabellenaustausch. Bei der Konvertierung können Arrow-spezifische Typen, verschachtelte Strukturen, Dictionary-Encoding oder Komprimierungseinstellungen verändert werden oder verloren gehen. Prüfen Sie benötigte Typen und Genauigkeit und bewahren Sie die Quelldaten auf. | Prüfen Sie bei netCDF- oder HDF5-Konvertierung Dimensionen, Typen, Blöcke, Attribute und Koordinaten. Bewahren Sie das Original und validieren Sie die Werte. |
Nach Einsatzzweck wählen
Typisierte Daten zwischen Arrow-Bibliotheken und Analyse-Engines bewegen
Spaltenorientierte Tabellendaten zwischen kompatiblen Programmen und Sprachen austauschen · Analysedatensätze zwischen Arrow-fähigen Werkzeugen übertragen
Apache Arrow IPCIm IPC-Dateiformat gezielt auf Record Batches zugreifen
Spaltenorientierte Tabellendaten zwischen kompatiblen Programmen und Sprachen austauschen · Analysedatensätze zwischen Arrow-fähigen Werkzeugen übertragen
Apache Arrow IPCAusgewählte Bereiche großer Arrays effizient lesen
Große mehrdimensionale Arrays blockweise speichern und austauschen · Wissenschaftliche Daten in Cloud-Objektspeichern nutzen
ZarrAufgeteilte Datensätze zwischen kompatiblen Werkzeugen teilen
Große mehrdimensionale Arrays blockweise speichern und austauschen · Wissenschaftliche Daten in Cloud-Objektspeichern nutzen
ZarrWichtiger Punkt 1
Arrow definiert spaltenorientierte Speicherlayouts und Serialisierung oder Transport; Zarr definiert Array-Knoten mit Form, Typ, Chunk-Raster, Codecs und Chunk-Speicherung.
Unterschiede im DetailWichtiger Punkt 2
Arrow nutzt Puffer und Kind-Arrays für gemeinsamen Speicher; Zarr speichert unabhängig kodierte Chunks für Teilzugriffe.
Unterschiede im DetailUnterschiede im Detail
Nutzen Sie Arrow für spaltenorientierten Austausch im Speicher und passende IPC-Abläufe. Nutzen Sie Zarr für persistente Chunk-Arrays. Legen Sie den Container fest und prüfen Sie Typen, Zeitstempel, Dimensionen und Zugriffsmuster.
- Arrow beschreibt vor allem Speicherrepräsentation und Serialisierung; Zarr Array-Metadaten und separat gespeicherte Chunks.
- Arrow-Arrays verwenden Puffer und verschachtelte Kind-Arrays; Zarr-Chunks lassen sich getrennt kodieren und lesen.
- Geben Sie für Persistenz oder Konvertierung Arrow IPC oder ein anderes Dateiformat an und prüfen Sie Typen, Nullwerte, Zeitstempeleinheiten und Zeitzonen, Array-Form und Achsenbedeutung, Codecs und Chunk-Zugriffe.
Häufige Fragen
Ist ein Arrow-Array selbst ein persistenter Speicher wie Zarr?
Nein. Arrow ist auf Speicher und Serialisierung ausgelegt und braucht für Persistenz einen IPC- oder anderen Container; Zarr speichert Chunks und Metadaten in einem Speicher.