アセットプロパティ通知メッセージのクエリ - AWS IoT SiteWise

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

アセットプロパティ通知メッセージのクエリ

アセットプロパティ通知をクエリするには、SQL AWS IoT Core ステートメントで構成されるルールを作成します。

AWS IoT SiteWise 資産プロパティデータの更新を次の形式で AWS IoT Core に公開します。

{ "type": "PropertyValueUpdate", "payload": { "assetId": "String", "propertyId": "String", "values": [ { "timestamp": { "timeInSeconds": Number, "offsetInNanos": Number }, "quality": "String", "value": { "booleanValue": Boolean, "doubleValue": Number, "integerValue": Number, "stringValue": "String" } } ] } }

valuesリスト内の各構造は timestamp-quality-value (TQV) 構造です。

  • timestamp には、ナノ秒のオフセットがある現在の UNIX エポック時刻 (秒単位) が含まれます。

  • quality には、データポイントの品質を示す、以下のいずれかの文字列が含まれます。

    • GOOD - データはいずれの問題の影響も受けません。

    • BAD - データはセンサーの障害などの問題による影響を受けます。

    • UNCERTAIN - データはセンサーの不正確さなどの問題による影響を受けます。

  • value には、プロパティのタイプに応じて、以下のいずれかのフィールドが含まれます。

    • booleanValue

    • doubleValue

    • integerValue

    • stringValue

values 配列から値を解析するには、ルールの SQL ステートメントで複雑にネストされたオブジェクトクエリを使用する必要があります。詳細については、[AWS IoT Developer Guide] (デベロッパーガイド) の[Nested object queries] (オブジェクトクエリのネスト) を参照するか、アセットプロパティ通知メッセージの解析の具体例については、プロパティ値の更新を Amazon DynamoDB に公開する チュートリアルを参照してください。

例 値の配列を抽出するクエリの例

次のステートメントは、そのプロパティを持つすべてのアセットの特定の Double 型プロパティについて、更新されたプロパティ値の配列をクエリする方法を示しています。

SELECT (SELECT VALUE (value.doubleValue) FROM payload.values) AS windspeed FROM '$aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/+/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE' WHERE type = 'PropertyValueUpdate'

前のルールクエリステートメントは、次の形式でデータを出力します。

{ "windspeed": [ 26.32020195042838, 26.282584572975477, 26.352566977372508, 26.283084346171442, 26.571883739599322, 26.60684140743005, 26.628738636715045, 26.273486932802125, 26.436379105473964, 26.600590095377303 ] }
例 単一の値を抽出するクエリの例

次のステートメントは、そのプロパティを持つすべてのアセットの特定の Double 型プロパティについて、プロパティ値の配列から最初の値をクエリする方法を示しています。

SELECT get((SELECT VALUE (value.doubleValue) FROM payload.values), 0) AS windspeed FROM '$aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/+/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE' WHERE type = 'PropertyValueUpdate'

前のルールクエリステートメントは、次の形式でデータを出力します。

{ "windspeed": 26.32020195042838 }
重要

このルールクエリステートメントは、各バッチの最初の値以外の値の更新を無視します。各バッチには最大 10 個の値を含めることができます。残りの値を含める必要がある場合は、アセットプロパティ値を他のサービスに出力するより複雑なソリューションを設定する必要があります。たとえば、 AWS Lambda 配列内の各値を別のトピックに再公開するアクションを含むルールを設定し、そのトピックをクエリして各値を目的のルールアクションに公開する別のルールを設定できます。