同氏は「ストリームは交通情報、株価情報、RFID読み取り情報のような、無限に到来する時刻順データ系列のことであり、そしてストリームデータ処理は、リレーショナル・データベース(RDB)の関係代数モデルに基づくストリームの継続的リアルタイム処理」と定義づけた。RDBがクエリ発行時に全データを見て全結果を抽出する一括処理であるのに対し、ストリームデータ処理はデータ到達時にそのデータを見て関係する処理のみを実行する差分処理、という違いがある。
そこで西澤氏は、ストリームデータ処理の特徴として、(1)ウィンドウにより無限に続くストリームデータの高速処理を実現、(2)集計・分析シナリオは、SQL言語を拡張した「CQL(Continuous Query Language)」言語で定義するため、アプリケーションを必要とせずにシナリオ変更ができる、(3)インメモリ差分計算で高速処理を実現――という3つの特徴を上げた。
ストリームデータ処理におけるウィンドウは、無限に続くストリームデータの処理対象を切り取るための必須のものだ。データの数(行ウィンドウ)、時間(時間ウィンドウ)、グループ分け(パーティション・ウィンドウ)の3つをサポートしている。CQLはデータ処理定義のためのクエリ言語で、標準的な問い合わせ言語であるSQLにウィンドウの機能を組み合わせ、データ出力のためのストリーム化演算を提供する。
“今”を分析し、迅速な意志決定を実現
西澤氏の講演は、ストリームデータ処理が誕生した時代的背景、そして基礎的な技術的説明を終えた後、事例紹介に移った。
まず紹介したのは、位置計測機器などを搭載した交通情報生成車両である“プローブカー”の位置情報をストリームデータ処理することで、交通渋滞や事故を検出するという事例だ。デモでは、Google Earth上で数千台の自動車の速度(色で表示)、向き(矢印で表示)、そしてその密度から渋滞を検出、実際の13倍の速度で再生するというものである。
数千台のプローブカーの車両位置情報をリアルタイムに収集し、ストリームデータ処理により全車両速度と車両密度のリアルタイム計算を実現している。西澤氏は「すべての計算は1台のPCで処理できるという軽さがあり、またクエリでの計算アルゴリズムを切り替えることで開発・更新コストを大幅に削減できる」とその特徴をアピールした。
次に紹介したのは、“今”を分析して攻めの内部統制を実現する高速ストリームログ分析である。内部統制の重要性は改めてふれるまでもなく、また刻々と変化する事象を捉え新たなビジネスにつなげるというのも企業に課せられた大きな課題となっている。ここで必要になるのは、大量のログデータを高速に解析する高速ストリームログ分析であるというストーリーだ。
「今、ログデータは保存から活用の時代になっている。そこでプロキシサーバや業務システム、認証システムなどのログを高速に解析、ユーザーIDが不正に利用された場合は注意を促すメールを送信するなどして不正の抑止に使える」
たとえば、ある時刻に利用者Aがシステムにサインインした後、30分後に遠く離れたところから同一人物の名で不正者がサインインするようなことがあれば、この高速ストリームログ分析で直ちに不正防止の策を講じることが可能になる。ストレージデータ処理のひとつの活用例である。
西澤氏は「ストリームデータ処理は大量に発生する実世界データから“今”を分析する新技術。現場の状況や問題点をすぐに把握することで、迅速な意志決定が可能になる」と講演をまとめている。