

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 에서 자산 속성 알림 쿼리 AWS IoT SiteWise
<a name="query-notification-messages"></a>

자산 속성 알림을 쿼리하려면 SQL 문으로 구성된 AWS IoT Core 규칙을 생성합니다.

AWS IoT SiteWise 는 자산 속성 데이터 업데이트를 다음 형식으로 AWS IoT 코어에 게시합니다.

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

`values` 목록의 각 구조는 타임스탬프-품질-값(TQV) 구조입니다.
+ `timestamp`는 현재 Unix epoch 시간(초)과 오프셋(나노초)을 포함합니다.
+ `quality`는 데이터 요소의 품질을 나타내는 다음 문자열 중 하나를 포함합니다.
  + `GOOD` – 데이터가 어떤 문제의 영향도 받지 않습니다.
  + `BAD` – 데이터가 센서 고장과 같은 문제의 영향을 받습니다.
  + `UNCERTAIN` – 데이터가 센서 부정확과 같은 문제의 영향을 받습니다.
+ `value`는 속성 유형에 따라 다음 필드 중 하나를 포함합니다.
  + `booleanValue`
  + `doubleValue`
  + `integerValue`
  + `stringValue`
  + `nullValue`

`nullValue` - 값이 Null이고 품질이 `BAD` 또는 인 속성 값의 유형을 나타내는 다음 필드가 있는 구조입니다`UNCERTAIN`.
+ `valueType` - {"B", "D", "S", "I"}의 열거형

`values` 배열의 값을 구문 분석하려면 규칙의 SQL 문에서 복잡한 중첩 객체 쿼리를 사용해야 합니다. 자세한 내용은AWS IoT 개발자 가이드의 [중첩 객체 쿼리](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-nested-queries.html)를 참조하거나 [Amazon DynamoDB에 속성 값 업데이트 게시](publish-to-amazon-dynamodb.md) 자습서에서 자산 속성 알림 메시지 구문 분석에 대한 구체적인 예를 참조하세요.**

**Example 값 배열을 추출하는 쿼리 예제**  
다음 명령문은 해당 속성을 가진 모든 자산의 특정 이중 유형 속성을 확인하기 위해 업데이트된 속성 값 배열을 쿼리하는 방법을 보여 줍니다.  

```
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
  ]
}
```

**Example 단일 값을 추출하는 쿼리 예제**  
다음 명령문은 해당 속성을 가진 모든 자산의 특정 이중 유형 속성을 확인하기 위해 속성 값 배열의 첫 번째 값을 쿼리하는 방법을 보여 줍니다.  

```
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 작업이 포함된 규칙을 설정하고, 해당 주제를 쿼리하고 각 값을 원하는 규칙 작업에 게시하는 다른 규칙을 설정할 수 있습니다.