20120317 it系勉強会 in 神戸

48
岩瀬 高博 Kobe Digital Labo, Inc. Twitter:@okuyamaoo Mail:[email protected] http://sourceforge.jp/projects/setsuna/ Complex Event Processing Engine Setsuna

Upload: takahiro-iwase

Post on 31-May-2015

757 views

Category:

Technology


0 download

DESCRIPTION

Complex Event  Processingの概要とCEPエンジン Setsunaの紹介

TRANSCRIPT

Page 1: 20120317 IT系勉強会 in 神戸

岩瀬 高博

Kobe Digital Labo, Inc.

Twitter:@okuyamaoo

Mail:[email protected]

http://sourceforge.jp/projects/setsuna/

Complex Event Processing Engine

Setsuna

Page 2: 20120317 IT系勉強会 in 神戸

自己紹介 ・岩瀬 高博

> 株式会社 神戸デジタル・ラボ所属

> Twitter: @okuyamaoo

活動

>分散キーバリューストア okuyama の開発

>分散処理系の勉強会の参加、主催

>CEPエンジン Setsuna の開発

Page 3: 20120317 IT系勉強会 in 神戸

1.CEPってなに?

Complex Event Processing??

どんなことが出来るの?

どんなものがあるの?

2.Setsunaの紹介

アーキテクチャ

今できること

今後したいこと

アジェンダ

Page 4: 20120317 IT系勉強会 in 神戸

・どんなものがあるの?

CEPってなに?

・Complex Event Processing??

・どんなことが出来るの?

Page 5: 20120317 IT系勉強会 in 神戸

・CEPは

Complex Event Processingの略

意味は?

概要

Page 6: 20120317 IT系勉強会 in 神戸

・CEPは

Complex Event Processingの略

意味は?

Complex 複合

Event 出来事

Processing 処理

概要

=

=

=

Page 7: 20120317 IT系勉強会 in 神戸

・複合 イベント 処理

複数のイベント(出来事)を処理すること

概要

神戸は雨が降ってるよー

大阪は晴れてるな~

大阪から三ノ宮へ遊びに行くよ

イベント

Page 8: 20120317 IT系勉強会 in 神戸

・イベントを処理するのはいいが

今までとの違いは??

概要

神戸は雨が降ってるよー

大阪は晴れてるな~

大阪から三ノ宮へ遊びに行くよ

処理

処理

処理

Page 9: 20120317 IT系勉強会 in 神戸

・イベントを処理するのはいいが

今までとの違いは??

CEPの”C”の意味 = 複合がポイント!!

概要

神戸は雨が降ってるよー

大阪は晴れてるな~

大阪から三ノ宮へ遊びに行くよ

全てのイベントを横断的に処理

Page 10: 20120317 IT系勉強会 in 神戸

・今までのイベントを基に考えてみましょう

このデータがtwitterから流れてきたとします。

どんなことが出来る?

大阪は晴れてるな~

大阪から三ノ宮へ遊びに行くよ

神戸は雨が降ってるよー

Page 11: 20120317 IT系勉強会 in 神戸

・今までのイベントを基に考えてみましょう

このデータがtwitterから流れてきたとします。

それぞれのデータでは対して意味はなさそう

どんなことが出来る?

神戸は雨が降ってるよー

大阪は晴れてるな~

大阪から三ノ宮へ遊びに行くよ

Page 12: 20120317 IT系勉強会 in 神戸

・今までのイベントを基に考えてみましょう

このデータがtwitterから流れてきたとします。

それぞれのデータでは対して意味はなさそう

全部をひっくるめて見てみると??

どんなことが出来る?

神戸は雨が降ってるよー

大阪は晴れてるな~

大阪から三ノ宮へ遊びに行くよ

Page 13: 20120317 IT系勉強会 in 神戸

・全部ひっくるめて見てみる。

どんなことが出来る?

神戸は雨が降ってるよー

大阪は晴れてるな~

大阪から三ノ宮へ遊びに行くよ

大阪は晴れている

Page 14: 20120317 IT系勉強会 in 神戸

・全部ひっくるめて見てみる。

どんなことが出来る?

神戸は雨が降ってるよー

大阪は晴れてるな~

大阪から三ノ宮へ遊びに行くよ

大阪は晴れている

神戸は雨が降っている

Page 15: 20120317 IT系勉強会 in 神戸

・全部ひっくるめて見てみる。

どんなことが出来る?

