SlideShare une entreprise Scribd logo
1  sur  27
ストリーム処理とSensorBee
第4回ビックデータ処理基盤研究会
田中 大輔
2016/03/22
自己紹介
 田中大輔 (@disktnk)
– 〜2008 理工学部機械工学科卒
– 〜2015 某金融SIer
– 最後は金融工学ライブラリ屋さん
– 2015〜 某ピー社
– アニオタ枠採用
– SensorBee 開発
– 他、最近は製造業系の案件に関わっている
2
本日話す内容
 なぜSensorBeeを必要としていたか (〜3分)
 ストリーム処理の基本とSensorBeeでの実現 (15〜20分)
 質問
– 時間が余るようでしたら、SensorBeeを使用したデモ(動画)を何個かお見せします。
 本日のNGワード: 人工知能、リアルタイム
3
本日話す内容
 なぜSensorBeeを必要としていたか (〜3分)
 ストリーム処理の基本とSensorBeeでの実現 (15〜20分)
 質問
– 時間が余るようでしたら、SensorBeeを使用したデモを何個かお見せします。
4
 データの中央集権的収集は困難になる
– データ量の問題: 日本にある監視カメラ・スマートフォンの生成データは推定1,000PB/Year
– プライバシーの問題: クラウドへデータをアップロードしたくない・できない
– 情報量の問題: データ量に反して生成データの価値密度は薄い
5
IoTアプリケーションの直面する課題
 データを一か所に集めない前提のもとで深い分析を実現する
– ネットワークのエッジ上のデバイスのローカルでデータを解析
– 学習モデルなど抽出された情報だけがクラウド上に挙げられ、大域的な解析を行う
6
エッジヘビーコンピューティング
 Deep Learning + Edge-Heavy Networking
– Chainer
– SensorBee
7
シームレスなデータ活用
参考: Deep Intelligence in-Motion (DIMo)
8
Industries (Partners)Industries (PFN-involved)
SensorBee™: Streaming Processing Engine for IoT
Machine
learning
Deep Learning
Auto Manufacturing
Self-driving
/ADAS
Connected
Optimization
Predictive
maintenance
Healthcare
Drug
discovery
iPS cell
Retail
CRM
Ad
optimization
Surveillance
Security
Tracking
DeepIntelligence
in-Motion(DIMo)
Statistics
Tools
Computer
vision
Detect/Track/Rec
ognize
Reinforcement
learning
Distributed/Curri
culum
Time-series
RNN /
Representation
Sensor
fusion
Multi-modal
Annotation
Hawk
Feedback/Action
User applications
Camera UI
Kanohi
…
Libraries
Management
本日話す内容
 なぜSensorBeeを必要としていたか (〜3分)
 ストリーム処理の基本とSensorBeeでの実現 (15〜20分)
 質問
– 時間が余るようでしたら、SensorBeeを使用したデモを何個かお見せします。
9
1. (Cotinuous) Queryの登録
2. データを流す、あるいは既に流れている
3. 入力されたデータに対して処理を行う “on the fly”
4. 処理結果を(クライアントに対して)継続的に出力する
Data Stream Management System(DSMS)
10
Continuous Queries
Streaming Inputs Streaming Outputs
data stream
1
3
42
DBMSとDSMSの比較
11
DBMS DSMS
Data persistent relations streams, time windows
Data access random sequential, one-pass
Updates arbitrary append-only
Update rates relatively low high, bursty
Processing model query-driven (pull-based) data-driven (push-based)
Queries one-time continuous
Query plans fixed adaptive
Query optimization one query multi-query
Query answers exact exact or approximate
Latency relatively high low
[Golab et al., 2010] p3 “Summary of differences between a DBMS and a DSMS”
Continuous Queryのセマンティクス
 Operators
– 入力された1つあるいは複数のデータに対して処理する単位。
– stream-to-relation, relation-to-relation, relation-to-stream
 Queues
– Operator間のデータ。SensorBeeでは1つのデータをTupleと呼ぶ。
 Synopses
