従来のデータ分析は「動かないデータ(静的データ)」を対象にしてきた。たとえば、日々の各店舗の売上明細をデータウェアハウス(DWH)に集めて、商品別に売上を集計してランキングを出したり、どんな組み合わせで商品が売れているのかを調べたり、あるいは1年間分のデータの推移を見たり、前年のデータと比較したりといった具合だ。いったんデータを蓄積して、その中から何かを見つける。従来のデータ分析は、いわば「過去の事象」に注目してきたとも言える。
しかし現代の人々は、「いま起こっている」「より多くのことを」「もっと早く」知りたいと考え始めている。時々刻々と流れてくる大量のデータ、いわゆる「動いているデータ(動的データ)」をリアルタイムに処理するニーズが高まっている。「その時点で起こった事象の変化」に直ちに反応することで、新しい価値を生み出したいと考えるからだ。そんな動的データのリアルタイムなデータ処理を実現する手段として注目を集めているのが「ストリームコンピューティング」だ。
「動いている」データをストリーム処理
先ほど述べた静的データの処理は一般に「バッチ処理」、動的データの処理は「ストリーム処理」と呼ばれている。爆発的に増大するデータについて、従来のようにデータをいったんストレージに取り込んで、格納したデータを解析するバッチ処理は、データ量が増えるにつれて多くの処理時間を要するようになる。処理に「半日」かかる、というのはよくある話だ。
これに対してストリーム処理では、データを受信したら、ただちにメモリにバッファリング(蓄積)し、オンメモリで逐次的、かつ超高速にデータ処理を実行する。そのため、連続的かつ大量に発生するデータストリームをストレージに格納せずに済み、また処理のリアルタイム性も確保できる。
このストリームコンピューティングをいち早く商用化したのがIBMだ。IBMは2003年頃からワトソン研究所でストリームコンピューティングの研究に着手し、5年の歳月をかけて研究プロジェクト「System S」を成功させた。
プロジェクトは、ストリームコンピューティング専用のプログラミング言語「SPADE」をはじめ、統合開発環境や処理を実行するランタイム環境、さらにはデータ解析用のツールキットや、アウトプットアダプタ、ソースアダプタまでを開発した。まさにストリーム処理に必要なソフトウェア一式をすべて自前で開発したわけだ。
その成果は、同社のストリームコンピューティングソフトウェア製品である「IBM InfoSphere Streams」として商品化されている。
「ストリームコンピューティングという新しいデータ処理が、最もよく使われるのがリアルタイムBIだろう」と話すのは、日本IBM、ソフトウェア事業技術理事である菅原香代子氏だ。