神戸は雨が降ってるよー

大阪は晴れてるな~

大阪から三ノ宮へ遊びに行くよ

大阪は晴れている

神戸は雨が降っている

大阪から神戸に行こうとしている

Page 16: 20120317 IT系勉強会 in 神戸

どんなことが出来る?

傘いるよ!!

Page 17: 20120317 IT系勉強会 in 神戸

・と、このようにデータの流れを横断的に見ていくと、

いままで見えなかったことが見えてきたりします

これを高速に処理して

「傘いるよ!!」まで

面倒を見てくれるのが

CEP

どんなことが出来る?

Page 18: 20120317 IT系勉強会 in 神戸

・色々製品はあります

どんなものがある?

Oracle CEP

Sybase CEP

国産も日立や、日本IBMなどが製品化しています

OSSは現在活発なプロダクトは国内にはなさそう

Page 19: 20120317 IT系勉強会 in 神戸

・色々製品はあります

どんなものがある?

Oracle CEP

Sybase CEP

国産も日立や、日本IBMなどが製品化しています

OSSは現在活発なプロダクトは国内にはなさそう

Page 20: 20120317 IT系勉強会 in 神戸

・今後したいこと

Setsunaの紹介?

・アーキテクチャ

・今できること

Page 21: 20120317 IT系勉強会 in 神戸

・Setsunaの名前の由来

漢字では刹那と書きます

その前に

小数の単位を表す用語日本には以下のようなものがあります。

分、厘、毛、糸、忽、微、繊、沙、塵、埃、渺、漠、模

糊、逡巡、須臾、瞬息、弾指、刹那、六徳、虚空、清浄、阿頼耶、阿摩羅、涅槃寂静(計24単位) (wikipediaより)

速そう >10-24を表す

Page 22: 20120317 IT系勉強会 in 神戸

・今後したいこと

Setsunaの紹介

・アーキテクチャ

・今できること

Page 23: 20120317 IT系勉強会 in 神戸

・言語

Java

・構成要素

Setsunは1つのコア

1.SetsunaCore

3つのカスタマイズ要素で構成されています

1.Adapter

2.Query

3.UserEvent

アーキテクチャ

Page 24: 20120317 IT系勉強会 in 神戸

・構成要素

1.SetsunaCore

Setsuna本体

カスタマイズ要素を制御し、全体を

コントロールしています

データベースを内蔵し投入されるデータの

管理を行う

アーキテクチャ

Page 25: 20120317 IT系勉強会 in 神戸

・構成要素

1.Adapter

AdapterはSetsunaにイベントを入力する

部分になります

入力後のデータを好きな単位で分解して

カラム情報としてSetsuna本体のDBに

格納します

アーキテクチャ

Page 26: 20120317 IT系勉強会 in 神戸

・構成要素

2.Query

Adapterからの入力に検索をおこない

データの変化を調べる箇所

トリガーというごく単純な変化を掴む箇所

クエリーというSQLで複雑に検証する箇所

アーキテクチャ

Page 27: 20120317 IT系勉強会 in 神戸

・構成要素

3.UserEvent

Queryで目当てのデータを見つけた

場合に実行したいタスク

先ほどの例の「傘いるよ!!」を伝える部分

アーキテクチャ

Page 28: 20120317 IT系勉強会 in 神戸

・Over view

アーキテクチャ

H2Database

[InMemoryDB]

Setsuna

Core

Page 29: 20120317 IT系勉強会 in 神戸

・Over view

アーキテクチャ

H2Database

[InMemoryDB]

Setsuna

Core

Page 30: 20120317 IT系勉強会 in 神戸

・Over view

アーキテクチャ

H2Database

[InMemoryDB]

Setsuna

Core

Query

Page 31: 20120317 IT系勉強会 in 神戸

・Over view

アーキテクチャ

H2Database

[InMemoryDB]

Setsuna

Core

Query

Page 32: 20120317 IT系勉強会 in 神戸

・今後したいこと

Setsunaの紹介

・アーキテクチャ

・今できること

Page 33: 20120317 IT系勉強会 in 神戸

・先日リリースしたSetsuna-0.0.1では

あらかじめ、3つの構成要素を実装済みで

リリースしています

今できること

Page 34: 20120317 IT系勉強会 in 神戸

・Adapter

パイプライン入力を受付るAdapterを

標準としています

OS標準のコマンドと簡単に連携できます

今できること