– ストリームの操作や状態1つ1つの(簡易)表現の単位。Operatorとは独立してQuery
Planの最適化を考えるとき便利。SensorBeeでは特に定義していない。
12
[Aras et al., 2006]
[Jain et al., 2008]
Continuous Query Operators: シンプルな例
 selection
 join
 count
13
σa
S1 a a a a
f
pass or drop
⋈
S1
b d
c a d b a
insert
S2
b d g f e
probe
9S1 10 9 8 7
update (to “10”)
b a
f
generate result
b
Continuous Query Operator TypeとBQL
 BQL (SensorBeeで実装されているCQLの方言) のサンプル
14
SELECT RSTREAM S1.id, S1.hoge1, S2.hoge2
FROM S1 [RANGE 1 TUPLES], S2 [RANGE 1 TUPLES]
WHERE S1:id = S2:id;
BQL: Stream-to-Relation
 BQLサンプル
– Tuple based: [RANGE 1 TUPLES]
Time based: [RANGE 1 SECONDS]
– Buffering: [RANGE 3 SECONDS, DROP NEWEST IF FULL]
– Sliding Window, Tumbling Window (SensorBeeでは未サポート)
– セマンティクスが難しい。。
15
SELECT RSTREAM S1.id, S1.hoge1, S2.hoge2
FROM S1 [RANGE 1 TUPLES], S2 [RANGE 1 TUPLES]
WHERE S1:id = S2:id;
stream-to-relation
BQL: Relation-to-Relation
 BQLサンプル
– Selection
– Join
– Aggregation
– Filter etc...
16
SELECT RSTREAM S1.id, S1.hoge1, S2.hoge2
FROM S1 [RANGE 1 TUPLES], S2 [RANGE 1 TUPLES]
WHERE S1:id = S2:id;
relation-to-relation
BQL: Relation-to-Stream
 BQLサンプル
– RSTREAM / ISTREAM / DSTREAM
Example: http://sensorbee.readthedocs.org/en/latest/bql.html#id4
– Detail: http://sensorbee.readthedocs.org/en/latest/bql.html#relation-to-
stream-operators
17
SELECT RSTREAM S1.id, S1.hoge1, S2.hoge2
FROM S1 [RANGE 1 TUPLES], S2 [RANGE 1 TUPLES]
WHERE S1:id = S2:id;
relation-to-stream
SensorBeeの処理トポロジー
 Topology
– SensorBeeでは、入力から出力までの1つのまとまりをTopologyとして表現
– DAGとして表現される
18
Continuous Queries
Streaming Inputs
data stream
SensorBee: Source
 Source
– Topologyへの入力を表現するComponent
19
Continuous QueriesSources
data stream
S1
S2
S3
CREATE SOURCE S1 TYPE fluentd WITH ...;
CREATE SOURCE S2 TYPE mqtt WITH ...;
CREATE SOURCE S3 TYPE user_source WITH ...;
SensorBee: Stream
 Stream
– Tupleへの操作 (内部実装的には “Box”)
20
Streams
Sources
S1
S2
S3
CREATE STREAM B1 AS SELECT ISTREAM
udf1(*) FROM S1 [RANGE 1 SECONDS], S2 [RANGE 1SECONDS]
WHERE S1:id = S2:id;
B1
B3
B2
SensorBee: Sink
 Sink
– Topologyからの出力を定義する
21
Streams
Sources
S1
S2
S3
B1
B3
B2
Sinks
D1
D2
D3
CREATE SINK D1 TYPE fluentd WITH ...;
INSERT INTO D1 FROM B1;
CREATE SINK D2 TYPE mqtt WITH ...;
CREATE SINK D3 TYPE user_sink WITH ...;
SensorBee: User Defined Stream Function (UDSF)
 UDSF
