Timestream - AWS IoT Core

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

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:DescribeEndpointstimestream: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 인스턴스의 이름 및 가용 영역 또는 풍력 터빈 제조업체 이름은 차원입니다.

name

메타데이터 차원 이름입니다. 데이터베이스 테이블 레코드 열의 이름입니다.

차원 이름은 measure_name, measure_value 또는 time으로 지정할 수 없습니다. 이러한 이름은 예약되어 있습니다. 차원 이름은 ts_ 또는 measure_value로 시작할 수 없으며 콜론(:) 문자를 포함할 수 없습니다.

대체 템플릿 지원: 아니요

value

데이터베이스 레코드의 이 열에 쓸 값입니다.

대체 템플릿 지원: 예

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-name

DIMENSION

Timestream 규칙 작업 항목에 지정된 값입니다.

규칙 작업 항목에 지정된 각 차원은 차원 이름을 사용하여 Timestream 데이터베이스에 열을 생성합니다.

measure_name

MEASURE_NAME

속성의 이름

measure_value::data-type 열에 값이 지정된 쿼리 문의 결과에 있는 속성의 이름입니다.

measure_value::data-type

MEASURE_VALUE

쿼리 문의 결과에 있는 속성 값입니다. 속성의 이름은 measure_name 열에 있습니다.

값은 해석되고* bigint, boolean, double 또는 varchar 중 가장 일치하는 항목으로 캐스팅됩니다. Amazon Timestream은 각 데이터 유형에 대해 별도의 열을 생성합니다. 규칙의 쿼리 문에서 cast() 함수를 사용하여 메시지의 값을 다른 데이터 형식으로 캐스팅할 수 있습니다.

시간

TIMESTAMP

데이터베이스에 있는 레코드의 날짜 및 시간입니다.

이 값은 정의된 경우 규칙 엔진 또는 timestamp 속성에 의해 지정됩니다.

* 메시지 페이로드에서 읽은 속성 값은 다음과 같이 해석됩니다. 이러한 각 경우에 대한 설명은 를 참조하세요.

  • 인용되지 않은 값 true 또는 falseboolean 유형으로 해석됩니다.

  • 십진수는 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_skudevice_id 열은 주제 규칙 작업에 정의된 DIMENSIONS입니다. Timestream 주제 규칙 작업은 time 열과 measure_namemeasure_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