기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Timestream
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 있습니다.
-
Timestream에서 고객을 사용하여 저장된 데이터를 암호화하는 경우 서비스에 호출자를 AWS KMS key 대신하여 를 사용할 수 있는 권한이 있어야 합니다. AWS KMS 자세한 내용은 AWS 서비스에서 KMS를 사용하는 방법을 참조하십시오. AWS
파라미터
이 작업으로 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 |