Amazon Timestream for LiveAnalytics に類似した機能をご希望の場合は Amazon Timestream for InfluxDB をご検討ください。リアルタイム分析に適した、シンプルなデータインジェストと 1 桁ミリ秒のクエリ応答時間を特徴としています。詳細については、こちらを参照してください。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT Core
AWS IoT Core を使用して IoT デバイスからデータを収集し、IoT Core ルールアクションを介して Amazon Timestream にデータをルーティングできます。AWSIoT ルールアクションは、ルールがトリガーされたときに行う動作を指定します。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 ルールアクションが作成されると、2 つのレコードが Timestream に追加されます。それぞれメジャー名は temperature と humidity、メジャー値は 24.04 と 43.605 です。
SELECT ステートメントの AS 演算子を使用して、Timestream に追加されるレコードのメジャー名を変更できます。下の SQL ステートメントは、temperature の代わりにメッセージ名 temp でレコードを作成します。
メジャーのデータ型は、メッセージペイロードの値のデータ型から推測されます。integer、double、boolean、string の JSON データ型は、BIGINT、DOUBLE、BOOLEAN、VARCHAR の Timestream データ型にそれぞれマッピングされます。cast() 関数を使用して、データを強制的に特定のデータ型にすることもできます。メジャーのタイムスタンプを指定できます。タイムスタンプが空白の場合は、エントリが処理された時刻が使用されます。
詳細については、Timestream ルールアクションのドキュメントを参照してください。
Timestream にデータを保存する IoT Core ルールアクションを作成するには、以下の手順に従います。
前提条件
-
「データベースを作成する」で説明されている手順に従って、Amazon Timestream でデータベースを作成します。
-
「テーブルを作成する」で説明されている手順に従って、Amazon Timestream でテーブルを作成します。
コンソールを使用する
-
AWS IoT Core 用の AWS マネジメントコンソールを使用して、[管理] > [メッセージルーティング] > [ルール] をクリックしてから、[ルールを作成] をクリックしてルールを作成します。
-
ルール名を任意の名前に設定し、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 を AWS IoT Core と共に使い始めるのに役立つよう、トピックルールを作成するための AWS IoT Core と Timestream の必要なアーティファクトを作成する完全に機能するサンプルアプリケーションと、トピックにデータを発行するためのサンプルアプリケーションを作成しました。
-
GitHub
の指示に従って、AWS IoT Core 統合のサンプルアプリケーション 向けの GitHub リポジトリのクローンを作成します。 -
README
の指示に従い、AWS CloudFormation テンプレートを使用して Amazon Timestream と AWS IoT Core で必要なアーティファクトを作成し、サンプルメッセージをトピックに発行します。
チュートリアル動画
こちらの動画