$top –b –d 1 | grep –line-buffered top “top -” | ¥

java -jar setsuna.jar ¥

–stream top

Page 35: 20120317 IT系勉強会 in 神戸

・Query

起動引数でトリガーとクエリーを渡せます

今できること

Page 36: 20120317 IT系勉強会 in 神戸

・Query

-trigger 指定

今できること

$top –b –d 1 | grep –line-buffered top “top -” | ¥

java -jar setsuna.jar

–stream top

–trigger “COLUMN10 > 1”

Page 37: 20120317 IT系勉強会 in 神戸

・Query

-query 指定

今できること

$top –b –d 1 | grep –line-buffered top “top -” | ¥

java -jar setsuna.jar –stream top

–trigger “COLUMN10 > 1” ¥

-query “select

*

from (

select

avg(to_number(COLUMN10)) as ldavg

from

top

where

C_TIME > (current_timestamp - 60000)

) ldavgtable

where

ldavg > 2”

Page 38: 20120317 IT系勉強会 in 神戸

・UserEvent

起動オプション実行したいイベントを指定

できます。今のところサポートしているのは

・コマンドラインでの命令

・SQL実行

今できること

Page 39: 20120317 IT系勉強会 in 神戸

・UserEvent

-eventでコマンドや、独自で作成したシェルを呼び出す

今できること

$top –b –d 1 | grep –line-buffered top “top -” | ¥

java -jar setsuna.jar

–stream top

–trigger “COLUMN10 > 1” ¥

-query “select * from ・・・省略 ・・・”

-event “logger ロードアベレージの平均がヤバいです!!!!!”

Page 40: 20120317 IT系勉強会 in 神戸

・UserEvent

-eventqueryでSetsunaの内部DBからデータを取得する

今できること

$top –b –d 1 | grep –line-buffered top “top -” | ¥

java -jar setsuna.jar

–stream top

–trigger “COLUMN10 > 1” ¥

-query “select * from ・・・省略 ・・・”

-eventquery “select

avg(COLUMN10) as ldavg

from

top

where

C_TIME > (current_timestamp – 60000)”

Page 41: 20120317 IT系勉強会 in 神戸

今までの例だと1つのデータのストリームに処理している

複数の異なるストリームのデータを処理するには??

>複数のプロセスを立ち上げるだけでOK

今できること

ターミナル1 ターミナル2

互いのデータを参照できる

Page 42: 20120317 IT系勉強会 in 神戸

・異なるストリームのデータを処理する

これは複数のプロセスを立ち上げた場合にどれか1つの

Setsunaが自動的にDBサーバとなり動くため

そのDBを全Setsunaプロセスで共有するため全ての

箇所から全てのデータが参照可能

今できること

H2Database

[InMemoryDB]

SetsunaCore

SetsunaCore AccessLog

Adapter

top –d 1

Adapter

Query

Query

Mail to

API exec

Event

Event

Page 43: 20120317 IT系勉強会 in 神戸

・ロードマップ

1.パイプ入力以外のインプット

さすがに、パイプラインの入力方式だけ

では辛いので色々な方式を作りたい

>Server型 Server型で立ち上げる(syslog-ngなど?)

>NOSQL連携系 okuyamaとかと繋いで、トリガー代わりに

>fluentdなどのコレクター系と繋ぐ 収集系のOutputと繋ぐと幸せになれそう

今後したいこと

Page 44: 20120317 IT系勉強会 in 神戸

・今後したいこと

Setsunaの紹介

・アーキテクチャ

・今できること

Page 45: 20120317 IT系勉強会 in 神戸

・ロードマップ

2.UserEventの拡張

今はSetsunaが稼働しているサーバ上のもの

しか呼び出せないので、リモート越しのライブラリを

呼び出せる用にする

今後したいこと

SetsunaCore Network

SetsunaCore

イベントを配置

イベントを配置

Page 46: 20120317 IT系勉強会 in 神戸

・ロードマップ

3.Setsunaそのものの分散化

1台のサーバでしか稼働しないので、

今後複数のサーバ上で同調できるようにしたい

今後したいこと

Setsuna

クラスター

Page 47: 20120317 IT系勉強会 in 神戸

最後に

・Information

Development

http://sourceforge.jp/projects/setsuna/

Facebook

http://www.facebook.com/takahiro.iwase

twitter

@okuyamaoo

Page 48: 20120317 IT系勉強会 in 神戸

Thank you!

Setsuna