– 新たなSourceとして振る舞えるユーザ定義関数
22
Streams
Sources
S1
S2
S3
B1
B3
B2
Sinks
D1
D2
D3
CREATE SOURCE B2 AS SELECT RSTREAM
* FROM udsf1(“S2”) [RANGE 1 SECONDS];
SensorBee: User Defined State (UDS)
 UDS
– ストリーム上の各Componentから共通でアクセスできるShared State
23
Streams
Sources
S1
S2
S3
B1
B3
B2
Sinks
D1
D2
D3
CREATE STATE G1 TYPE user_state WITH...;
CREATE SOURCE B3 AS SELECT ISTREAM
* udf3(“G1”, B2:*), S3:*
FROM B2 [RANGE 1 SECONDS], S3 [RANGE 1 SECONDS]
WHERE B2:foo = S3:foo;
G1
Example: Twitterのつぶやきの分類
 機械学習と組み合わせたデモ
– Tutorial収録 http://sensorbee.readthedocs.org/en/latest/tutorial.html#using-
machine-learning
– Elasticsearchと機械学習を実際に連携させる
http://www.slideshare.net/nobu_k/elasticsearch-59627321
24
Twitter
Gen
der
Ag
e
Form
atting
Form
atting
Form
atting Labeli
ng
fluentd
他、詳細について
 http://sensorbee.io
 http://docs.sensorbee.io/en/latest/
 https://github.com/sensorbee/sensorbee
25
参考文献
 A. Arasu, S. Badu, and J. Widom. The CQL continuous query language:
Semantic foundations and query execution, 2006.
 N. Jain, S. Mishra, A. Srinivasan, J. Gehrke, J. Widom, H. Balakrishnam,
U. Cetintemel, M. Cheriniack, R. Tibbertts, and S. Zdonik. Towerds a
streaming SQL standard, 2008.
 Lukasz Golab, M. Tamer Özsu. Data Stream Management, 2010.
26
スライドは以上です。ご静聴ありがとうございました。
Copyright © 2016-
Preferred Networks All Right Reserved.

Contenu connexe

Tendances

TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門tak9029
 
Jubakit の紹介
Jubakit の紹介Jubakit の紹介
Jubakit の紹介kmaehashi
 
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本Norihiko Nakabayashi
 
Caffeのデータレイヤで夢が広がる話
Caffeのデータレイヤで夢が広がる話Caffeのデータレイヤで夢が広がる話
Caffeのデータレイヤで夢が広がる話Masaki Saito
 
コンピュータビジョン 1章
コンピュータビジョン 1章コンピュータビジョン 1章
コンピュータビジョン 1章motimune
 
Pred net使ってみた
Pred net使ってみたPred net使ってみた
Pred net使ってみたkoji ochiai
 
Kerasで深層学習を実践する
Kerasで深層学習を実践するKerasで深層学習を実践する
Kerasで深層学習を実践するKazuaki Tanida
 
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組みDeep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組みKenta Oono
 
進化するChainer
進化するChainer進化するChainer
進化するChainerYuya Unno
 
Amazon Picking Challenge 結果報告
Amazon Picking Challenge 結果報告Amazon Picking Challenge 結果報告
Amazon Picking Challenge 結果報告 Preferred Networks
 
Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能Ryosuke Okuta
 
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例Yahoo!デベロッパーネットワーク
 
実社会・実環境におけるロボットの機械学習
実社会・実環境におけるロボットの機械学習実社会・実環境におけるロボットの機械学習
実社会・実環境におけるロボットの機械学習Kuniyuki Takahashi
 
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7Kotaro Nakayama
 
新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知るMasahiro Hidaka
 

Tendances (20)

PreadNet
PreadNetPreadNet
PreadNet
 
Tesseract ocr
Tesseract ocrTesseract ocr
Tesseract ocr
 
CuPy解説
CuPy解説CuPy解説
CuPy解説
 
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門
 
Jubakit の紹介
Jubakit の紹介Jubakit の紹介
Jubakit の紹介
 
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
 
Caffeのデータレイヤで夢が広がる話
Caffeのデータレイヤで夢が広がる話Caffeのデータレイヤで夢が広がる話
Caffeのデータレイヤで夢が広がる話
 
