翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アセットプロパティ通知メッセージのクエリ
アセットプロパティ通知をクエリするには、 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 アクションを含むルールを設定し、そのトピックをクエリして各値を目的のルールアクションに発行する別のルールを設定できます。