ビッグデータを説明する言葉として“4つのV”があるといわれている。“Volume(容量)、Velocity(速度)、Variety(種類)、Value(価値)”――という4つのVだ。
Volumeとは改めて言うまでもなく、これまでにない大きさのデータということを表している。これまでの解析対象とされていたデータは、ケタ数が決められたデータ、つまりリレーショナルデータベース(RDBMS)に格納される構造化データだったのが、テキストやブログ、ネット上のつぶやき、音声、画像、動画などの非構造化データにもさまざまな情報を読み取ることができる。この状況を指すのがVarietyだ。
そしてVelocityだ。これは1秒あたり数万や数十万、時には数百万のオーダーで出力されるデータを指している。具体的には、センサが発信するデータや人の位置情報などだ。
ビッグデータの側面をVolumeとVarietyとしてとらえると、その解決策として注目されているのが分散並列処理フレームワークの「Hadoop」だ。そしてビッグデータの側面をVelocityとしてみるときに浮上してくる解決策が、複合イベント処理(Complex Event Processing:CEP)である(「ストリーム処理」と呼ばれることもある)。
CEPは、RDBMSのようにデータをディスクに一度格納して処理するのではなく、入力される複数の時系列データに応じて、あらかじめ定義したルール(クエリ)に基づいた処理をメモリ上で行うというものだ。つまり、RDBMSに格納するよりも高速に処理できることから、データをリアルタイムに処理できる技術として注目されるようになっている。
ただCEPにも課題はある。絶え間なく送られてくる時系列データをリアルタイムに処理しながら、メモリ上にある分析処理中のデータをサーバ間で高速に移動することが技術的に困難だからだ。こうした状況から、季節や時間帯、あるいは災害や事故が起きた場合など、時系列データが大幅に増減することを事前に想定してピーク時に必要となるリソースで構成するか、一度CEPを止めて構成変更するなどの必要があったといわれている。
富士通は富士通研究所と共同で、この課題を解決する技術を開発したと12月16日に発表した。この技術は負荷増減に素早く対応して、動的に分散並列処理できるCEPだという。
※クリックすると拡大画像が見られます
今回開発された技術は、クエリやクエリ内の並列データをCEPの管理単位として細粒度化して、時系列データの負荷増減に対応して、処理単位をサーバ間で動的かつ高速に分散・移動(ライブマイグレーション)するという。動的分散方式としてはデータ並列分散とクエリ分散の2方式としている。限られたリソース内で負荷増減の状況にあわせたリアルタイムな動的分散処理が可能という。シンプルなクエリを処理した場合では、毎秒500万イベントの処理性能になると説明している。
富士通などは、負荷増減の速度、各イベント、各クエリなどの性質や処理負荷の状況にもとづいて負荷を効率的に分散でき、かつ移動による影響が最も少ない処理を移動対象とする技術を開発している。たとえば、関連性が高いクエリを極力同一サーバ上に割り当てて高速処理を維持するなどの工夫がされているという。富士通では、今回の新技術を2012年度内に実用化したい考えだ。