0
0

AWS IoT CoreデータのAmazon Timestreamへのデータ転送

Last updated at Posted at 2024-03-29

はじめに

前回の投稿でSiemensの産業向けエッジプラットプラットフォーム"Industrial Edge"から"AWS IoT Core"へ二酸化炭素濃度センサーで取得したデータの連携についてご紹介しました。
今回はそのデータをGrafana等のツールで使用できるよう、AWSのデータベースサービスであるAmazon Timestremeへ送信する手順についてまとめました。

構成

今回の構成およびデータフローを図1に示します。
構成図.png
図1. 構成図
二酸化炭素濃度センサーからIoT Coreまでのデータ送信については以下のリンクをご参照ください。
※参考リンク
エッジプラットフォームとAWS IoT Coreの連携

設定

Amazon Timestreamの設定

  1. AWS Consoleにアクセスし、データベース → Amazon Timestreamをクリックします。
    01 AWS Console Home.png
    図2. AWS Console ホーム
  2. センサーデータを保存するデータベースを作成します。ナビゲーションペインでデータベースをクリックします。
    02 AWS Amazon Timestream.png
    図3. Amazon Timestream ダッシュボードホーム
  3. データベースを作成をクリックします。
    03 AWS Amazon Timestream.png
    図4. Amazon Timestream データベースホーム
  4. 標準データベースを選択し、任意の名前を入力します。(今回はNETFC)名前を入力後データベースを作成をクリックします。
    04 AWS Amazon Timestream.png
    図5. Amazon Timestream データベース作成画面
  5. NETFCというデータベースが作成されました。ナビゲーションペインでテーブルをクリックします。
    05 AWS Amazon Timestream.png
    図6. Amazon Timestream データベースホーム
  6. テーブルを作成をクリックします。
    05-2 AWS Amazon Timestream.png
    図7. Amazon Timestream テーブルホーム
  7. データベース名は先ほど作成したNETFCを選択します。テーブル名は任意の名前を指定します。今回はCarbon_dioxide_concentration_sensorとしました。スキーマの設定はデフォルトパーティショニングとしテーブルを作成をクリックます。
    06 AWS Amazon Timestream.png
    図8. Amazon Timestream テーブル作成画面

AWS IoT Coreの設定

  1. AWS Consoleにアクセスし、IoT → IoT Coreをクリックします。
    07 AWS Console Home.png
    図9. AWS Console ホーム
  2. IoT Coreで取得したデータをAmazon Timestreamに送信するルールを作成します。ナビゲーションペインで管理 → メッセージのルーティング → ルールをクリックします。
    08 AWS IoT Core.png
    図10. AWS IoT Coreホーム
  3. ルールを作成をクリックします。
    09 AWS IoT Core.png
    図11. AWS IoT Core ルーティングルール画面
  4. ルール名に任意の名前を指定します。今回はCarbon_dioxide_concentration_sensor_ruleとしました。
    10 AWS IoT Core.png
    図12. AWS IoT Core ルーティングルール作成画面
  5. MQTTデータの指定を行います。CloudConnectorというトピック名でデータを取得しているのでSELECT * FROM 'CloudConnectr/'としました。CloudConnectorというトピックからすべてのデータ(*はワイルドカード)を取得するという意味になります。記述したら次へをクリックします。
    11 AWS IoT Core.png
    図13. AWS IoT Core ルーティングルール作成画面
  6. ルールを指定します。今回はAmazon Timestreamにデータ送信を行うのでTimestream tableを選択します。
    12 AWS IoT Core.png
    図14. AWS IoT Core ルーティングルール作成画面
  7. ルールアクションの設定を行います。データを転送するデータベース(NETFC)とテーブル(Carbon_dioxide_concentration_sensor)を選択します。ディメンジョンは各メジャーレコードに書き込まれる時系列のメタデータ属性です。ディメンション名には任意の名前を指定します。(今回はDeviceID)、ディメンション値にはMQTTデータに含まれるClientIDを指定しました。IAMロールは自動的に作成可能です。新しいロールの作成をクリックします。
    13 AWS IoT Core.png
    図15. AWS IoT Core ルーティングルール作成画面
  8. 任意のロール名を指定します。今回はNETFC_IoT_Core_Timestream_Roleとしました。入力したら作成をクリックします。
    14 AWS IoT Core.png
    図16. AWS IoT Core ルーティングルールロール作成画面
  9. IAMロールが作成され割り当てられました。次へをクリックします。
    15 AWS IoT Core.png
    図17. AWS IoT Core ルーティングルール作成画面
  10. 作成をクリックします。
    16 AWS IoT Core.png
    図18. AWS IoT Core ルーティングルール作成画面
  11. ルーティングルールが作成されました。以上で設定は完了となります
    17 AWS IoT Core.png
    図19. AWS IoT Core ルーティングルール画面

動作確認

  1. Amazon Timestreamでデータが受信できることを確認します。AWS Consoleにアクセスし、データベース → Amazon Timestreamをクリックします。
    18 AWS Console Home.png
    図20. AWS Console ホーム
  2. ナビゲーションペインからテーブルをクリックします。
    19 AWS Amazon Timestream.png
    図21. Amazon Timestream ダッシュボードホーム
  3. データが格納されるテーブル(Carbon_dioxide_concentration_sensor)をクリックします。
    20 AWS Amazon Timestream.png
    図22. Amazon Timestream テーブルホーム
  4. 画面右上のアクション → クエリテーブルをクリックします。
    21 AWS Amazon Timestream.png
    図23. Amazon Timestream テーブル画面
  5. SQL文が自動で入力されているので、実行をクリックします。
    22 AWS Amazon Timestream.png
    図24. Amazon Timestream クエリエディタ画面
  6. 返された行に受信したデータが表示され、データを受信できていることが確認できました。
    23 AWS Amazon Timestream.png
    図25. Amazon Timestream クエリエディタ画面

おわりに

これでローカルのIoTデータをAWSクラウドへ送信し、Grafana等のAWSクラウド上で動作するアプリーケーションで使用できるようになりました。

※ SiemensおよびIndustrial Edgeは、Siemensの登録商標または商標です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0