LoginSignup
1
0

More than 3 years have passed since last update.

AlibabaCloud IoTPlatformにおけるデータの流れを理解する② -IoT Platformが受信したデータをTableStoreに格納する-

Posted at

 前回まで

前回は、IoT platformとECSを構築し、ECSが送信したデータをIoT platformが受信できるところまでを確認した。
今回は、IoTplatformが受信したデータをTableStoreに格納するまでの流れを説明する。

前回の記事
AlibabaCloud IoTPlatformにおけるデータの流れを理解する① -デバイスからIoT Platformにデータを送信する-

環境構築順序の続き

続いて、TableStoreを構築する。
マネジメントコンソール[Table Store]→[インスタンスを作成]を選択する。
ポップアップが出るので、[インスタンス名][インスタンスの説明]を入力して[OK]を選択。[インスタンスタイプ]は今回高性能インスタンスを選択した。
image.png

しばらく待つと作成したTableStoreが表示されるので、インスタンス名をクリック。
image.png

今回はVPCにバインドしないので、[テーブルの作成]を選択し、[テーブル名],[プライマリキー]を入力して、[OK]を選択。
image.png
これで、TableStoreの設定は完了。

IoT Platform→TableStoreのデータ連携設定

ルールの作成(データの処理)

ここまで出来たら、いよいよIoTPlatform→TableStoreのデータ連携設定を行う。
マネジメントコンソール[IoTPlatform][ルールエンジン][ルールの作成]を選択。
データ型はJSON型を選択。
image.png

次に、SQLの作成。
ここが難しい!(少なくとも自分は理解に時間がかかりました・・・。)
作成したるルール名を選択し、[SQLの作成]を選択。
データ取得方法のTipsは「AlibabaCloud IoTPlatformにおけるデータの流れを理解する③」で詳しく説明しようと思う。
ここでは、まずTableStoreにデータを転送することを目的としているので、必要最小限の設定のみ行っている。
詳細なSQLの記載方法は、公式サイト参照に詳しく書かれている。

  • フィールド:受信したデータから、抽出したいフィールドを選択。今回は * として全部抽出した。
  • Topic:トピックとは、プロダクト単位に定義されるデータ格納場所だと思ってもらえればいい。デバイスから受信したデータはトピックに格納される。ここで、クイックスタートからダウンロードできるモジュールを使ってデータを送信した場合、そのデータは/sys/${productKey}/${deviceName}/thing/event/property/postに格納される。なお、/sys/${productKey}/${deviceName}/thing/event/property/postは プロパティを報告するデバイス用のトピックである。IoT Platformのトピックについては、公式サイトを参照のこと。また、システム定義されたトピックについてはこちらにまとまっている。
  • 条件:ここには、抽出すべきデータの抽出条件を記載する。今回はとりあえずすべて抽出するので設定していない。

image.png

以上で説明したフィールドトピック条件の関係は下図のイメージである。
image.png

ルールの作成(データ転送)

最後にデータ転送の設定だ。
[操作の追加]を選択し、ポップアップに下記を入力。
対処方法の選択:Table Storeに保存
リージョン:格納したいTableStoreのリージョン指定
データシート格納したいTableStoreのデータシート名を指定
プライマリキー:データシートまで記入すると、PKが保管されるのでPKに格納する値を設定する。
${}で囲むことで変数として定義できる。囲まない場合は固定値になる。今回はまず転送できることを確認したいので、固定値を入力。

すべて入力が完了したら、[OK]を選択。
image.png

ここまで出来たら、ルールエンジンを開始する。

データ連携の確認

[マネジメントコンソール]から、[TableStore][インスタンス名][テーブル名][データエディタ]を選択。
これで、デバイスから送信されたデータがTableStoreに格納されているのが分かる。
なお、データ転送の設定でPKを1として設定したので、デバイスから送られたデータはPKが1のレコードを常に上書きし続けている。
image.png
また、[データ]を選択すれば、データの内容が表示できる。
(少し長いがすべて記載。)

{
    "primaryKeys":[
        {
            "columnName":"id",
            "type":"INTEGER",
            "value":"1"
        }
    ],
    "columns":[
        {
            "columnName":"deviceName",
            "columnUnits":[
                {
                    "value":"AR863hEI5qa63F8BpQKV",
                    "type":"STRING",
                    "timestamp":1566281030798
                }
            ]
        },
        {
            "columnName":"deviceType",
            "columnUnits":[
                {
                    "value":"None",
                    "type":"STRING",
                    "timestamp":1566281030798
                }
            ]
        },
        {
            "columnName":"gmtCreate",
            "columnUnits":[
                {
                    "value":"1566281030787",
                    "type":"STRING",
                    "timestamp":1566281030798
                }
            ]
        },
        {
            "columnName":"iotId",
            "columnUnits":[
                {
                    "value":"AR863hEI5qa63F8BpQKV000100",
                    "type":"STRING",
                    "timestamp":1566281030798
                }
            ]
        },
        {
            "columnName":"items",
            "columnUnits":[
                {
                    "value":"{"Status":{"time":1566281030789,"value":1},"Data":{"time":1566281030789,"value":"Hello, world!"}}",
                    "type":"STRING",
                    "timestamp":1566281030798
                }
            ]
        },
        {
            "columnName":"productKey",
            "columnUnits":[
                {
                    "value":"a1qZJMZC4UT",
                    "type":"STRING",
                    "timestamp":1566281030798
                }
            ]
        },
        {
            "columnName":"requestId",
            "columnUnits":[
                {
                    "value":"58",
                    "type":"STRING",
                    "timestamp":1566281030798
                }
            ]
        }
    ]
}

次回に向けて

今回は、デバイスからIoT Platformを経由してTableStoreにデータを格納するところまでを説明した。
次回はこの環境を使って、データの加工方法やデータの項目追加方法、SQLでのデータ抽出方法などに関するTipを、データの流れを意識しながら説明する。

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