IBMが狙ったデータは、リレーショナルデータベースに入っているようなデータではなく(もちろんこれもストリーム処理できる)、RFIDや携帯電話、あるいはセンサなどで生み出されるデータだ。
「何十億個ものデバイスから届く、様々なデータは膨大な量になる。数十万、数百万といったオーダーのデータを処理し、しかもそれをリアルタイムに解析しなければならない。さらに低レイテンシ、つまり結果をミリ秒で返すことがターゲットだった」(菅原氏)
ストリームコンピューティングは、どのような場面で活用されるのだろう。たとえば、ある施設に設置された熱センサの値が高くなっていて、このままでは火事になりそうな状況を想定しよう。この時、従来のデータ処理で夜間にバッチ処理を行って、翌朝になってやっと火事になると分かるのではまったく役に立たない。分かったときには何もかも燃え尽きている可能性が高い。
「データから火事が発生しそうだと判明したら、直ちに消防車を急行させる。それができるのがストリームコンピューティング」(菅原氏)だという。
ハリケーンの動きを株式売買の判断材料に
では、ストリームコンピューティングの「リアルタイムBI」としての活用はどのようなものになるだろう。菅原氏は、株の「アルゴリズミックトレーディング」に活用した例を紹介する。
たとえばメキシコ湾でハリケーンが発生した場合、ハリケーンの予測進路は時々刻々と変化する。進路上に位置する企業資産が被害を受け価値が下がると、株価も下がると考えられる。こうした気象データを含め、ニューヨーク市場からの売り気配、買い気配などの市場データ、ウェブで配信される様々なニュースや動画データ、RSSフィードやTwitterのデータなど、流れてくるありとあらゆる情報をマージして、リアルタイムにBIを行って売買の発注を行うそうだ。
データベース学会では、すでに6年ほど前から未来のデータ処理はストリームコンピューティングになると言われており、IBM以外にも日立などが製品を出している。菅原氏は、IBMのストリームコンピューティングの特徴として、2つの特徴を挙げた。
ひとつは、「ストリーム処理を非常に開発生産性の高い言語で書ける」こと。「ユーザーはオペレータ(演算子)についてもC++あるいはJavaで書くことができる」という。意思決定の条件と処理をプログラムとして記述し、演算子として埋め込むことが可能だ。あるいは、「SPSSでテキストマイニングする」といった処理も埋め込むことができる。菅原氏は「フレキシブルなIT基盤」だと説明する。
もうひとつの特徴は「スケールアウトできる」こと。同製品は基本的にLinuxが動くx86サーバ上で動く。「これを何台も並列に並べることができる。現在は最大125台まで。ストリームを自動的に空いているリソースに割りつける。ブレードを追加することでスケールアウトが可能だ」という。
先の株のトレーディングプロジェクトのケースでは、なんとスーパーコンピュータの「Blue Gene」を使用したという。Blue Geneは356ノード、レイテンシは平均150マイクロ秒、最小値は50マイクロ秒という驚異的なスピードで処理を行い、株の売買を行ったという。
会社を運営していくことを、自動車の操縦になぞらえて「運転」ということがある。よりリアルタイムな状況判断を求められるビジネス環境において、「静的なデータ分析」のみを頼りにした運転は「バックミラーだけを見て高速道路を走るようなもの」などとも言われる。
進行方向で起きている異変をいち早く察知し、トラブルを回避して、迅速かつ安全に走り続けるためにハンドルをさばくことが、ビジネスの世界でも求められていると言っても過言ではないだろう。そうした中で、今後ますます「ストリーム処理」によるデータ分析が、あらゆる場面で重要性を増していくのかもしれない。
さて、この連載「BIによるデータ活用ことはじめ」では、「インテリジェンスとは何か?」から始まり、データ活用に必要なBIの要素、そして「過去」「現在」「未来」を知りビジネスに役立てるためのBIツールと、その利用スタイルについて見てきた。読者の皆様が、この記事をきっかけにデータ活用に取り組み、ビジネス上の成果を得られることを願って締めくくりとしたい。