Apache Arrow

言語非依存のカラムナー(列指向)インメモリデータフォーマットを定義するオープンソースプロジェクト。分析処理向けに最適化されている。

特徴

  • 列指向レイアウト: 行ではなく列単位でデータを保持する。「多くの行・少ない列」を扱う分析タスク(集計など)に向いている。
  • ゼロコピー読み取り: シリアライズ/デシリアライズのオーバーヘッドなしにデータへアクセスできる。
  • SIMD最適化: 連続したメモリレイアウトのため、SIMD (Single Instruction, Multiple Data) によるベクトル化演算と相性が良い。
  • 多言語対応: C++, Rust, Python, Java, Go など複数言語で実装が提供されており、システム間で同じメモリ表現を共有できる。異なる言語間でも変換コストなしにデータを受け渡しできる。

エコシステムでの採用例

  • クエリエンジン: Apache DataFusion, DuckDB, Velox
  • データサイエンスライブラリ: pandas, polars, R Arrow
  • データフォーマット: Vortex, Parquetのreader
  • データ転送レイヤー: Flight SQL, ADBC

データレイクハウスの中での位置づけ

「ディスク上のParquet」に対する「メモリ上のArrow」として、クエリエンジン内部の処理やエンジン間のゼロコピーなデータ交換を担う。Dremio のクエリエンジンのようにArrowを実行時表現としてネイティブに使うプロダクトもある。

出典

作成日時: 2026-08-09 21:14 / 更新日時: 2026-08-12 09:55