기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
IoT AWS Core를 사용하여 IoT 디바이스에서 데이터를 수집하고 IoT Core 규칙 작업을 통해 Amazon Timestream으로 데이터를 라우팅할 수 있습니다. AWS IoT 규칙 작업은 규칙이 트리거될 때 수행할 작업을 지정합니다. Amazon Timestream 테이블, Amazon DynamoDB 데이터베이스로 데이터를 전송하고 AWS Lambda 함수를 호출하는 작업을 정의할 수 있습니다.
IoT 규칙의 Timestream 작업은 수신 메시지의 데이터를 Timestream에 직접 삽입하는 데 사용됩니다. 작업은 IoT Core SQL 문 결과를 구문 분석하고 Timestream에 데이터를 저장합니다. 반환된 SQL 결과 세트의 필드 이름은 measure::name으로 사용되며 필드 값은 measure::value입니다.
예를 들어 SQL 문과 샘플 메시지 페이로드를 생각해 보세요.
SELECT temperature, humidity from 'iot/topic'
{
"dataFormat": 5,
"rssi": -88,
"temperature": 24.04,
"humidity": 43.605,
"pressure": 101082,
"accelerationX": 40,
"accelerationY": -20,
"accelerationZ": 1016,
"battery": 3007,
"txPower": 4,
"movementCounter": 219,
"device_id": 46216,
"device_firmware_sku": 46216
}
위의 SQL 문을 사용하여 Timestream에 대한 IoT Core 규칙 작업을 생성하는 경우 측정 이름 온도 및 습도와 각각 24.04 및 43.605의 측정 값을 사용하여 두 레코드가 Timestream에 추가됩니다.
SELECT 문에서 AS 연산자를 사용하여 Timestream에 추가되는 레코드의 측정값 이름을 수정할 수 있습니다. 아래 SQL 문은 온도 대신 메시지 이름 임시로 레코드를 생성합니다.
측정값의 데이터 형식은 메시지 페이로드 값의 데이터 형식에서 추론됩니다. 정수, 이중, 부울 및 문자열과 같은 JSON 데이터 형식은 각각 BIGINT, DOUBLE, BOOLEAN 및 VARCHAR의 Timestream 데이터 형식에 매핑됩니다. cast() 함수를 사용하여 특정 데이터 유형에 데이터를 강제로 적용할 수도 있습니다. 측정값의 타임스탬프를 지정할 수 있습니다. 타임스탬프를 비워 두면 항목이 처리된 시간이 사용됩니다.
자세한 내용은 Timestream 규칙 작업 설명서를 참조하세요.
Timestream에 데이터를 저장하는 IoT Core 규칙 작업을 생성하려면 아래 단계를 따르세요.
사전 조건
콘솔 사용
-
AWS Management Console for AWS IoT Core를 사용하여 관리 > 메시지 라우팅 > 규칙을 클릭한 다음 규칙 생성을 클릭하여 규칙을 생성합니다.
-
규칙 이름을 원하는 이름으로 설정하고 SQL을 아래 표시된 텍스트로 설정합니다.
SELECT temperature as temp, humidity from 'iot/topic'
-
작업 목록에서 Timestream을 선택합니다.
-
Timestream에 데이터를 쓸 역할과 함께 Timestream 데이터베이스, 테이블 및 차원 이름을 지정합니다. 역할이 없는 경우 역할 생성을 클릭하여 역할을 생성할 수 있습니다.
-
규칙을 테스트하려면 여기에 표시된 지침을 따르세요.
CLI 사용
AWS 명령줄 인터페이스(AWS CLI)를 설치하지 않은 경우 여기에서
-
timestream_rule.json이라는 JSON 파일에 다음 규칙 페이로드를 저장합니다.
arn:aws:iam::123456789012:role/TimestreamRole
을 Amazon Timestream에 데이터를 저장할 수 있는 AWS IoT 액세스 권한을 부여하는 역할 arn으로 바꿉니다.{ "actions": [ { "timestream": { "roleArn": "arn:aws:iam::123456789012:role/TimestreamRole", "tableName": "devices_metrics", "dimensions": [ { "name": "device_id", "value": "${clientId()}" }, { "name": "device_firmware_sku", "value": "My Static Metadata" } ], "databaseName": "record_devices" } } ], "sql": "select * from 'iot/topic'", "awsIotSqlVersion": "2016-03-23", "ruleDisabled": false }
-
다음 명령을 사용하여 주제 규칙 생성
aws iot create-topic-rule --rule-name timestream_test --topic-rule-payload file://<path/to/timestream_rule.json> --region us-east-1
-
다음 명령을 사용하여 주제 규칙의 세부 정보 검색
aws iot get-topic-rule --rule-name timestream_test
-
timestream_msg.json이라는 파일에 다음 메시지 페이로드를 저장합니다.
{ "dataFormat": 5, "rssi": -88, "temperature": 24.04, "humidity": 43.605, "pressure": 101082, "accelerationX": 40, "accelerationY": -20, "accelerationZ": 1016, "battery": 3007, "txPower": 4, "movementCounter": 219, "device_id": 46216, "device_firmware_sku": 46216 }
-
다음 명령을 사용하여 규칙 테스트
aws iot-data publish --topic 'iot/topic' --payload file://<path/to/timestream_msg.json>
샘플 애플리케이션
Timestream with AWS IoT Core 사용을 시작하는 데 도움이 되도록 주제 규칙을 생성하는 데 필요한 아티팩트를 AWS IoT Core 및 Timestream에 생성하는 완전한 기능의 샘플 애플리케이션과 주제에 데이터를 게시하는 샘플 애플리케이션을 만들었습니다.
-
GitHub의 지침에 따라 AWS IoT Core 통합을 위한 샘플 애플리케이션의
GitHub 리포지토리 복제 -
README
의 지침에 따라 AWS CloudFormation 템플릿을 사용하여 Amazon Timestream 및 AWS IoT Core에서 필요한 아티팩트를 생성하고 주제에 샘플 메시지를 게시합니다.
비디오 자습서
이 동영상