Apache Arrow IPC (Kolumnar Dalam Memori)
Apache Arrow IPC adalah format kolumnar yang tidak bergantung bahasa untuk data dalam memori. Memungkinkan berbagi data zero-copy antara proses dan bahasa (Python, R, C++, Java) tanpa overhead serialisasi, menjadikannya tulang punggung pipeline pemrosesan data modern.
Tipe MIME
application/vnd.apache.arrow.file
Tipe
Biner
Kompresi
Lossless
Kelebihan
- + Zero-copy data sharing between languages and processes
- + Optimized for SIMD and vectorized computation
- + Standard memory layout for modern data tools (DuckDB, Polars, Pandas)
Kekurangan
- โ Not designed for persistent storage โ use Parquet for that
- โ Files are larger than compressed Parquet or CSV
- โ More complex than CSV for simple data exchange
Kapan Menggunakan .ARROW
Gunakan Arrow untuk pertukaran data antar proses, membangun pipeline pemrosesan data, dan skenario apa pun yang memerlukan berbagi data zero-copy.
Detail Teknis
File Arrow menggunakan tata letak biner berukuran tetap dengan buffer memori kontinu untuk setiap kolom. Format IPC mendukung mode streaming (pesan sekuensial) dan file (akses acak dengan footer). Nilai null menggunakan validity bitmap.
Riwayat
Wes McKinney (pencipta Pandas) memulai Apache Arrow pada tahun 2016 untuk mengatasi inefisiensi serialisasi data antar alat. Arrow menyediakan tata letak memori umum yang diadopsi oleh DuckDB, Polars, dan Pandas 2.0.