Apache Arrow

Apache Arrow
開発元 Apache Software Foundation
初版 2016年10月10日 (8年前) (2016-10-10)
最新版
19.0.1[1] ウィキデータを編集 / 16 February 2025
リポジトリ https://github.com/apache/arrow
プログラミング
言語
CC++C#GoJavaJavaScriptMATLABPythonRRubyRust
種別 データフォーマット、アルゴリズム
ライセンス Apache License 2.0
公式サイト arrow.apache.org
テンプレートを表示

Apache Arrowは、列指向データ処理のためのデータ分析アプリケーションを開発するための言語非依存の英語版ソフトウェアフレームワークである。モダンなCPUGPUハードウェア上で、フラットで階層的なデータに対して効率よく分析的な操作が行える、標準化された列指向のメモリフォーマットが含まれている[2][3][4][5][6]。これにより、DRAMの費用・ボラタリティ・物理的な制約などの、大規模なデータの処理を行う実現可能性を制限する要因を減少または排除することが可能になる[7]

相互運用性

[編集]

ArrowはApache Parquet英語版Apache SparkNumPyPySparkpandas、他のデータ処理ライブラリと合わせて利用できる。

プロジェクトには、C、C++、C#、Go、Java、JavaScript、Julia、MATLAB、Python、R、Ruby、Rust向けのネイティブのソフトウェアライブラリがある。Arrowを利用すると、これらの言語やシステム間で、シリアライズのオーバーヘッドなしにゼロコピーの読み込みと高速なデータアクセスとデータ交換が可能になる[2]

アプリケーション

[編集]

Arrowは、データ分析[8]、ゲノミクス[9][7]、クラウドコンピューティング[10]など、さまざまなドメインで使用されている[10]

Apache ParquetとORCとの比較

[編集]

人気のあるディスク上の列指向データフォーマットの例としては、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]

出典

[編集]
  1. ^ "Release 19.0.1". 16 February 2025. 2025年2月20日閲覧
  2. ^ a b Apache Arrow and Distributed Compute with Kubernetes” (2018年12月13日). 2025年3月5日閲覧。
  3. ^ Baer (2016年2月17日). “Apache Arrow: Lining Up The Ducks In A Row... Or Column”. Seeking Alpha. 2025年3月5日閲覧。
  4. ^ Baer (2019年2月25日). “Apache Arrow: The little data accelerator that could”. ZDNet. 2025年3月5日閲覧。
  5. ^ Hall (2016年2月23日). “Apache Arrow's Columnar Layouts of Data Could Accelerate Hadoop, Spark”. The New Stack. 2025年3月5日閲覧。
  6. ^ a b Apache Arrow aims to speed access to big data | InfoWorld”. web.archive.org (2016年8月19日). 2025年3月5日閲覧。
  7. ^ a b Tanveer Ahmad (2019). “ArrowSAM: In-Memory Genomics Data Processing through Apache Arrow Framework”. bioRxiv: 741843. doi:10.1101/741843. https://www.biorxiv.org/content/10.1101/741843v1. 
  8. ^ Dinsmore T.W. (2016). “In-Memory Analytics: Satisfying the Need for Speed”. Disruptive Analytics. Apress, Berkeley, CA. pp. 97–116. doi:10.1007/978-1-4842-1311-7_5. ISBN 978-1-4842-1312-4 
  9. ^ “Scalable genomics: from raw data to aligned reads on Apache YARN”. IEEE International Conference on Big Data: 1232–1241. (2016). https://www.biorxiv.org/content/biorxiv/early/2016/08/23/071092.full.pdf. 
  10. ^ a b “Return of the runtimes: rethinking the language runtime system for the cloud 3.0 era”. Proceedings of the 16th Workshop on Hot Topics in Operating Systems (ACM): 138–143. (2017). doi:10.1145/3102980.3103003. 
  11. ^ Le Dem. “Apache Arrow and Apache Parquet: Why We Needed Different Projects for Columnar Data, On Disk and In-Memory”. KDnuggets. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
  12. ^ Apache Arrow vs. Parquet and ORC: Do we really need a third Apache project for columnar data representation?” (2017年10月31日). Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
  13. ^ PyArrow:Reading and Writing the Apache Parquet Format
  14. ^ a b The Apache® Software Foundation Announces Apache Arrow™ as a Top-Level Project”. The Apache Software Foundation Blog (2016年2月17日). 2016年3月13日時点のオリジナルよりアーカイブTemplate:Cite webの呼び出しエラー:引数 accessdate は必須です。
  15. ^ Martin (2016年2月17日). “Apache Foundation rushes out Apache Arrow as top-level project”. The Register. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
  16. ^ Big data gets a new open-source project, Apache Arrow: It offers performance improvements of more than 100x on analytical workloads, the foundation says.” (2016年2月17日). 2016年7月27日時点のオリジナルよりアーカイブ。2018年1月31日閲覧。
  17. ^ Le Dem (2016年11月28日). “The first release of Apache Arrow”. SD Times. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
  18. ^ Julien Le Dem on the Future of Column-Oriented Data Processing with Apache Arrow.

外部リンク

[編集]