Apache Arrow IPC (คอลัมน์ในหน่วยความจำ)
Apache Arrow IPC เป็นรูปแบบคอลัมน์ที่ไม่ขึ้นกับภาษาสำหรับข้อมูลในหน่วยความจำ ช่วยให้แชร์ข้อมูลแบบ zero-copy ระหว่างโปรเซส ลดค่าใช้จ่ายในการ serialize/deserialize
ประเภท MIME
application/vnd.apache.arrow.file
ประเภท
ไบนารี
การบีบอัด
ไม่สูญเสียคุณภาพ
ข้อดี
- + Zero-copy data sharing between languages and processes
- + Optimized for SIMD and vectorized computation
- + Standard memory layout for modern data tools (DuckDB, Polars, Pandas)
ข้อเสีย
- − 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
เมื่อใดควรใช้ .ARROW
ใช้ Arrow สำหรับการแลกเปลี่ยนข้อมูลระหว่างโปรเซส การสร้างไปป์ไลน์ประมวลผลข้อมูล และสถานการณ์ที่ต้องการการแชร์ข้อมูลแบบ zero-copy
รายละเอียดทางเทคนิค
ไฟล์ Arrow ใช้เลย์เอาต์ไบนารีขนาดคงที่พร้อมบัฟเฟอร์หน่วยความจำต่อเนื่องสำหรับแต่ละคอลัมน์ รูปแบบ IPC รองรับโหมดสตรีมมิง (ไม่จำกัดเร็กคอร์ด) และโหมดไฟล์ (random access)
ประวัติ
Wes McKinney (ผู้สร้าง Pandas) เริ่ม Apache Arrow ในปี 2016 เพื่อแก้ปัญหาความไม่มีประสิทธิภาพของการ serialize ข้อมูลระหว่างเครื่องมือ ได้รับการนำไปใช้โดย DuckDB, Polars และ Spark