ポスター - StreamSpinner

ストリーム処理による実時間実世界情報基盤システム
筑波大学システム情報工学研究科コンピュータサイエンス専攻
研究代表者: 北川博之
研究協力者: 渡辺陽介,山田真一,稲守孝之
研究背景
„ センサ,カメラ,データ放送など,時々刻々と変化する情報を提供するストリーム型情報源の
増加と,それらに対する利用要求の高度化
¾ 「センサに異常があれば通知して欲しい」,「センサデータを蓄積して後から分析したい」
„ ストリーム型情報源を用いたアプリケーション開発の効率化への要求
¾ 現状では特定用途専用のプログラムを1から開発しなければならない
ストリームデータを管理するための新たな基盤システムの必要性
¾ RDBMSはディスクのデータ管理が目的であり,単体ではストリームデータを扱えない
研究目的
ストリームデータ管理基盤システムStreamSpinnerの開発と応用
システムアーキテクチャ
„
„
„
„
„
SQLライクな要求記述言語
データ到着に連動したイベント駆動型の連続的問合せ実行
RDBMSへのストリームデータの蓄積および検索機能
アプリケーション開発のためのJava API
アプリケーション
複数ノードによる分散ストリーム処理機能
プログラム
問合せ要求記述
StreamSpinner
要求記述例
MASTER Turbine
SELECT *
FROM Turbine[1sec, now]
WHERE Turbine.ttxd11 > 25
問合せ結果
Spinlet API
処理可能性判定器
GUI
問合せ最適化器
RDBMS
DBコネクタ
中継
モジュール
メディエータ
ストリームアーカイバ
DBコネクタ
問合せ解析器
ラッパー
ラッパー
クロック
ストリーム
RDBMS
センサー
カメラ
分散ストリーム処理
Stream
Spinner
Stream
Spinner
Stream
Spinner
Stream
Spinner
要求記述言語
MASTER master_source, …
[ INSERT INTO table_name ]
SELECT attribute, …
FROM source[window]
WHERE predicate AND …
„ MASTER節で問合せ実行のきっかけとなるイベントを指定
„ FROM節ではウインドウが定義可能
¾処理対象データを選択するための時間幅と起点を指定
„ 選択,結合,射影,集約,関数評価,テーブル作成・削除,行の
挿入処理が記述可能
デモ1: タービンのモニタリング
監視センター
・ 毎秒センサをつかって
ガスタービンを監視
要求例1 新規データと故障時のデータの距離を逐次計算して
近い挙動をしているなら,何らかの対策を講じたい
MASTER Clock_10minutes
SELECT dist(Current.ttxd11, History.ttxd11)
FROM
( SELECT array(Turbine.ttxd11) AS ttxd11
FROM Turbine[10 min] ) AS Current,
( SELECT array(Turbine_Failure.ttxd11) AS ttxd11
FROM Turbine_Failure[10 min, 1年前] ) AS History
① 新規データと蓄積データを配列型に変換
② 配列型データ間の距離を計算
距離
StreamSpinner
34.1
Turbine_Failure
timestamp
ttxd11
2002.9.14 …
68.3
array(Turbine_Failure.ttxd11)
array(Turbine.ttxd11)
[68.3, 60.1, …, 48.2]
[30.3, 30.4, …, 34.2]
48.2
①配列型に変換
…
…
10:10:11
34
様々な蓄積要求に対応可能
・ 温度でフィルタリングして蓄積
・ 温度の平均を取って蓄積
・ 他のデータと統合して蓄積
10:10:12
34.1
tnhrpm
1159.0
fsr
…
ttxd11
ttxd11
…
timestamp
…
指定されたデータを
DBに蓄積
…
Turbine_Log
timestamp
①配列型に変換
…
…
2002.9.14 …
RDB
②距離を計算
0.0
Turbine ストリーム
要求例2
10:10:13
34.2
日々の運転ログとして
温度データのみを逐次保存したい
1160.0
0.0
火力発電所
MASTER Turbine
INSERT INTO Turbine_Log
SELECT Turbine.ttxd11
FROM Turbine[1]
・ タービンを回転させて発電
・ タービンにセンサが付属
(温度,回転数,燃料投入量)
処理可能性の検証機能
„ 蓄積処理はストリーム処理に比べて非常に遅い ⇒ 蓄積処理の待ち行列からデータが溢れるとそのデータは蓄積されない
„ 蓄積要求の処理可能性を要求登録時に判定する機能を提供する
基本的な検証手法
Turbine_Log
①単位時間あたりに蓄積可能な ②問合せから
タプル数(=書込レート)を計測
処理木を生成
RDB
書込レート=30タプル/s
MASTER Turbine
INSERT INTO Turbine_Log
SELECT Turbine.ttxd11
FROM Turbine[1]
STORE
STORE
③単位時間当たりに生成される
タプル数(=生成レート)を推定
生成レート=1タプル/s
Π
Π
Turbine
ウインドウ=1
④ 「書込レート > 生成レート」
によって処理可能性を検証
到着レート=1タプル/s
判定画面
分散ストリーム処理
„ 地理的に離れた場所からのストリーム
データに対する利用要求
„ 集中型ストリーム処理の限界
¾1台のマシンへの負荷が増大
¾障害がサービス停止に直結
分散型ストリーム処理管理ツールORINOCO
„複数ノード上のStreamSpinner同士を連結
„全ノードに処理要求を一括送信
アプリケーション
プログラム
分散ストリーム処理管理ツール
ORINOCO
各ノードごとの
処理に分割
各ノードへ処理
要求を配布
オプティマイザ
Stream
Spinner
Stream
Spinner
処理指令ツール
GUI
監視ツール
要求定義
Stream
Spinner
全体監視
デモ2: オフィスの遠隔監視
要求例1 各部屋のエアコンの故障を知りたいので,
温度が30度以上なら通知して欲しい
セキュリティセンター
ネットワーク
温度が30度以上で
あればセキュリティ
センターへ通知
StreamSpinner
Timestamp Temp
AP
17:31:22
要求
定義
監視
アプリケーション
StreamSpinner
温度異常のうち
火災の場合には
各部屋へも通知
Stream
Spinner
23
Humid
75
警告
処理要求の配布
ORINOCO
StreamSpinner
Timestamp Temp
AP
17:31:22
Humid
22
要求
定義
70
警告
室内
センサ
室内
センサ
部屋
部屋
402
903
主な公表論文
"A Multiple Continuous Query Optimization Method Based on Query
Execution Pattern Analysis“, Proc. DASFAA2004, pp.443-456.
「連続的問合せに対する複数問合せ最適化手法」
電子情報通信学会論文誌, Vol. J-87-D-I, No. 10, pp. 873-886, 2004年.
「ストリーム管理システムにおける永続化要求の妥当性評価」
情報処理学会研究報告 Vol.2006, No.78(2006-DBS-140(Ⅱ)), pp.277-284
要求例2
他の部屋で火災が起きたら
直ちに通知して欲しい
関係する助成制度
科学技術研究費補助金基盤研究(A) (#18200005)
科学技術振興機 構戦略的創造研究推進事業CREST
「自律連合型基盤システムの構築」
プロジェクトWebサイト
http://www.streamspinner.org/