AWS IoT Core - Amazon Timestream

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

AWS IoT Core

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 정수, 이중, 부울 및 문자열과 같은 데이터 유형은 VARCHAR 각각 , BIGINT, BOOLEAN, DOUBLE의 Timestream 데이터 유형에 매핑됩니다. 또한 cast() 함수를 사용하여 특정 데이터 유형에 데이터를 강제로 적용할 수도 있습니다. 측정값의 타임스탬프를 지정할 수 있습니다. 타임스탬프를 비워 두면 항목이 처리된 시간이 사용됩니다.

자세한 내용은 Timestream 규칙 작업 설명서를 참조하세요.

Timestream에 데이터를 저장하는 IoT Core 규칙 작업을 생성하려면 다음 단계를 따르세요.

사전 조건

  1. 에 설명된 지침을 사용하여 Amazon Timestream에서 데이터베이스를 생성합니다 데이터베이스 생성.

  2. 에 설명된 지침을 사용하여 Amazon Timestream에서 테이블을 생성합니다테이블 생성.

콘솔 사용

  1. AWS IoT Core용 AWS 관리 콘솔을 사용하여 관리 > 메시지 라우팅 > 규칙을 클릭한 다음 규칙 생성 을 클릭하여 규칙을 생성합니다.

  2. 규칙 이름을 원하는 이름으로 설정하고 를 아래 표시된 텍스트SQL로 설정합니다.

    SELECT temperature as temp, humidity from 'iot/topic'
  3. 작업 목록에서 Timestream을 선택합니다.

  4. Timestream에 데이터를 쓸 역할과 함께 Timestream 데이터베이스, 테이블 및 차원 이름을 지정합니다. 역할이 없는 경우 역할 생성을 클릭하여 생성할 수 있습니다.

  5. 규칙을 테스트하려면 여기에 표시된 지침을 따르세요.

사용 CLI

AWS 명령줄 인터페이스(AWS CLI)를 설치하지 않은 경우 여기에서 설치합니다.

  1. timestream_rule.json이라는 JSON 파일에 다음 규칙 페이로드를 저장합니다. Replace 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 }
  2. 다음 명령을 사용하여 주제 규칙 생성

    aws iot create-topic-rule --rule-name timestream_test --topic-rule-payload file://<path/to/timestream_rule.json> --region us-east-1
  3. 다음 명령을 사용하여 주제 규칙의 세부 정보 검색

    aws iot get-topic-rule --rule-name timestream_test
  4. 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 }
  5. 다음 명령을 사용하여 규칙을 테스트합니다.

    aws iot-data publish --topic 'iot/topic' --payload file://<path/to/timestream_msg.json>

샘플 애플리케이션

AWS IoT Core와 함께 Timestream 사용을 시작하는 데 도움이 되도록 주제 규칙을 생성하는 데 필요한 아티팩트를 AWS IoT Core 및 Timestream에 생성하는 완전한 기능의 샘플 애플리케이션과 주제에 데이터를 게시하는 샘플 애플리케이션을 만들었습니다.

  1. 의 지침에 따라 AWS IoT Core 통합을 위한 샘플 애플리케이션의 GitHub 리포지토리 복제 GitHub

  2. 의 지침에 따라 AWS CloudFormation 템플릿을 README 사용하여 Amazon Timestream 및 AWS IoT Core에서 필요한 아티팩트를 생성하고 샘플 메시지를 주제에 게시합니다.

비디오 자습서

동영상에서는 IoT Core가 Timestream과 작동하는 방법을 설명합니다.