オフィシャルサイト: 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
次回は、実際にチュートリアルを実行してみようと思います。