Apache Arrow IPC (Columnar en memoria)
Apache Arrow IPC es un formato de datos columnares en memoria diseñado para transferencia de datos de coste cero entre procesos y frameworks. Define un diseño de memoria estandarizado que permite compartir datos sin serialización ni copia.
Tipo MIME
application/vnd.apache.arrow.file
Tipo
Binario
Compresión
Sin pérdida
Ventajas
- + Zero-copy data sharing between languages and processes
- + Optimized for SIMD and vectorized computation
- + Standard memory layout for modern data tools (DuckDB, Polars, Pandas)
Desventajas
- − 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
Cuándo usar .ARROW
Usa Arrow IPC para comunicación eficiente entre procesos, transferencia de datos entre motores de análisis (Spark, pandas, DuckDB) y cuando necesites compartir datos sin sobrecarga de serialización.
Detalles técnicos
Arrow IPC usa buffers FlatBuffers para esquemas y datos de tabla plana con diseños de memoria alineados. El formato soporta streaming (secuencia de lotes) y acceso aleatorio (archivo con pie de tabla). Los datos se alinean a 8/64 bytes para operaciones SIMD.
Historia
Apache Arrow fue creado en 2016 por Wes McKinney (creador de pandas) y otros miembros de la comunidad de datos. El formato IPC permite que diferentes motores de análisis compartan datos sin los costes de serialización que plagaban el ecosistema de datos.