ストリーム処理による実時間実世界情報基盤システム 筑波大学システム情報工学研究科コンピュータサイエンス専攻 研究代表者: 北川博之 研究協力者: 渡辺陽介,山田真一,稲守孝之 研究背景 センサ,カメラ,データ放送など,時々刻々と変化する情報を提供するストリーム型情報源の 増加と,それらに対する利用要求の高度化 ¾ 「センサに異常があれば通知して欲しい」,「センサデータを蓄積して後から分析したい」 ストリーム型情報源を用いたアプリケーション開発の効率化への要求 ¾ 現状では特定用途専用のプログラムを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/
© Copyright 2024 ExpyDoc