

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

# AWS IoT SQL 참조
<a name="iot-sql-reference"></a>

에서 AWS IoT규칙은 SQL과 유사한 구문을 사용하여 정의됩니다. SQL 문은 세 유형의 절로 구성됩니다.

**SET**  
(선택 사항) SQL 문 및 대체 템플릿 전체에서 재사용할 수 있는 변수를 정의합니다. 표현식을 사용하여 변수에 값을 할당합니다. SELECT 및 WHERE 절과 작업 대체 템플릿에서 이러한 변수를 참조하세요.  
SET 절은 [데이터 타입](iot-sql-data-types.md), , [연산자](iot-sql-operators.md), [함수](iot-sql-functions.md), [리터럴](iot-sql-literals.md)[Case 문](iot-sql-case.md), [JSON 확장](iot-sql-json.md), [변수](iot-sql-set.md#iot-sql-set-usage) 및를 지원합니다[중첩된 객체 쿼리](iot-sql-nested-queries.md).

**SELECT**  
(필수 사항) 수신 메시지 페이로드에서 정보를 추출하고 정보 변환을 수행합니다. 사용할 메시지는 FROM 절에서 지정한 [주제 필터](topics.md#topicfilters)에 의해 식별됩니다.  
SELECT 절은 [데이터 타입](iot-sql-data-types.md), , [연산자](iot-sql-operators.md), [함수](iot-sql-functions.md)[리터럴](iot-sql-literals.md), [Case 문](iot-sql-case.md), [JSON 확장](iot-sql-json.md), [대체 템플릿](iot-substitution-templates.md), [변수](iot-sql-set.md#iot-sql-set-usage), [중첩된 객체 쿼리](iot-sql-nested-queries.md)및를 지원합니다[이진 페이로드](binary-payloads.md).

**FROM**  
데이터를 추출할 메시지를 식별하는 MQTT 메시지 [주제 필터](topics.md#topicfilters)입니다. 여기에 지정된 주제 필터와 일치하는 MQTT 주제로 전송된 각 메시지가 규칙을 활성화합니다. 메시지 브로커를 통과하는 메시지가 활성화하는 규칙에서는 필수입니다. [기본 수집](iot-basic-ingest.md) 기능을 사용해서만 활성화되는 규칙에서는 선택 사항입니다.

**WHERE**  
(선택 사항) 규칙에서 지정된 작업이 수행되었는지 여부를 확인하는 조건부 논리를 추가합니다.  
WHERE 절은 [데이터 타입](iot-sql-data-types.md), , [연산자](iot-sql-operators.md), [함수](iot-sql-functions.md), [리터럴](iot-sql-literals.md)[Case 문](iot-sql-case.md), [JSON 확장](iot-sql-json.md), [변수](iot-sql-set.md#iot-sql-set-usage) 및를 지원합니다[중첩된 객체 쿼리](iot-sql-nested-queries.md).

다음은 SQL 문 예제입니다.

```
SELECT color AS rgb FROM 'topic/subtopic' WHERE temperature > 50
```

다음은 MQTT 메시지(수신 페이로드라고도 함) 예제입니다.

```
{
    "color":"red",
    "temperature":100
}
```

이 메시지가 `'topic/subtopic'` 주제에 게시될 경우 규칙이 트리거되고 SQL 문이 실행됩니다. `"temperature"` 속성이 50을 초과할 경우 SQL 문이 `color` 속성의 값을 추출합니다. WHERE 절은 조건 `temperature > 50`을 지정합니다. `AS` 키워드는 `"color"` 속성의 이름을 `"rgb"`로 변경합니다. 그 결과(*송신 페이로드*)는 다음과 같습니다.

```
{
    "rgb":"red"
}
```

그런 다음 이 데이터가 규칙의 작업으로 전달되고, 작업이 추가 처리를 위해 데이터를 전송합니다. 규칙 작업에 대한 자세한 내용은 [AWS IoT 규칙 작업](iot-rule-actions.md) 섹션을 참조하세요.

**참고**  
주석은 현재 AWS IoT SQL 구문에서 지원되지 않습니다.  
공백이 포함된 속성 이름은 SQL 문에서 필드 이름으로 사용할 수 없습니다. 수신되는 페이로드는 공백이 있는 속성 이름을 가질 수 있지만 SQL 문에서는 이러한 이름을 사용할 수 없습니다. 그러나 와일드카드(\*) 필드 이름 사양을 사용하는 경우 송신하는 페이로드로 전달됩니다.