Apache Arrowのご紹介 - クリアコード

Apache Arrowのご紹介

株式会社クリアコード > サービス > Apache Arrowのご紹介

大容量のストレージ・大量のコンピューターリソースを活用することが可能になった現在では従来は現実的でなかった大量データを処理できるようになりました。現代のデータ処理システムは複数のデータ処理モジュールを連携して構築します。たとえば、Fluent Bitで収集したログをAmazon S3に格納し、Amazon Athenaでデータを加工し、Amazon QuickSightで可視化した場合は4つのモジュールを連携しています。

各モジュール間ではデータ交換が発生します。大量のデータを処理するほどデータ交換の効率が重要になります。非効率なデータ交換処理をしていると、本来のデータ処理よりデータ交換処理の方に時間がかかっている状況になりかねません。

効率的なデータ交換のために設計されたデータフォーマットがApache Arrowです。たとえば、従来はCSVやJSONを使っていたところをApache Arrowを使うようにすればデータ交換処理に必要なコンピューターリソースは非常に小さくなり、本来のデータ処理にコンピューターリソースを投入できます。

Apache Arrowでデータ交換を高速化

Apache Arrowでの高速化事例

Apache Arrowフォーマットを使って高速化した事例を紹介します。

データ分析エンジンの1つであるApache Spark™はApache Arrowフォーマットを使うことにより約30倍高速化しました。以下はApache Arrowの公式ブログで紹介されている事例の数値を可視化したものです。

Apache Spark™での高速化事例

Apache Arrowの特徴

実はApache Arrowフォーマットによる高速化はApache Arrowが提供する機能の1つにすぎません。Apache Arrowはメモリー上でデータ処理するために必要な一連の機能を提供します。Apache Arrowフォーマットによるデータ交換の高速化以外にも次のような機能があります。

従来はこのような機能は各データ処理プロダクトで個別に実装されていましたが、Apache Arrowは各データ処理プロダクトで共有できる高速な実装を提供します。これにより各データ処理プロダクトはそれぞれの問題領域に注力できます。

Apache Arrowの利用例

Apache Spark™をはじめApache Arrowを利用して高速化したデータ処理プロダクトが増えています。Apache ArrowのPythonライブラリーであるpyarrowだけでも、2020年8月23日の1日のダウンロード数は約23万件です。2020年7月の1.0.0リリースをきっかけにさらにApache Arrowの採用が進んでいます。

以下にApache Arrowの利用例を紹介します。

Apache Arrowの詳細

2018年よりApache Arrowの最新情報をまとめています。Apache Arrowの詳細はこちらの一連の記事を参照してください。

また、Apache Arrowの各特徴について個別に紹介した資料もあります。

クリアコードとの関わり

クリアコードは2016年より継続的にApache Arrowの開発に参加しています。2020年8月24日時点で2番目に多くコミットした開発者(下図の緑枠)となっています。

クリアコードはApache Arrowについてコンサルティング・ソースコードレベルのサポートを提供している日本で唯一の企業です。

Apache Arrowのコミット数

サポートの問い合わせ

クリアコードではApache Arrowのサポートサービスを提供しています。自社のシステムをApache Arrowに対応させたい、Apache Arrowをどのように活用したらよいか相談に乗って欲しい、Apache Arrowを使っていて解決したい点があるなどの課題がございましたらお問い合わせからください。