

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

# SQL 버전
<a name="iot-rule-sql-version"></a>

 AWS IoT 규칙 엔진은 SQL과 유사한 구문을 사용하여 MQTT 메시지에서 데이터를 선택합니다. SQL 문은 규칙을 설명하는 JSON 문서에서 `awsIotSqlVersion` 속성으로 지정된 SQL 버전을 기반으로 해석됩니다. JSON 규칙 문서의 구조에 대한 자세한 내용은 [규칙 생성](iot-create-rule.md) 섹션을 참조하세요. `awsIotSqlVersion` 속성을 사용하면 사용할 AWS IoT SQL 규칙 엔진 버전을 지정할 수 있습니다. 새 버전이 개발될 경우 이전 버전을 계속 사용할 수도 있고 새 버전을 사용하도록 규칙을 변경할 수도 있습니다. 현재 규칙은 규칙 생성 당시의 버전을 계속 사용합니다.

다음 JSON 예제는 `awsIotSqlVersion` 속성을 사용하여 SQL 버전을 지정하는 방법을 보여줍니다.

```
{
    "sql": "expression",
    "ruleDisabled": false,
    "awsIotSqlVersion": "2016-03-23",
    "actions": [{
        "republish": {
            "topic": "my-mqtt-topic",
            "roleArn": "arn:aws:iam::123456789012:role/my-iot-role"
        }
    }]
}
```

AWS IoT 는 현재 다음 SQL 버전을 지원합니다.
+ `2016-03-23` – 2016년 3월 23일 작성된 SQL 버전(권장됨).
+ `2015-10-08` – 2015년 10월 8일 작성된 원래 SQL 버전.
+ `beta` – 최신의 베타 SQL 버전. 이 버전으로 인해 규칙에 영향을 미치는 변화가 발생할 수 있습니다.

## 2016-03-23 SQL 규칙 엔진 버전의 새로운 기능
<a name="sql-2016-03-23-beta"></a>
+ 중첩된 JSON 객체 선택에 대한 수정 사항
+ 배열 쿼리에 대한 수정 사항
+ 객체 내 쿼리 지원. 자세한 내용은 [중첩된 객체 쿼리](iot-sql-nested-queries.md) 단원을 참조하세요.
+ 최상위 객체로 배열 출력 지원
+ JSON 및 비 JSON 형식 데이터에 적용할 수 있는 `encode(value, encodingScheme)` 기능 추가 자세한 내용은 [encode 함수](iot-sql-functions.md#iot-sql-encode-payload)를 참조하세요.

### 최상위 객체로 `Array` 출력
<a name="return-array-rule"></a>

이 기능을 사용하여 배열을 최상위 객체로 반환할 수 있습니다. 예를 들어 다음과 같은 MQTT 메시지가 있다고 가정합니다.

```
{
    "a": {"b":"c"},
    "arr":[1,2,3,4]
}
```

그리고 다음과 같은 규칙이 있다고 가정합니다.

```
SELECT VALUE arr FROM 'topic'
```

이 규칙은 다음과 같은 출력을 생성합니다.

```
[1,2,3,4]
```