Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event...

11
Session 8: Data Streams and Sensor Networks 担当: 渡辺陽介(東京工業大学) SIGMOD2012勉強会】

Transcript of Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event...

Page 1: Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event Processing over XML Streams 概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため

Session 8:

Data Streams and Sensor Networks

担当: 渡辺陽介(東京工業大学)

【SIGMOD2012勉強会】

Page 2: Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event Processing over XML Streams 概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため

本セッションの概要

1. High-Performance Complex Event Processing over XML Streams Barzan Mozafari, Kai Zeng, Carlo Zaniolo (UCLA)

XMLストリーム上の複合イベント処理

2. Prediction-Based Geometric Monitoring Over Distributed Data Streams N. Giatrakos (University of Piraeus), A. Deligiannakis, M. Garofalakis

(Technical University of Crete), I. Sharfman, A. Schuster (Faculty of Computer Science Technion)

予測モデルによる分散ストリームの監視の効率化

3. Online Windowed Subsequence Matching over Probabilistic Sequences Zheng Li, Tingjian Ge (University of Massachusetts)

確率的データストリーム上のパターンマッチング

Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 2

Page 3: Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event Processing over XML Streams 概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため

[1本目] High-Performance Complex Event Processing over XML Streams

概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため

の問合せ言語XSeqの提案

Visibly Pushdown Automaton に基づくXSeqの実装

既存の言語(XPath等)をCEPに用いる際の問題点とは? シーケンスに対する条件を簡潔に書けない

記述が複雑だと処理効率も良くない

シーケンスのパターン記述にクリーネ閉包が扱えない

Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 3

<result>{

for $t1 in doc("auction.xml")//Stock[@stock_symbol=‘DAGM’] return

<head>{$t1/@close}{

for $t4 in $t1/following-sibling::Stock[@stock_symbol=‘DAGM’] where $t4/@close<=$t1/@close

and (every $t2 in for $x in $t1/following-sibling::Stock[@stock_symbol=‘DAGM’]

where $x<<$t4 return $x satisfies $t2/@close<=$t1/@close and $t2/@close>=$t4/@close)

and (every $t2 in for $x in $t1/following-sibling::Stock[@stock_symbol=‘DAGM’]

where $x<<$t4 return $x, $t3 in for $x in $t2/following-sibling::Stock[@stock_symbol=‘DAGM’]

where $x<<$t4 return $x satisfies $t2/@close>=$t3/@close and $t3/@close>=$t4/@close)

return <bottom> {$t4/@close} </bottom>

} </head>

}</result>

Figure1より引用

株価が下落しているシーケンスを検出する問合せをXPath +

XQueryで書いた場合

Page 4: Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event Processing over XML Streams 概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため

Sequential aggregate: クリーネ閉包の変数用の機能

• First($A), last($A), prev($A)など

• Sum,max,countなど通常の集約処理も

XSeq: XMLストリーム上のCEP用の問合せ言語

家系図(son, daughter)のXMLに対する問合せ記述例

Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 4

//daughter[@Cname=‘Mary’]/son/@Bdate 例: Maryの息子の誕生日を探す

//son[@Bplace=‘NY’](/son[@Bplace=‘LA’])*/son[@Bplace=‘NY’]/@Cname

例: NY出身の祖先との間にLA出身の先祖が0人以上いて,NY出身な人の名前

return $B@Cname

from //son[@Bplace=‘NY’] (/$A)* /$B[@Bplace=‘NY’]

where tag(A)=‘son’ and A@Bplace=‘LA’ and tag(B)=‘son’ 変数とwhere節を使って書き直したもの

return $X@Cname, $Y@Cname

from //daughter[@Cname=‘Mary’] ¥ $X ¥ $Y

return $Y@Cname

from //daughter[@Cname=‘Mary’] / ¥ $X ¥ $Y

例: Maryのすぐ下の兄弟2人

の名前を探す

例: Maryの2番目の子供の

名前を探す

Kleene-*

Immediately

next sibling

first child

Page 5: Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event Processing over XML Streams 概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため

Visibly Pushdown Automata (VPA)

可視プッシュダウンオートマトン[STOC2004]

プッシュダウンオートマトンの非決定性による追跡の難しさを改善したもの?(この表現は間違いの可能性が高いです)

入力文字列集合をcall, return, internalの3種類に明確に分離

状態qで入力cを読んだら,スタックへγ を積み,q’へ遷移

状態qで入力rかつスタック先頭がγ ならγ を取り出し,q’へ

