AWS IoT Analyticsのシングルステップ セットアップで簡単にIoTデータの分析環境を作成できるようになりました

まいど、大阪の市田です。
先日、AWS IoT Analyticsに関する新しいアップデートがありました。

AWS Developer Forums: AWS IoT Analytics now supports Single Step Setup of IoT Analytics Resources

一言で言うと「AWS IoT Analyticsでデータ分析する環境構築が簡単にできるようになった」というものです。

これまでの環境構築

これまでAWS IoT Analyticsを使う場合、「チャネル」「データストア」「パイプライン」「データセット」「IoTルール」などを個別に作成する必要があり、少々手数が多い作業内容になっていました。

今回のアップデートで「リソースプレフィックス」と「トピック」を指定するだけで上記のリソースを全部作成できるようになりました。素晴らしいですね。

やってみる

作業内容は超絶簡単です。
AWS IoT Analyticsの画面で「リソースプレフィックス」とデータをpublishする「トピック」を指定するだけです。最後に「Quick Create」をクリックします。これだけです!

今回、各項目は下記の様にしました。

  • リソースプレフィックス:MyFirstProject
  • トピック:myiot/analytics/test

01-iot-analytics-qiuck-start

順にリソースが作成されていきます。終わるのに10秒もかかりません。

02-create-progress

下のように全て正常に作成できたら完了です!

03-iot-analytics-quick-start-created

作成されたリソースを確認してみる

せっかくなので、どんな内容のリソースが作成されたのか確認してみたいと思います。

チャネル

「myfirstproject_channel」というチャネルが作成されています。その他はデフォルト(データ保持は無期限)です。

04-channel

コンソールで作成するときは、チャネル作成時に取り込み対象のトピックフィルタの作成も行いますが、実際にはAWS IoT Core側のリソースになるので後でまとめて見ることにします。
(このシングルステップ セットアップでも、AWS IoT Core側に自動作成してくれています。)

データストア

「myfirstproject_datastore」というデータストアが作成されています。チャネルと同様に、その他はデフォルト(処理済みデータ保持期間は無期限)です。

05-datastore

パイプライン

「myfirstproject_pipeline」というパイプラインが作成されています。上記のチャネルとデータストアがそれぞれ関連付けられていることが分かります。

06-pipeline

属性は何も入っていません。ここは明示的な指定がなければそのままでよいかと思います。

07-pipeline-attribute

データセット

データセットで作成されるSQLクエリは、下記のようにSELECT * FROM <DATA_STORE>のようなので、検索したい内容に応じて変更するようにしましょう。

08-dataset-sql-query

IoTルール

次にAWS IoT Core側を確認してみたいと思います。
IoTルールでは、トピックに来たデータ全てがIoT Analyticsに渡されるルールクエリになっています。これも必要に応じて修正するようにします。
トピックフィルタには#+のワイルドカードが利用できます。

09-iot-core-iot-rule-topic-filter

IoT Analyticsにメッセージを送るために必要なIAM Roleも作成してくれます。

10-iot-rule-channel-role

動作確認

一通りリソースが作成されていることが確認できたので、この内容でデータ検索できるか検証してみます。
まずは適当なデータをPublishします。今回は簡単にAWS IoT Coreのマネジメントコンソール上でPublishしました。

データ内容はAWSドキュメントにあるものを使っています。適当に値を変えて2,3個データをpublishしてみましょう。

{
    "thingid": "dht1",
    "temperature": 26,
    "humidity": 29,
    "datetime": "2018-01-26T07:06:01"
}

11-test-publish

データ投入ができたので、データセットの画面から検索を実行します。「Action」から「Run now」をクリックしてください。

12-run-analyze

コンソール画面左上のステータス表示が「SUCCEEDED」になれば正常終了です。画面中頃の「Result preview」に検索結果の一部が表示されます。

13-succeeded-quiery

抽出条件を変えて異なるデータを取得することも可能です。下記は「湿度(humidity)が28より大きい」データを取得しています。

SELECT thingid, temperature, humidity, datetime FROM MyFirstProject_datastore where humidity > 28

14-change-query-result

最後に

マネジメントコンソール上でも簡単にIoT Analyticsの環境をセットアップできるようになりました。
ぜひ活用していただければと思います。

以上です。