Go
IoT
Chainer
sensor
sensorbee
More than 1 year has 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

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