🍋
Menu
.arrow Data

Apache Arrow IPC(インメモリカラムナー)

Apache Arrow IPCはインメモリデータ用の言語非依存カラムナーフォーマットです。シリアライゼーションのオーバーヘッドなしにプロセスと言語(Python、R、C++、Java)間のゼロコピーデータ共有を実現し、モダンなデータ処理パイプラインのバックボーンとなっています。

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を使用してください。

技術的詳細

Arrowファイルは各列に対する連続メモリバッファを持つ固定サイズバイナリレイアウトを使用します。IPCフォーマットはストリーミング(シーケンシャルメッセージ)とファイル(フッター付きランダムアクセス)モードをサポートします。null値にはバリディティビットマップを使用します。

歴史

Wes McKinney(Pandasの作成者)は2016年にツール間のデータシリアライゼーションの非効率性を解決するためにApache Arrowを開始しました。Arrowは共通のメモリレイアウトを提供し、DuckDB、Polars、Pandas 2.0に採用されました。

.ARROWから変換

.ARROWに変換

関連フォーマット

関連用語