コンピュータビジョン 1章
コンピュータビジョン 1章コンピュータビジョン 1章
コンピュータビジョン 1章
 
Pred net使ってみた
Pred net使ってみたPred net使ってみた
Pred net使ってみた
 
Kerasで深層学習を実践する
Kerasで深層学習を実践するKerasで深層学習を実践する
Kerasで深層学習を実践する
 
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組みDeep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
 
進化するChainer
進化するChainer進化するChainer
進化するChainer
 
Amazon Picking Challenge 結果報告
Amazon Picking Challenge 結果報告Amazon Picking Challenge 結果報告
Amazon Picking Challenge 結果報告
 
Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能
 
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
 
実社会・実環境におけるロボットの機械学習
実社会・実環境におけるロボットの機械学習実社会・実環境におけるロボットの機械学習
実社会・実環境におけるロボットの機械学習
 
Open-hardware and Japan
Open-hardware and JapanOpen-hardware and Japan
Open-hardware and Japan
 
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
 
新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る
 
夏前ゼミ
夏前ゼミ夏前ゼミ
夏前ゼミ
 

En vedette

Scaling Apache Storm (Hadoop Summit 2015)
Scaling Apache Storm (Hadoop Summit 2015)Scaling Apache Storm (Hadoop Summit 2015)
Scaling Apache Storm (Hadoop Summit 2015)Robert Evans
 
Twitterのリアルタイム分散処理システム「Storm」入門
Twitterのリアルタイム分散処理システム「Storm」入門Twitterのリアルタイム分散処理システム「Storm」入門
Twitterのリアルタイム分散処理システム「Storm」入門AdvancedTechNight
 
Apache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignApache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignMichael Noll
 
Global Innovation Nights - Spark
Global Innovation Nights - SparkGlobal Innovation Nights - Spark
Global Innovation Nights - SparkWorks Applications
 
情報セキュリティと標準化I 第6回-公開用
情報セキュリティと標準化I 第6回-公開用情報セキュリティと標準化I 第6回-公開用
情報セキュリティと標準化I 第6回-公開用Ruo Ando
 
Enterprise UI/UX - design as code
Enterprise UI/UX - design as codeEnterprise UI/UX - design as code
Enterprise UI/UX - design as codeWorks Applications
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkTakanori Suzuki
 
形式手法とalloyの紹介
形式手法とalloyの紹介形式手法とalloyの紹介
形式手法とalloyの紹介Daisuke Tanaka
 
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォームJubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォームPreferred Networks
 
JVM上でのストリーム処理エンジンの変遷
JVM上でのストリーム処理エンジンの変遷JVM上でのストリーム処理エンジンの変遷
JVM上でのストリーム処理エンジンの変遷Sotaro Kimura
 
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本Sotaro Kimura
 
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集matsu_chara
 
ディープラーニングが活かすIoT
ディープラーニングが活かすIoTディープラーニングが活かすIoT
ディープラーニングが活かすIoTPreferred Networks
 
Kubernetesを触ってみた
Kubernetesを触ってみたKubernetesを触ってみた
Kubernetesを触ってみたKazuto Kusama
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開Seiya Tokui
 
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜Takahiro Inoue
 
Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...
Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...
Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...StampedeCon
 

En vedette (20)

Scaling Apache Storm (Hadoop Summit 2015)
Scaling Apache Storm (Hadoop Summit 2015)Scaling Apache Storm (Hadoop Summit 2015)
Scaling Apache Storm (Hadoop Summit 2015)
 
ストリームデータ分散処理基盤Storm
ストリームデータ分散処理基盤Stormストリームデータ分散処理基盤Storm
ストリームデータ分散処理基盤Storm
 
Twitterのリアルタイム分散処理システム「Storm」入門
Twitterのリアルタイム分散処理システム「Storm」入門Twitterのリアルタイム分散処理システム「Storm」入門
Twitterのリアルタイム分散処理システム「Storm」入門
 
