PR

刻々と発生するデータを素早く集め、元のデータと掛け合わせる。リアルタイムに近いデータの分析を可能にするのが富士通研究所の「ペタバイト級ビッグデータ高速処理技術」だ。分析ソフトとデータ管理ソフトを密に連携し、シーケンシャルアクセスを可能にすることで、高速なデータ処理を実現する。

 ビッグデータには「大量」という以外に、「発生頻度が高い」という側面がある。例えばPOSで発生したデータを、刻々と集めて分析できれば、売れ筋商品を見極める精度は高まる。ところが元々のデータ容量が大きいので、処理に数時間かかることもある。そのため、こうした分析処理はある程度データをためて行うバッチ方式に頼らざるを得なかった。

 発生頻度が高いデータを即座に分析対象に加えようという技術を、富士通研究所が開発中だ。「ペタバイト級ビッグデータ高速処理技術」の実証実験を進めており、2014年ころの実用化を目指している。この技術を読み解こう。

まとめて読み書きする

 新着データを即座に反映するため、バッチ方式ではなく、インクリメンタル方式を採用している。到着したデータをその都度、順に処理して分析結果をアップデート。そこで得られた知見をECサイトの改善などに活用するモデルである(図1)。

図1●バッチ方式とインクリメンタル方式
インクリメンタル方式では、データが届くたびに順に処理し、最新データを即座に分析処理に反映する
[画像のクリックで拡大表示]

 インクリメンタル方式では、データが到着するたびに、こまめに再計算する必要がある。対象となるデータ量は膨大だ。例えばECサイトでの商品レコメンドへの適用を考えてみよう。分析処理では、各ユーザーの商品購買履歴に応じて、商品ラインアップからレコメンドするものを選ぶ。新たな購買記録が到着するたびに、購買履歴と商品ラインアップを掛け合わせる必要がある。

 ペタバイト級ビッグデータ高速処理技術では、「データ分析ソフトとデータ管理ソフトを連携させて、シーケンシャルアクセスを実現している。データをまとめて読み書きすることで、分析処理を高速化する」(富士通研究所 クラウドコンピューティング研究センターの村田美穂氏)。その処理の流れはこうだ(図2)。

図2●データ分析とデータ管理を密に連携
シーケンシャルアクセスを徹底するために、データ分析とデータ管理を密に連携し、データをまとめて読み書きする
[画像のクリックで拡大表示]

(1)分析ソフトは、アプリケーションからのアクセス要求と、まとめて読み書きするサイズを管理ソフトに渡す。分析ソフトは、アプリケーションからのアクセス要求の負荷(単位時間当たりの要求数など)からサイズを決める。

(2)管理ソフトは、要求されたデータ(図2ではk)を含めてディスク上に並んでいるデータを複数読み出し、分析ソフトに供給する。その際、(1)で分析ソフトが決めたサイズにできるだけ近くなるように複数のデータを選ぶ。

(3)分析ソフトは、管理ソフトから供給されたデータ(kとその周りのデータ)をメモリー上にキャッシュし、アプリケーションが要求しているデータの有無を判別する。該当するデータがあれば、それらに対する処理をまとめて行う。

 一連の処理の中でポイントは大きく二つある。一つは、データをまとめて読み書きすることだ。通常のランダムアクセスでは、データが要求されるたびにディスクI/Oが生じる。まとめて読み書きすることで、1回のディスクI/Oで多くのデータを分析ソフトに供給できる。ただし、供給されたデータ全てが使われるわけではない。

 もう一つのポイントは、データを読み書きするサイズを動的に変えていることだ。負荷が大きいときにサイズが小さすぎると、管理ソフトがディスクへの読み書きをしている間に、アプリケーションからのアクセス要求があふれてしまう可能性がある。

 反対に負荷が低ければ、アクセス要求はできるだけ小さい単位でこまめに処理したほうがよい。アプリケーションがデータをまとめて処理する際、無駄にアクセス要求を待たなくて済むからだ。データ分析ソフトとデータ管理ソフトを密に連携することで、サイズを最適化している。