はじめに
IoT SiteWiseを使ったデータ収集や可視化、閾値通知をしたいんやけど、IoT SiteWiseへデータ転送する前にデータを加工したい時ってありませんか?
ありますよね?
そう。あるんですよ。
でもこの辺の情報ってあまりまとめられているサイトが無いのでちょっとまとめてみます。って感じです。
なぜエッジでデータ加工をするか
簡単にまとめると以下のようなメリットがあります。(要件次第ですが)
- AWSまでの帯域が細い場合の容量圧縮
- 機密情報等、クラウドに送信したくない情報のマスキング
- クラウドで保管されるデータを少なくすることによる課金額抑制
エッジでデータ加工してからIoT SiteWiseにデータ転送する方法、、、
エッジにはGreengrassを導入するものとして簡単に比較してみます。
エッジからデータをIoT SiteWiseにデータ転送する方法として、以下3パターンが挙げられます。
使用方法 | メリット | デメリット | |
---|---|---|---|
SiteWise API | コードにBoto3をインストールして「client.batch_put_asset_property_value」でデータ転送 | Greengrass以外からでも転送可能 | 帯域の制御や切断時の処理等を自分で設定する必要がある |
Greengrass Stream Manager | Greengrassのコンポーネントとしてデプロイ | 帯域の制御や切断時の処理等が自動で行われる | Greengrassの利用が必須 |
SiteWise Gateway | Greengrassのコンポーネントとしてデプロイ | 簡単にデータを転送可能 | データ加工ができない |
※「SiteWise Gateway」でもデータ処理パック(200USD/月)をインストールすればデータ加工は可能かも
ただエッジで分析や機械学習を行う場合は有用ですが、データ加工のみと考えるとオーバースペックかと
どの方法が良いのか
データ加工が必要なければ「SiteWise Gateway」が設定も簡単で良いでしょう。
参考:IoT開発検証 ~センサデータ収集監視と閾値超過通知~
データ加工を行いたい場合「SiteWise API」or「Greengrass Stream Manager」になりますが、特に参考になりそうなブログ等がありませんね、、、
ただエッジでデータ加工してIoT SiteWiseにデータを転送したい場合は「Greengrass Stream Manager」経由で転送する必要がありそうです。
一応AWS公式資料の参考です↓
AWS IoT SiteWise API を使用したデータの取り込み
StreamManagerClient を使用してストリームを操作する
おわり
エッジでデータを加工してからIoT SiteWiseにデータ転送する方法について簡単にまとめてみました。
なんとなく方法はわかるにしても、実装するにはどうすれば良いかの情報が少なかったですね。
次は実際にGreengrass Stream Managerを利用してデータ加工&転送をする手順についてまとめようと思います。
↓↓こちらでまとめました!!↓↓
AWS IoT Greengrassによるエッジでのデータ加工&IoT SiteWiseへの転送