Apache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignApache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - Verisign
 
Global Innovation Nights - Spark
Global Innovation Nights - SparkGlobal Innovation Nights - Spark
Global Innovation Nights - Spark
 
情報セキュリティと標準化I 第6回-公開用
情報セキュリティと標準化I 第6回-公開用情報セキュリティと標準化I 第6回-公開用
情報セキュリティと標準化I 第6回-公開用
 
Enterprise UI/UX - design as code
Enterprise UI/UX - design as codeEnterprise UI/UX - design as code
Enterprise UI/UX - design as code
 
20141001
2014100120141001
20141001
 
Demystifying kubernetes
Demystifying kubernetesDemystifying kubernetes
Demystifying kubernetes
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
 
形式手法とalloyの紹介
形式手法とalloyの紹介形式手法とalloyの紹介
形式手法とalloyの紹介
 
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォームJubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
 
JVM上でのストリーム処理エンジンの変遷
JVM上でのストリーム処理エンジンの変遷JVM上でのストリーム処理エンジンの変遷
JVM上でのストリーム処理エンジンの変遷
 
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
 
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
 
ディープラーニングが活かすIoT
ディープラーニングが活かすIoTディープラーニングが活かすIoT
ディープラーニングが活かすIoT
 
Kubernetesを触ってみた
Kubernetesを触ってみたKubernetesを触ってみた
Kubernetesを触ってみた
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開
 
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
 
Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...
Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...
Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...
 

Similaire à ストリーム処理とSensorBee

アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングYosuke Mizutani
 
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係SORACOM,INC
 
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコシステムズ合同会社
 
クラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccampクラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccampMasahiro NAKAYAMA
 
[db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ! by 株式会社日立製作所 村上順一
 [db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ!  by 株式会社日立製作所 村上順一 [db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ!  by 株式会社日立製作所 村上順一
[db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ! by 株式会社日立製作所 村上順一Insight Technology, Inc.
 
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみようGoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみようHidemasa Togashi
 
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣aslead
 
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Hironobu Isoda
 
PSpiceの活用方法 (2005年)
PSpiceの活用方法 (2005年)PSpiceの活用方法 (2005年)
PSpiceの活用方法 (2005年)Tsuyoshi Horigome
 
エッジヘビーコンピューティングと機械学習
エッジヘビーコンピューティングと機械学習エッジヘビーコンピューティングと機械学習
エッジヘビーコンピューティングと機械学習Preferred Networks
 
1000人規模で使う分析基盤構築 〜redshiftを活用したeuc
1000人規模で使う分析基盤構築  〜redshiftを活用したeuc1000人規模で使う分析基盤構築  〜redshiftを活用したeuc
1000人規模で使う分析基盤構築 〜redshiftを活用したeucKazuhiro Miyajima
 
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro YokoyamaInsight Technology, Inc.
 
ハードウェアによる仮想化支援機能を利用したハイパバイザーIPS
ハードウェアによる仮想化支援機能を利用したハイパバイザーIPSハードウェアによる仮想化支援機能を利用したハイパバイザーIPS
ハードウェアによる仮想化支援機能を利用したハイパバイザーIPSFFRI, Inc.
 
Packetbeatの基礎から、IoTデバイス異常検知への応用まで
Packetbeatの基礎から、IoTデバイス異常検知への応用までPacketbeatの基礎から、IoTデバイス異常検知への応用まで
Packetbeatの基礎から、IoTデバイス異常検知への応用までSatoyuki Tsukano
 
変わる!? リクルートグループのデータ解析基盤
変わる!? リクルートグループのデータ解析基盤変わる!? リクルートグループのデータ解析基盤
変わる!? リクルートグループのデータ解析基盤Recruit Technologies
 

Similaire à ストリーム処理とSensorBee (20)

アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係
JAWS DAYS 2018 | IoT時代におけるデバイスのファームウェアとクラウドのいい関係
 
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
 
クラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccampクラウドではじめるリアルタイムデータ分析 #seccamp
クラウドではじめるリアルタイムデータ分析 #seccamp
 
Bee Style:vol.027
Bee Style:vol.027Bee Style:vol.027
Bee Style:vol.027
 
[db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ! by 株式会社日立製作所 村上順一
 [db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ!  by 株式会社日立製作所 村上順一 [db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ!  by 株式会社日立製作所 村上順一
[db tech showcase Tokyo 2014] D25: 今を分析する日立の「CEP」、知るなら今でしょ! by 株式会社日立製作所 村上順一
 
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみようGoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
GoAzure 2015:IoTなどの大量データをStream Analyticsでリアルタイムデータ分析してみよう
 
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
 
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
 
PSpiceの活用方法 (2005年)
PSpiceの活用方法 (2005年)PSpiceの活用方法 (2005年)
PSpiceの活用方法 (2005年)
 
BeeStyle: vol.022
BeeStyle: vol.022BeeStyle: vol.022
BeeStyle: vol.022
 
エッジヘビーコンピューティングと機械学習
エッジヘビーコンピューティングと機械学習エッジヘビーコンピューティングと機械学習
エッジヘビーコンピューティングと機械学習
 
LTspice超入門
LTspice超入門LTspice超入門
LTspice超入門
 
Show and tell takmin
Show and tell takminShow and tell takmin
Show and tell takmin
 
Bee Style:vol.041
Bee Style:vol.041Bee Style:vol.041
Bee Style:vol.041
 
1000人規模で使う分析基盤構築 〜redshiftを活用したeuc
1000人規模で使う分析基盤構築  〜redshiftを活用したeuc1000人規模で使う分析基盤構築  〜redshiftを活用したeuc
1000人規模で使う分析基盤構築 〜redshiftを活用したeuc
 
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
[C23] 「今」を分析するストリームデータ処理技術とその可能性 by Takahiro Yokoyama
 
ハードウェアによる仮想化支援機能を利用したハイパバイザーIPS
ハードウェアによる仮想化支援機能を利用したハイパバイザーIPSハードウェアによる仮想化支援機能を利用したハイパバイザーIPS
ハードウェアによる仮想化支援機能を利用したハイパバイザーIPS
 
Packetbeatの基礎から、IoTデバイス異常検知への応用まで
Packetbeatの基礎から、IoTデバイス異常検知への応用までPacketbeatの基礎から、IoTデバイス異常検知への応用まで
Packetbeatの基礎から、IoTデバイス異常検知への応用まで
 
変わる!? リクルートグループのデータ解析基盤
変わる!? リクルートグループのデータ解析基盤変わる!? リクルートグループのデータ解析基盤
変わる!? リクルートグループのデータ解析基盤
 

ストリーム処理とSensorBee

  • 2. 自己紹介  田中大輔 (@disktnk) – 〜2008 理工学部機械工学科卒 – 〜2015 某金融SIer – 最後は金融工学ライブラリ屋さん – 2015〜 某ピー社 – アニオタ枠採用 – SensorBee 開発 – 他、最近は製造業系の案件に関わっている 2
  • 3. 本日話す内容  なぜSensorBeeを必要としていたか (〜3分)  ストリーム処理の基本とSensorBeeでの実現 (15〜20分)  質問 – 時間が余るようでしたら、SensorBeeを使用したデモ(動画)を何個かお見せします。  本日のNGワード: 人工知能、リアルタイム 3
  • 4. 本日話す内容  なぜSensorBeeを必要としていたか (〜3分)  ストリーム処理の基本とSensorBeeでの実現 (15〜20分)  質問 – 時間が余るようでしたら、SensorBeeを使用したデモを何個かお見せします。 4
  • 5.  データの中央集権的収集は困難になる – データ量の問題: 日本にある監視カメラ・スマートフォンの生成データは推定1,000PB/Year – プライバシーの問題: クラウドへデータをアップロードしたくない・できない – 情報量の問題: データ量に反して生成データの価値密度は薄い 5 IoTアプリケーションの直面する課題
  • 6.  データを一か所に集めない前提のもとで深い分析を実現する – ネットワークのエッジ上のデバイスのローカルでデータを解析 – 学習モデルなど抽出された情報だけがクラウド上に挙げられ、大域的な解析を行う 6 エッジヘビーコンピューティング
  • 7.  Deep Learning + Edge-Heavy Networking – Chainer – SensorBee 7 シームレスなデータ活用
  • 8. 参考: Deep Intelligence in-Motion (DIMo) 8 Industries (Partners)Industries (PFN-involved) SensorBee™: Streaming Processing Engine for IoT Machine learning Deep Learning Auto Manufacturing Self-driving /ADAS Connected Optimization Predictive maintenance Healthcare Drug discovery iPS cell Retail CRM Ad optimization Surveillance Security Tracking DeepIntelligence in-Motion(DIMo) Statistics Tools Computer vision Detect/Track/Rec ognize Reinforcement learning Distributed/Curri culum Time-series RNN / Representation Sensor fusion Multi-modal Annotation Hawk Feedback/Action User applications Camera UI Kanohi … Libraries Management
  • 9. 本日話す内容  なぜSensorBeeを必要としていたか (〜3分)  ストリーム処理の基本とSensorBeeでの実現 (15〜20分)  質問 – 時間が余るようでしたら、SensorBeeを使用したデモを何個かお見せします。 9
  • 10. 1. (Cotinuous) Queryの登録 2. データを流す、あるいは既に流れている 3. 入力されたデータに対して処理を行う “on the fly” 4. 処理結果を(クライアントに対して)継続的に出力する Data Stream Management System(DSMS) 10 Continuous Queries Streaming Inputs Streaming Outputs data stream 1 3 42
  • 11. DBMSとDSMSの比較 11 DBMS DSMS Data persistent relations streams, time windows Data access random sequential, one-pass Updates arbitrary append-only Update rates relatively low high, bursty Processing model query-driven (pull-based) data-driven (push-based) Queries one-time continuous Query plans fixed adaptive Query optimization one query multi-query Query answers exact exact or approximate Latency relatively high low [Golab et al., 2010] p3 “Summary of differences between a DBMS and a DSMS”
  • 12. Continuous Queryのセマンティクス  Operators – 入力された1つあるいは複数のデータに対して処理する単位。 – stream-to-relation, relation-to-relation, relation-to-stream  Queues – Operator間のデータ。SensorBeeでは1つのデータをTupleと呼ぶ。  Synopses – ストリームの操作や状態1つ1つの(簡易)表現の単位。Operatorとは独立してQuery Planの最適化を考えるとき便利。SensorBeeでは特に定義していない。 12 [Aras et al., 2006] [Jain et al., 2008]
  • 13. Continuous Query Operators: シンプルな例  selection  join  count 13 σa S1 a a a a f pass or drop ⋈ S1 b d c a d b a insert S2 b d g f e probe 9S1 10 9 8 7 update (to “10”) b a f generate result b
  • 14. Continuous Query Operator TypeとBQL  BQL (SensorBeeで実装されているCQLの方言) のサンプル 14 SELECT RSTREAM S1.id, S1.hoge1, S2.hoge2 FROM S1 [RANGE 1 TUPLES], S2 [RANGE 1 TUPLES] WHERE S1:id = S2:id;
  • 15. BQL: Stream-to-Relation  BQLサンプル – Tuple based: [RANGE 1 TUPLES] Time based: [RANGE 1 SECONDS] – Buffering: [RANGE 3 SECONDS, DROP NEWEST IF FULL] – Sliding Window, Tumbling Window (SensorBeeでは未サポート) – セマンティクスが難しい。。 15 SELECT RSTREAM S1.id, S1.hoge1, S2.hoge2 FROM S1 [RANGE 1 TUPLES], S2 [RANGE 1 TUPLES] WHERE S1:id = S2:id; stream-to-relation
  • 16. BQL: Relation-to-Relation  BQLサンプル – Selection – Join – Aggregation – Filter etc... 16 SELECT RSTREAM S1.id, S1.hoge1, S2.hoge2 FROM S1 [RANGE 1 TUPLES], S2 [RANGE 1 TUPLES] WHERE S1:id = S2:id; relation-to-relation
  • 17. BQL: Relation-to-Stream  BQLサンプル – RSTREAM / ISTREAM / DSTREAM Example: http://sensorbee.readthedocs.org/en/latest/bql.html#id4 – Detail: http://sensorbee.readthedocs.org/en/latest/bql.html#relation-to- stream-operators 17 SELECT RSTREAM S1.id, S1.hoge1, S2.hoge2 FROM S1 [RANGE 1 TUPLES], S2 [RANGE 1 TUPLES] WHERE S1:id = S2:id; relation-to-stream
  • 19. SensorBee: Source  Source – Topologyへの入力を表現するComponent 19 Continuous QueriesSources data stream S1 S2 S3 CREATE SOURCE S1 TYPE fluentd WITH ...; CREATE SOURCE S2 TYPE mqtt WITH ...; CREATE SOURCE S3 TYPE user_source WITH ...;
  • 20. SensorBee: Stream  Stream – Tupleへの操作 (内部実装的には “Box”) 20 Streams Sources S1 S2 S3 CREATE STREAM B1 AS SELECT ISTREAM udf1(*) FROM S1 [RANGE 1 SECONDS], S2 [RANGE 1SECONDS] WHERE S1:id = S2:id; B1 B3 B2
  • 21. SensorBee: Sink  Sink – Topologyからの出力を定義する 21 Streams Sources S1 S2 S3 B1 B3 B2 Sinks D1 D2 D3 CREATE SINK D1 TYPE fluentd WITH ...; INSERT INTO D1 FROM B1; CREATE SINK D2 TYPE mqtt WITH ...; CREATE SINK D3 TYPE user_sink WITH ...;
  • 22. SensorBee: User Defined Stream Function (UDSF)  UDSF – 新たなSourceとして振る舞えるユーザ定義関数 22 Streams Sources S1 S2 S3 B1 B3 B2 Sinks D1 D2 D3 CREATE SOURCE B2 AS SELECT RSTREAM * FROM udsf1(“S2”) [RANGE 1 SECONDS];
  • 23. SensorBee: User Defined State (UDS)  UDS – ストリーム上の各Componentから共通でアクセスできるShared State 23 Streams Sources S1 S2 S3 B1 B3 B2 Sinks D1 D2 D3 CREATE STATE G1 TYPE user_state WITH...; CREATE SOURCE B3 AS SELECT ISTREAM * udf3(“G1”, B2:*), S3:* FROM B2 [RANGE 1 SECONDS], S3 [RANGE 1 SECONDS] WHERE B2:foo = S3:foo; G1
  • 24. Example: Twitterのつぶやきの分類  機械学習と組み合わせたデモ – Tutorial収録 http://sensorbee.readthedocs.org/en/latest/tutorial.html#using- machine-learning – Elasticsearchと機械学習を実際に連携させる http://www.slideshare.net/nobu_k/elasticsearch-59627321 24 Twitter Gen der Ag e Form atting Form atting Form atting Labeli ng fluentd
  • 26. 参考文献  A. Arasu, S. Badu, and J. Widom. The CQL continuous query language: Semantic foundations and query execution, 2006.  N. Jain, S. Mishra, A. Srinivasan, J. Gehrke, J. Widom, H. Balakrishnam, U. Cetintemel, M. Cheriniack, R. Tibbertts, and S. Zdonik. Towerds a streaming SQL standard, 2008.  Lukasz Golab, M. Tamer Özsu. Data Stream Management, 2010. 26

Notes de l'éditeur

  1. DIMoの説明のための図、詳しい説明はしない