AWS IoT Analytics

AWS IoT Analytics は、IoT デバイスからのデータを分析するのに必要なステップを自動化します。分析のために時系列データストアに保存する前に、IoT データをフィルタリング、変換、拡張します。

この演習では、アセットのプロパティの値を AWS IoT Analytics へ転送し、データを以下の列を持つテーブルとして保存します。

type asset_id property_id timestamp quality value valuetype

IoT Analytics のチャネルは、JSON メッセージを受信すると、JSON オブジェクトの第 1 レベルのキーの値を列として保存します。

一方、SiteWise は MQTT トピックへ以下のような形式でメッセージを送信します。

{
  "type": "PropertyValueUpdate",
  "payload": {
    "assetId": "5d42fac2-6575-4503-829b-4b21ddc5fe8f",
    "propertyId": "5b79096a-f2b4-45a0-b0e1-40c8ec7c5d88",
    "values": [
      {
        "timestamp": {
          "timeInSeconds": 1576170249,
          "offsetInNanos": 417000000
        },
        "quality": "GOOD",
        "value": {
          "doubleValue": 92.50262543159513
        }
      }
    ]
  }
}

このメッセージには、以下の 2 つの列を持つテーブルとして保存されてしまうという課題があります。

type payload

そのため、最初に示した形式で保存するためには、この JSON メッセージを平坦化する必要があります。

IoT Analytics のパイプライン、チャネル、データストア、データセットを作成し、メッセージを平坦化するための Lambda 関数を作成して、パイプラインのアクティビティとして追加しましょう。