Edited at

SensorBeeとは何か?

More than 3 years have passed since last update.

オフィシャルサイト: http://sensorbee.io/

GitHub: https://github.com/sensorbee/sensorbee

とりあえず、公式サイトの英語を日本語でサマってみました。

オフィシャルサイトでは、"An open source stream processing engine for IoT"、"Stream processing in IoT environment"。

GitHubのREADME.mdでは、"Lightweight stream processing engine for IoT"、と書いてあるので、「IoT向けの軽量なストリーム処理エンジン」と思われる。

特徴としては、低レイテンシが謳われている。

また、次の3つを軸に設計が行われているらしい。


ステートフル


  • 機械学習などでは非構造化データから有益な情報を抽出したりするが、SensorBeeはそのようなオンライン機械学習に効果的

  • ChainerやJubatusの幾つかのコンポーネントなど様々な機械学習のツールキットをサポート

  • SensorBeeのクエリー言語は、ステートフルな一時的データハンドリングができる


表現力


  • 操作やクエリーは継続クエリー言語の一種であるBQLで記述

  • BQLはとてもパワフルな言語でSQLに親しんでいる人たちに取っては学びやすいものである

  • BQLはスキーマレスで、JSONっぽいデータ構造を持つ

  • JSONを扱うための使いやすい色々な機能も提供


軽量


  • 最小フットプリントは30MB未満なので、Raspberry Piなどの小型コンピュータ上でも実行することが可能

  • まだまだ、十分に小さいわけではないので、今後、もっと小型のコンピュータ上でもBQL文を実行できるようにしていくことを目指している

逆に、次の3つは設計に盛り込まれていないらしい。


  • 超大規模データ処理

  • 巨大な並列ストリーミングデータ処理

  • エラーが何もない正確な数値計算

ちょっとおまけで実行した際のコンソール出力も。


引数なし

>sensorbee                                                                                                                               NAME:

sensorbee - SensorBee

USAGE:
sensorbee [global options] command [command options] [arguments...]

VERSION:
0.3.2

COMMANDS:
run run the server
shell BQL shell
topology, t manipulate topologies on SensorBee
exp experiment BQL statements
runfile run a BQL file
help, h Shows a list of commands or help for one command

GLOBAL OPTIONS:
--help, -h show help
--version, -v print the version



引数あり

>sensorbee run

INFO[0000] Setting up the server context config={"logging":{"log_dropped_tuples":false,"min_log_level":"info","summarize_dropped_tuples":false,"target":"stderr"},"network":{"listen_on":":15601"},"storage":{"uds":{"params":{},"type":"in_memory"}},"topologies":{}}
INFO[0000] Starting the server on :15601

次回は、実際にチュートリアルを実行してみようと思います。