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など)のサポート。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト