Apache Arrowは、列指向データ処理のためのデータ分析アプリケーションを開発するためのソフトウェアフレームワークである。モダンなCPUやGPUハードウェア上で、フラットで階層的なデータに対して効率よく分析的な操作が行える、標準化された列指向のメモリフォーマットが含まれている。これにより、DRAMの費用・ボラタリティ・物理的な制約などの、大規模なデータの処理を行う実現可能性を制限する要因を減少または排除することが可能になる。
相互運用性 Arrowは、Apache Spark、NumPy、PySpark、pandas、他のデータ処理ライブラリと合わせて利用できる。
プロジェクトには、C、C++、C#、Go、Java、JavaScript、Julia、MATLAB、Python、R、Ruby、Rust向けのネイティブのソフトウェアライブラリがある。Arrowを利用すると、これらの言語やシステム間で、シリアライズのオーバーヘッドなしにゼロコピーの読み込みと高速なデータアクセスとデータ交換が可能になる。
アプリケーション Arrowは、データ分析、ゲノミクス、クラウドコンピューティングなど、さまざまなドメインで使用されている。
Apache ParquetとORCとの比較 人気のあるディスク上の列指向データフォーマットの例としては、とがある。Arrowは、メモリ内でのデータ処理のために、これらのフォーマットを補完するように設計された。メモリ内処理のためのハードウェアリソースエンジニアリングのトレードオフは、ディスク上のストレージに関連するトレードオフとは異なる。ArrowとParquetプロジェクトには、これら2種類のフォーマット間でデータの読み込みと書き込みを可能にするライブラリが含まれるPyArrow:Reading and Writing the Apache Parquet Format。
ガバナンス Apache Arrowは、2016年2月17日にThe Apache Software Foundationから発表され、他のオープンソースのデータ分析プロジェクトの開発者たちの連合が開発を主導しているJulien Le Dem on the Future of Column-Oriented Data Processing with Apache Arrow.。初期のコードベースとJavaライブラリはApache Drillのコードが元になっている。
出典
外部リンク
Apache Arrow プロジェクトのウェブサイト Apache Arrow GitHub プロジェクトのソースコード