状態qで入力iを読んだら,スタックを変更せずにq’へ遷移

XSeqのパターンをVPAに変換

クリーネ閉包の要素の開始タグを読んだ 時やsiblingを調べる時などにスタックが 積まれる模様

Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 5

'/

qqc

'/

qqr

'qqi

Figure 5より

例: (/son)*

Page 6: Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event Processing over XML Streams 概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため

実験: XSeq vs. XPath/Xquery engines

比較対象

MonetDB/XQuery [6]

Zorba [4]

XSeq (Java)

XSQ [25]

Xpathのみ

Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 6

Figure 7より引用

Page 7: Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event Processing over XML Streams 概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため

[2本目] Prediction-Based Geometric Monitoring Over Distributed Data Streams

概要 分散ストリームを監視するための既存手法Geometric Monitoring

に,予測モデルを導入してさらに通信量を減らした!

想定環境 観測点が複数サイトに分散し,各サイトのデータをCoordinatorで

集約(ここでは平均)することで真の観測値を得る 例: 各ネットワークルータのパケット情報からDoS攻撃を検出する

Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 7

サイト1 サイト2 サイトn

Coordinator

vi(t): サイトごとの

観測データ(d次元)

v(t): 集約した値

v1(t) v2(t) vn(t)

モニタリング関数(と閾値)

f(v(t)) > T 各サイトでモニタリング関数を大まかにでもチェックできれば通信量が減るのでは?

Page 8: Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event Processing over XML Streams 概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため

既存手法 Geometric Monitoring Framework [18, 20]

Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 8

時刻tsに計算した平均値eを全サイトで共有し,時刻ts以降のモニタリング関数のチェックを各サイトでできるようにする

各サイトiは,現時刻tの観測値vi(t)と時刻tsのvi(ts)との差を計算 vi(ts) が vi(t)へ変化したなら,平均値v(t)もeを起点に同じ量変化しうる

ui = e+ (vi(t) -vi(ts))

時刻tの平均値v(t)が存在しうるのは,u1,…,unからなる領域内 各uiとeの間を直径とする円を描いて,和をとるとこの領域を完全に包含

各サイトが自分の円の内側のみをチェックする

灰色の領域内にf(v(t)) > Tとなるv(t)が

含まれうる場合は,実際の平均値の

計算が必要

Figure1より引用

Page 9: Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event Processing over XML Streams 概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため

Prediction-based Monitoring

時刻tsと時刻tの間隔が長くなると,円が大きくなりやすい

= 実際に平均値を求めなければならなくなる

円を小さく維持するには?

単に観測値同士の差(vi(t) - vi(ts))を取るのではなく,予測値を出して観測値と予測値の差(vi(t) - vi

p(ts))を使う

予測方法

Static predictor

Linear growth predictor

Velocity/acceleration predictor

Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 9

Figure2より引用

Page 10: Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event Processing over XML Streams 概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため

[3本目] Online Windowed Subsequence Matching over Probabilistic Sequences

概要

確率的ウインドウサブシーケンスマッチング(PWSM)の提案

ExactアルゴリズムとRandomized approximationアルゴリズム

効率化のためのフィルタリングアルゴリズム

3種類のnegation のパターンを含んだPWSM

「確率的」がつかないウインドウサブシーケンスマッチング

Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 10

Figure 1より引用

心電計

0

1

2

3 p = 30003

ピークの間隔が短すぎるケースを検出

範囲ごとに文字列

表現へ変換

問合せパターン

次のピークが来ていないケースを検出

(360タプル/秒)

p = 30303 ウインドウ

Page 11: Session 8: Data Streams and Sensor Networks 2013-07-05 · [1本目] High-Performance Complex Event Processing over XML Streams 概要 XMLストリーム上で,複合イベント処理(CEP)を実現するため

確率的ウインドウサブシーケンスマッチング 想定

ストリーム: X = X[1]X[2],… (各X[i]は独立な確率変数) パターン(長さl): p = p[1]p[2],…,p[l] X[i]を起点にしてパターンpと最初にマッチするものを探したときのサブ

シーケンス長W[i]

問題 W[i]がウインドウw以下に収まる確率Pr(W[i] ≤ w)が閾値τ より大きけ

ればインデックスiを報告

Session 8: Data Streams and Sensor Networks 担当:渡辺(東工大) 11

Possible world

P(X[1]=2) =0.5

P(X[1]=3) =0.5

X[1] X[2] X[3] X[4] X[5] X[6] X[7] X[8]

p=303

ウインドウ幅w = 4

Figure2より引用