1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】IoT Core - DynamoDBv2チュートリアル

Posted at

IoT Core - DynamoDBv2チュートリアル

この記事では、AWS IoT Coreを使用してデバイスデータをDynamoDBv2テーブルに保存する方法について解説します。
具体的な手順を、DynamoDBとDynamoDBv2の違いを踏まえながら説明します。

目次

  1. DynamoDBとDynamoDBv2の違い
  2. ステップ 1: DynamoDB テーブル作成
  3. ステップ 2: DynamoDB テーブルにデータを送信する AWS IoT ルールを作成
  4. ステップ 3: AWS IoT ルールと DynamoDB テーブルをテスト

DynamoDBとDynamoDBv2の違い

AWSのDynamoDBとDynamoDBv2では、データの格納形式に重要な違いがあります。
これらの違いを理解することは、データモデルの設計とクエリの最適化において重要です。

DynamoDB

DynamoDBでは、データは主にJSON形式の文字列として格納されます。
これは、複数のデータポイントを一つのカラムに組み込むことが可能で、柔軟なデータモデルを提供します。
例えば、以下のような形式でデータが保存されます。

sample_time device_id received_data
1 1 {"barometer": 1013, ...}

ここでは、received_data カラムにJSON形式の文字列が格納され、複数のデータフィールドが一つのエントリーに含まれています。

DynamoDBv2

一方で、DynamoDBv2では、各データポイントが個別のカラムに格納されます。
これにより、データのクエリや分析がより簡単になり、特定のデータポイントに対するアクセスが高速化します。
例として、以下のようなデータ構造があります。

sample_time device_id barometer humidity temperature wind_bearing wind_velocity
1 1 1013 80 28 255 22

この形式では、barometerhumiditytemperature など、各データポイントが独立したカラムとして格納されています。
これにより、特定のデータフィールドに対して直接クエリを実行することが可能になります。

ステップ 1: DynamoDB テーブル作成

以下は、DynamoDB コンソールでテーブルを作成する手順を見やすくまとめたものです。

DynamoDB テーブル作成手順

1.DynamoDB コンソールを開く

  • AWS管理コンソールにログインし、DynamoDBサービスを選択します

2.テーブルの作成

  • DynamoDBのダッシュボードで、[Create table] (テーブルの作成) をクリックします

3.テーブル名の設定

  • [Table name] (テーブル名) のフィールドに wx_data と入力します

4.キーの設定

  • [Partition key] (パーティションキー) に sample_time を入力します
  • [Sort key] (ソートキー) に device_id を入力します
  • 両キーともにデータタイプは Number を選択します

5.テーブルの作成

  • 全ての設定が完了したら、[Create] (作成) ボタンをクリックしてテーブルを作成します

ステップ 2: DynamoDB テーブルにデータを送信する AWS IoT ルールを作成

以下は、AWS IoT ルールの作成とテストの手順を見やすくまとめたものです。

AWS IoT ルールの作成手順

1.ルールの設定

  • ルール名に wx_data_ddbv2_tutorial を入力します
  • SQL のバージョンとして 2016-03-23 を選択します

2.SQL ステートメントの設定

  • SQL ステートメントに以下を入力します
SELECT sample_time, device_id, temperature, humidity, barometer, wind.velocity as wind_velocity, wind.bearing as wind_bearing FROM 'device/+/data'
  • 「次へ」をクリックします

3.アクションの選択

  • アクションとして DynamoDBv2 を選択します
  • DynamoDBテーブルには wx_data を指定します
  • IAMロールには新しく wx_ddbv2_role を作成します

ステップ 3: AWS IoT ルールと DynamoDB テーブルをテスト

IoT Core MQTTテストクライアントの使用手順

1.サブスクライブ

  • IoT Core MQTTテストクライアントを開きます
  • トピック device/+/data にサブスクライブします

2.メッセージのパブリッシュ

  • トピック device/22/data に対して、以下のメッセージをパブリッシュします
{
  "sample_time": 1,
  "device_id": 1,
  "temperature": 28,
  "humidity": 80,
  "barometer": 1013,
  "wind": {
    "velocity": 22,
    "bearing": 255
  }
}

これにより、DynamoDBには以下の形式でデータが保存されます。

sample_time device_id barometer humidity temperature wind_bearing wind_velocity
1 1 1013 80 28 255 22

まとめ

このチュートリアルでは、AWS IoT CoreとDynamoDBv2を用いてデバイスデータの管理方法を学びました。
DynamoDBとDynamoDBv2の違いを理解し、それに基づいてデータを保存する方法を実践しました。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?