IoT Analytics からのデータ取得

この演習を実施するかどうかは任意です。ワークショップを進める上で必須ではありません。

AWS IoT Analytics からのデータを使用

この演習では、Jupyter ノートブックで IoT Analytics からデータを取得し、データを拡張して折れ線グラフを作成します。

前の演習のプレビュー表示で見たように、アセットやプロパティのデータは fa123caa-69ef-47bc-b3a2-1f4efaa8b8a7 のような分かりにくい ID を付けて保存されています。データを操作しながら、関連するアセットやプロパティに名前を追加する方法を学びます。

この演習では、以下の Jupyter ノートブックを使用します。

  • 01_SW_Config.ipynb (以前の演習で使用した場合は、このノートブックを再度実行する必要はありません。)
  • 05_SW_ExploreData_IoTA.ipynb

01_SW_Config.ipynb

  1. Libraries
    • 各種ライブラリをインポートします。
  2. Get AWS region
    • CONFIG に各種設定情報を書き込みます
      • Jupyter ノートブックを起動しているリージョン
      • 利用するアセットモデル名

05_SW_ExploreData_IoTA.ipynb

  1. Libraries
    • 各種ライブラリをインポートします。
  2. Restore configuration and define variables
    • CONFIG を取得し変数を定義します。
  3. Get the service resource
    • AWS IoT SiteWise と AWS IoT Analytics のサービスリソースを取得します。
  4. Create data set
    • IoT Analytics のデータセットを作成し、以下のような結果が表示されます。
    response: {
      "datasetName": "sitewise_workshop_dataset",
      "datasetArn": "arn:aws:iotanalytics:us-east-1:123456789012:dataset/sitewise_workshop_dataset"
    }
    dataset_arn: arn:aws:iotanalytics:us-east-1:123456789012:dataset/sitewise_workshop_dataset
    
  5. Create data set content
    • IoT Analytics のデータセットのコンテンツを作成し、以下のような結果が表示されます。
    create_dataset_content: dataset_name: sitewise_workshop_dataset
       
    response: {
      "versionId": "bfaeb835-cac3-42a0-8af8-73c13eb45b48"
    }
       
    t_create_dataset_content: 2019-12-10 04:05:23.659957+00:00
    t_create_dataset_content_adj: 2019-12-10 04:03:23.659957+00:00
    
  6. Get Content from your Data set
    • データセットのコンテンツを取得して pandas のデータフレームに設定します。
  7. Explore your Data
    • 上記のデータフレームのサイズやコンテンツなどが確認できます。
  8. Column names in the dataframe
    • データフレーム内のカラム名を確認できます。
  9. Describe the dataframe
    • データフレームの統計情報を確認できます。
  10. Asset and property ids
    • SiteWise からアセット ID と プロパティ ID を取得し、以下のように表示されます。
    asset_id: 30e196fb-c039-4fc5-9ba1-efdc7695e548 asset_name: Generator-1
      property_id: 0ef75631-3740-4578-8af6-d4b4b0871c9b property_name: serial
      property_id: 7a9623a2-5022-4442-b631-1a95668a8575 property_name: watts_1m
      property_id: cb13302e-dc1d-4642-9415-38885d48be86 property_name: temperature
      property_id: 23ca7338-7606-4668-b2b1-c815c4713b37 property_name: rpm
      property_id: e523b68a-4b76-415d-99e4-0eed55740b34 property_name: q_watts_good
      property_id: 1c0a810b-8629-4170-9f25-b7105f1d8eeb property_name: sum_watts_5m
      property_id: 5cec1191-b657-414a-a5b7-e4411f8fc496 property_name: ratio_avg_rpm_power_5m
      property_id: 82a84033-7a14-4e7c-8f2c-79075d963340 property_name: performance_5m
      property_id: 4e807403-1971-4585-9215-cfb1afb7e99f property_name: quality_5m
      property_id: 8ea9e2f9-31af-4749-a273-ced205a41935 property_name: q_good_count_5m
      property_id: c2f38cb5-5147-46b8-b78b-7e502402be7c property_name: q_good_sum_5m
      property_id: db977495-6a30-4944-9e6c-3f0df90d5376 property_name: run_time_5m
      property_id: 30c716f8-19fb-4619-8648-ced5dfd887fc property_name: availability_5m
      property_id: 958a894d-2d34-44cc-a739-e3e198307b9f property_name: oee_5m
    
  11. Helper functions to enrich the dataframe
    • アセット ID をアセット名に、プロパティ ID をプロパティ名に変換するヘルパー関数を作成し、それを使ってデータフレーム内のデータを拡張します。これらを使用することで、データフレームにアセット名とプロパティ名を追加します。
  12. Check dataframe content
    • 例えば df.head(1)df.tail(1) などを実行してデータフレームのコンテンツを出力し、アセット名とプロパティ名が出力されていることを確認します。
  13. Create a line chart
    • データフレームのコンテンツを使用して、X 軸が時間、Y 軸が回転数 (rpm) である折れ線グラフを作成します。

次に何をしますか?

  • 色々な可能性があります
  • Jupyter ノートブックでデータセットを活用・分析できます
  • IoT Events のステートマシンを作成し、コンテンツ配信ルールでメッセージを IoT Events に送信できます
  • ワークショップでやってみたい事はありますか?
  • 良いアイディアがあれば教えてください

選択するのはあなたです