写真1●富士通研究所 インテリジェントテクノロジ研究部 主任研究員 稲越宏弥氏
写真1●富士通研究所 インテリジェントテクノロジ研究部 主任研究員 稲越宏弥氏
[画像のクリックで拡大表示]
写真2●高速パターン照合技術の概要図(出典:富士通研究所)
写真2●高速パターン照合技術の概要図(出典:富士通研究所)
[画像のクリックで拡大表示]
写真3●演算スナップショット管理技術の概要図(出典:富士通研究所)
写真3●演算スナップショット管理技術の概要図(出典:富士通研究所)
[画像のクリックで拡大表示]

 富士通研究所は2012年11月19日、「蓄積されたデータも流れるデータも高速に処理するビッグデータ向けストリーム集計技術」を開発したと発表した。バッチ処理(Hadoopなど)の特徴である集計期間の長さと、ストリーム処理(既存のCEP)の特徴であるレスポンスの良さを両立する、としている。2013年に同社製ミドルウエアへの搭載を目指す。

 新技術を使うと、「集計処理の対象となるデータの件数によらずに、一定の性能が出る」(主任研究員の稲越宏弥氏、写真1)。同社の評価結果では、オープンソースソフトウエア(OSS)のCEP(複合イベント処理)エンジンに比べて100倍以上高速化した。CEPエンジンはデータ件数に比例してレスポンス時間が増える(25万件で約10秒、50万件で約20秒など)が、新技術ではデータ件数が増えてもレスポンスが変わらなかった、という。

 現状、データ集計のやり方は大きく、バッチ処理とストリームデータ処理の二つに分かれる。しかし、これらにはそれぞれ弱点があるという。

 バッチ処理は、集計期間の長い大量のデータを、一気に短時間で処理するための技術である。並列処理などによってスループット(時間当たりの処理件数)を上げる。代表的な手法にMapReduceがある。課題は、集計処理の対象データを読み込ませ直すのに時間がかかることである。

 ストリームデータ処理は、刻一刻と変化する入力データを、遅延なく処理するための技術である。代表的な手法にCEPがある。課題は、業務上許容されているレスポンスの範囲内で処理できるデータの件数(集計期間)や演算の種類に制限がかかってしまうことである。

オートマトンで値を抽出、ツリー構造を利用してソート済みの値を格納

 同社が開発した新技術では、集計処理の前半パートである(1)「高速パターン照合技術」(写真2)と、後半パートである(2)「演算スナップショット管理技術」(写真3)という二つのステップによって、集計期間の長さとレスポンスの良さを両立するという。

 (1)の高速パターン照合技術は、入力ストリームの中から必要な情報を高速に取り出す技術である。オートマトンを利用することで、入力データの中から名前と値のペアを直接抽出できるようにしている。

 既存のCEPでは、2段階の処理でデータを抽出しており、効率が悪いという。具体的には、ストリームデータ(入力バイト列)を構造解析してバッファ(メモリー)上にデータを展開しておき、ここから必要な項目を抽出する。

 (2)の演算スナップショット管理技術は、計算済み(値をソート済み)のデータを格納する独自のデータ構造の採用によって、データ件数に左右されることなく、集計結果をすぐに取り出せるようにする技術である。

 既存技術の場合、データ構造は、ハッシュ型(ハッシュ値に基付いてランダムに値を配置)とツリー型(名前に基付いてたどった先に配置)の二つのいずれかをとる。ハッシュ型の特徴は、メモリーへの格納効率がいい一方で、ソートができないこと。ツリー型の特徴は、ソートされている一方で、ツリー構造のために余計なメモリーを消費することである。

 これに対して、演算スナップショット管理技術は、ツリー型と同等の情報を保持しつつ、メモリー消費を抑え、高速に処理できるようにしている。まず、ツリー構造の一つのノードに一つの値を割り当てることで、中間ノードをなくしている。さらに、ツリー構造のなぞり順に名前と値のペアがソートされた状態で格納されている(ソート済み)。