기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Timestream 규칙 작업은 MQTT 메시지의 속성(측정)을 Amazon Timestream 테이블에 기록합니다. Amazon Timestream 에 대한 자세한 내용은 Amazon Timestream 이란?을 참조하세요.
참고
Amazon Timestream은 일부 AWS 리전에서 사용할 수 없습니다. 리전에서 Amazon Timestream을 사용할 수 없는 경우 규칙 작업 목록에 해당 Timestream이 나타나지 않습니다.
이 규칙이 Timestream 데이터베이스에 저장하는 속성은 규칙의 쿼리 문에서 가져온 속성입니다. 쿼리 문의 결과에 있는 각 속성의 값은 데이터 유형을 추론하기 위해 구문 분석됩니다(예: DynamoDBv2 작업). 각 속성의 값은 Timestream 테이블의 자체 레코드에 기록됩니다. 속성의 데이터 유형을 지정하거나 변경하려면 쿼리 문에서 cast() 함수를 사용합니다. 각 Timestream 레코드의 내용에 대한 자세한 내용은 Timestream 레코드 내용 섹션을 참조하세요.
참고
SQL V2(2016-03-23)에서는와 같은 정수인 숫자 값이 정수 표현()으로 변환10.0
됩니다10
. cast() 함수를 사용하는 것과 같이 명시적으로 Decimal
값으로 캐스팅해도 결과는 바뀌지 않습니다. 결과는 여전히 Integer
값입니다. 이로 인해 형식 불일치 오류가 발생하여 Timestream 데이터베이스에 데이터가 기록되지 않을 수 있습니다. 정수 숫자 값을 Decimal
값으로 처리하려면 규칙 쿼리 문에 SQL V1(2015-10-08)을 사용합니다.
참고
Timestream 규칙 작업이 Amazon Timestream 테이블에 쓸 수 있는 최대 값 수는 100입니다. 자세한 내용은 Amazon Timestream 할당량 참조를 참조하세요.
요구 사항
이 규칙 작업은 다음 요구 사항을 충족해야 합니다.
-
가
timestream:DescribeEndpoints
및timestream:WriteRecords
작업을 수행하기 위해 맡을 AWS IoT 수 있는 IAM 역할입니다. 자세한 내용은 AWS IoT 규칙에 필요한 액세스 권한 부여 단원을 참조하십시오.AWS IoT 콘솔에서가이 규칙 작업을 수행하도록 허용하는 역할을 선택, 업데이트 또는 생성할 수 AWS IoT 있습니다.
-
고객 AWS KMS 를 사용하여 Timestream에서 저장 데이터를 암호화하는 경우, 서비스에는 호출자를 대신하여 AWS KMS key 를 사용할 수 있는 권한이 있어야 합니다. 자세한 내용은 AWS 서비스 사용 방법을 AWS KMS 참조하세요.
파라미터
이 작업으로 AWS IoT 규칙을 생성할 때 다음 정보를 지정해야 합니다.
databaseName
-
이 작업에서 생성되는 레코드를 수신할 테이블이 있는 Amazon Timestream 데이터베이스의 이름입니다. 또한
tableName
단원도 참조하세요.대체 템플릿: API 및 AWS CLI 만 지원
dimensions
-
각 측정값 레코드에 기록되는 시계열의 메타데이터 속성입니다. 예를 들어 EC2 인스턴스의 이름과 가용 영역 또는 풍력 터빈의 제조업체 이름은 차원입니다.
roleArn
-
Timestream 데이터베이스 테이블에 쓸 수 있는 권한을 부여하는 AWS IoT 역할의 Amazon 리소스 이름(ARN)입니다. 자세한 내용은 요구 사항 단원을 참조하십시오.
대체 템플릿 지원: 아니요
tableName
-
측정값 레코드를 기록할 데이터베이스 테이블의 이름입니다. 또한
databaseName
단원도 참조하세요.대체 템플릿: API 및 AWS CLI 만 지원
timestamp
-
항목의 타임스탬프에 사용할 값입니다. 비워 두면 항목이 처리된 시간이 사용됩니다.
unit
-
value
에 설명된 표현식에서 기인하는 타임스탬프 값의 정밀도입니다.유효한 값:
SECONDS
|MILLISECONDS
|MICROSECONDS
|NANOSECONDS
. 기본값은MILLISECONDS
입니다. value
-
긴 Epoch 시간 값을 반환하는 표현식입니다.
time_to_epoch(String, String) 함수를 사용하여 메시지 페이로드에 전달된 날짜 또는 시간 값에서 유효한 타임스탬프를 만들 수 있습니다.
Timestream 레코드 내용
이 작업을 통해 Amazon Timestream 테이블에 기록된 데이터에는 타임스탬프, Timestream 규칙 작업의 메타데이터 및 규칙 쿼리 문의 결과가 포함됩니다.
쿼리 문의 결과에 있는 각 속성(측정값)에 대해 이 규칙 작업은 지정된 Timestream 테이블에 레코드를 기록합니다.
열 이름 |
속성 유형 |
값 |
설명 |
---|---|---|---|
|
DIMENSION |
Timestream 규칙 작업 항목에 지정된 값입니다. |
규칙 작업 항목에 지정된 각 차원은 차원 이름을 사용하여 Timestream 데이터베이스에 열을 생성합니다. |
measure_name |
MEASURE_NAME |
속성의 이름 |
|
measure_value:: |
MEASURE_VALUE |
쿼리 문의 결과에 있는 속성 값입니다. 속성의 이름은 |
값은 해석되고* |
시간 |
TIMESTAMP |
데이터베이스에 있는 레코드의 날짜 및 시간입니다. |
이 값은 정의된 경우 규칙 엔진 또는 |
* 메시지 페이로드에서 읽은 속성 값은 다음과 같이 해석됩니다. 이러한 각 경우에 대한 설명은 예시를 참조하세요.
-
인용되지 않은 값
true
또는false
는boolean
유형으로 해석됩니다. -
십진수는
double
유형으로 해석됩니다. -
소수점이 없는 숫자 값은
bigint
유형으로 해석됩니다. -
따옴표로 묶인 문자열은
varchar
유형으로 해석됩니다. -
객체 및 배열 값은 JSON 문자열로 변환되고
varchar
유형으로 저장됩니다.
예시
다음 JSON 예제에서는 규칙에 대체 템플릿이 있는 Timestream AWS IoT 규칙 작업을 정의합니다.
{
"topicRulePayload": {
"sql": "SELECT * FROM 'iot/topic'",
"ruleDisabled": false,
"awsIotSqlVersion": "2016-03-23",
"actions": [
{
"timestream": {
"roleArn": "arn:aws:iam::123456789012:role/aws_iot_timestream",
"tableName": "devices_metrics",
"dimensions": [
{
"name": "device_id",
"value": "${clientId()}"
},
{
"name": "device_firmware_sku",
"value": "My Static Metadata"
}
],
"databaseName": "record_devices"
}
}
]
}
}
다음 메시지 페이로드와 함께 이전 예에서 정의한 Timestream 주제 규칙 작업을 사용하면 다음 테이블에 Amazon Timestream 레코드가 작성됩니다.
{
"boolean_value": true,
"integer_value": 123456789012,
"double_value": 123.456789012,
"string_value": "String value",
"boolean_value_as_string": "true",
"integer_value_as_string": "123456789012",
"double_value_as_string": "123.456789012",
"array_of_integers": [23,36,56,72],
"array of strings": ["red", "green","blue"],
"complex_value": {
"simple_element": 42,
"array_of_integers": [23,36,56,72],
"array of strings": ["red", "green","blue"]
}
}
다음 테이블에는 지정된 주제 규칙 작업을 사용하여 이전 메시지 페이로드를 처리하는 데이터베이스 열과 레코드가 표시됩니다. device_firmware_sku
및 device_id
열은 주제 규칙 작업에 DIMENSIONS 정의된 입니다. Timestream 주제 규칙 작업은 time
열과 measure_name
및 measure_value::*
열을 생성하며, 이를 주제 규칙 작업의 쿼리 문의 결과 값으로 채웁니다.
device_firmware_sku | device_id | measure_name | measure_value::bigint | measure_value::varchar | measure_value::double | measure_value::boolean | 시간 |
---|---|---|---|---|---|---|---|
My Static Metadata | iotconsole-159EXAMPLE738-0 | complex_value | - | {"simple_element":42,"array_of_integers":[23,36,56,72],"array of strings":["red","green","blue"]} | - | - | 2020-08-26 22:42:16.423000000 |
My Static Metadata | iotconsole-159EXAMPLE738-0 | integer_value_as_string | - | 123456789012 | - | - | 2020-08-26 22:42:16.423000000 |
My Static Metadata | iotconsole-159EXAMPLE738-0 | boolean_value | - | - | - | TRUE | 2020-08-26 22:42:16.423000000 |
My Static Metadata | iotconsole-159EXAMPLE738-0 | integer_value | 123456789012 | - | - | - | 2020-08-26 22:42:16.423000000 |
My Static Metadata | iotconsole-159EXAMPLE738-0 | string_value | - | 문자열 값 | - | - | 2020-08-26 22:42:16.423000000 |
My Static Metadata | iotconsole-159EXAMPLE738-0 | array_of_integers | - | [23,36,56,72] | - | - | 2020-08-26 22:42:16.423000000 |
My Static Metadata | iotconsole-159EXAMPLE738-0 | 문자열 배열 | - | ["red","green","blue"] | - | - | 2020-08-26 22:42:16.423000000 |
My Static Metadata | iotconsole-159EXAMPLE738-0 | boolean_value_as_string | - | TRUE | - | - | 2020-08-26 22:42:16.423000000 |
My Static Metadata | iotconsole-159EXAMPLE738-0 | double_value | - | - | 123.456789012 | - | 2020-08-26 22:42:16.423000000 |
My Static Metadata | iotconsole-159EXAMPLE738-0 | double_value_as_string | - | 123.45679 | - | - | 2020-08-26 22:42:16.423000000 |