Format Atlas

FORMAT COMPARISON

Apache Arrow IPC vs ORC

Apache Arrowはプロセス内分析やシステム間転送向けの言語非依存な列指向メモリ表現です。ORCは行をstripeに分け、列データ・索引・統計を保持する列指向ファイル形式で、分析時の読取量を抑える設計です。

最終確認: 2026-09-27

Apache Arrow IPCとORC、どちらを選ぶ?

アプリケーション間で表データをメモリ上で効率よく受け渡すならArrowを選びます。データレイクやHive系処理で圧縮・列選択・stripe単位の読取を行う永続ファイルにはORCを検討します。Arrow IPC等の保存とORCファイルを混同しないでください。

Apache Arrow IPC向き

列指向テーブルデータを対応するプログラムや言語間で交換する・分析処理用のデータセットをArrow対応ツール間で受け渡す

  • Arrow対応のライブラリや分析エンジン間で型情報を保ってデータを移動する
  • ファイル版でRecord Batchへランダムアクセスする

ORC向き

Hadoop系分析基盤での列指向データ保存

  • 型情報・索引を使う大規模な表形式データ分析

基本情報を比較

Apache Arrow IPCとORCの主な違いを確認できます。

項目Apache Arrow IPCORC
拡張子.arrow、.feather、.arrows.orc
MIME Typeapplication/vnd.apache.arrow.file、application/vnd.apache.arrow.streamapplication/vnd.apache.orc
主な用途列指向テーブルデータを対応するプログラムや言語間で交換する・分析処理用のデータセットをArrow対応ツール間で受け渡すHadoop系分析基盤での列指向データ保存
圧縮非圧縮またはコーデックによるcolumnar_data
開く方法Apache Arrow対応ライブラリや分析ツールで読み込みます。拡張子が.arrowならファイル版、.arrowsならストリーム版が一般的ですが、受け側が期待するIPC形式と圧縮 codec の対応も確認してください。Feather形式として扱う場合は、古いFeather V1との互換性にも注意します。ORC対応の分析ツールでスキーマ、列、行数、圧縮、読み取り結果を確認します。
書き出し・変換Parquetは分析データの保存・配布、CSVは単純な表データ交換向けの候補です。変換するとArrow独自の型、ネスト構造、辞書エンコードや圧縮設定が変わったり失われたりする場合があります。受け側に必要な型と精度を確認し、元データを保管してください。ParquetやCSVへ変換する際は、型、null、日時、decimal、パーティションの扱いを確認します。

用途別の選び方

作りたいものや使う場面から選べます。

Arrow対応のライブラリや分析エンジン間で型情報を保ってデータを移動する

列指向テーブルデータを対応するプログラムや言語間で交換する・分析処理用のデータセットをArrow対応ツール間で受け渡す

Apache Arrow IPC向き

ファイル版でRecord Batchへランダムアクセスする

列指向テーブルデータを対応するプログラムや言語間で交換する・分析処理用のデータセットをArrow対応ツール間で受け渡す

Apache Arrow IPC向き

型情報・索引を使う大規模な表形式データ分析

Hadoop系分析基盤での列指向データ保存

ORC向き

確認ポイント 1

Arrowは配列・バッファのメモリレイアウトと型を定義し、ゼロコピー共有等を可能にします。ORCはファイル内で列ストリーム、stripe、footer統計・索引を使います。

使い分け

確認ポイント 2

Arrowの中心はプロセス間・言語間の効率的なメモリ表現や転送です。ORCは圧縮、列射影、stripe/row indexによる分析読取を意識した保存形式です。

使い分け

選ぶ理由を詳しく

  • 比較する際はArrowのメモリ形式とArrow IPC/file形式の違い、ORCライター/リーダー対応、型・null・timestamp・decimalの写像、圧縮と実クエリ性能を確認してください。

詳しく見る

参考資料・仕様