開発元 | Apache Software Foundation |
---|---|
初版 | 2016年10月10日 |
最新版 |
20.0.0[1] ![]() |
リポジトリ | https://github.com/apache/arrow |
プログラミング 言語 | C、C++、C#、Go、Java、JavaScript、MATLAB、Python、R、Ruby、Rust |
種別 | データフォーマット、アルゴリズム |
ライセンス | Apache License 2.0 |
公式サイト |
arrow |
Apache Arrowは、列指向データ処理のためのデータ分析アプリケーションを開発するための言語非依存のソフトウェアフレームワークである。モダンなCPUやGPUハードウェア上で、フラットで階層的なデータに対して効率よく分析的な操作が行える、標準化された列指向のメモリフォーマットが含まれている[2][3][4][5][6]。これにより、DRAMの費用・ボラタリティ・物理的な制約などの、大規模なデータの処理を行う実現可能性を制限する要因を減少または排除することが可能になる[7]。
ArrowはApache Parquet、Apache Spark、NumPy、PySpark、pandas、他のデータ処理ライブラリと合わせて利用できる。
プロジェクトには、C、C++、C#、Go、Java、JavaScript、Julia、MATLAB、Python、R、Ruby、Rust向けのネイティブのソフトウェアライブラリがある。Arrowを利用すると、これらの言語やシステム間で、シリアライズのオーバーヘッドなしにゼロコピーの読み込みと高速なデータアクセスとデータ交換が可能になる[2]。
Arrowは、データ分析[8]、ゲノミクス[9][7]、クラウドコンピューティング[10]など、さまざまなドメインで使用されている[10]。
人気のあるディスク上の列指向データフォーマットの例としては、Apache ParquetとApache ORCがある。Arrowは、メモリ内でのデータ処理のために、これらのフォーマットを補完するように設計された[11]。メモリ内処理のためのハードウェアリソースエンジニアリングのトレードオフは、ディスク上のストレージに関連するトレードオフとは異なる[12]。ArrowとParquetプロジェクトには、これら2種類のフォーマット間でデータの読み込みと書き込みを可能にするライブラリが含まれる[13]。
Apache Arrowは、2016年2月17日にThe Apache Software Foundationから発表され[14]、他のオープンソースのデータ分析プロジェクトの開発者たちの連合が開発を主導している[15][16][6][17][18]。初期のコードベースとJavaライブラリはApache Drillのコードが元になっている[14]。