apache/arrow

Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics

解決する課題

Apache Arrowは、異なるソフトウェアシステム間での低速で非効率なデータ移動という問題を解決します。メモリ内でのデータ保存と共有のための汎用的かつ標準化された方法を提供し、データ形式を絶えず変換するパフォーマンス上のペナルティなしに、異なるアプリケーションやプログラミング言語が連携できるようにします。

仕組み

Arrowは、行ではなく列ごとにデータを整理する「列指向(カラムナ)」フォーマットを使用します。この構造は現代のコンピューティングハードウェアに対して非常に効率的です。メモリ管理のためのツールセットが含まれており、例えば「ゼロコピー」共有により、異なるプロセスがデータをコピーすることなく同じデータにアクセスできます。また、標準化された通信プロトコル(Arrow Flightなど)やデータベース接続(ADBC)を提供し、ネットワーク越しや異なるソフトウェア環境間でのシームレスなデータ移動を実現します。

対象ユーザー

高性能なデータシステム、データベース、クエリエンジン、または複数のプログラミング言語や分散サービス間で大量のデータを処理する必要がある分析アプリケーションを構築する開発者やデータエンジニア向けに設計されています。

ハイライト

  • フラットおよびネストされたデータ型の両方をサポートする汎用列指向フォーマット。
  • ゼロコピー機能による高性能なメモリ管理。
  • C++, Python, Rust, Java, Go, Rなど、幅広い多言語サポート。
  • リモートプロシージャコール (RPC) およびプロセス間通信 (IPC) の組み込みサポート。
  • LLVMを使用してデータ処理を高速化する式コンパイラ、Gandivaを同梱。
  • 標準化されたデータベース接続 (ADBC) およびファイルフォーマット(ParquetやCSVなど)のサポート。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト