Azure IoT Hubでのデータ受け取りと可視化2

前回、仮想エッジデバイスからAzure IoT Hubへデータを送信し、そのデータをAzure Functionsで確認するまでを試しましたが、今回はAzure Functionsではなく、Azure Stream Analyticsを経由してAzure SQL データベースにデータを入れて確認するところまでを試します。

はじめに

デバイスからのデータの流れはこのようになります。

以下の記事の「4.Azure IoT Hubへの接続・データ送信」までを終わらせた状態から設定していきます。

Azure IoT Hubでのデータ受け取りと可視化

Azure SQL データベースの作成

Azure ポータルの検索窓に”SQLデータベース”と入力し、サービスの”SQLデータベース”をクリックします。

 

”+作成”をクリックします。

 

 

コンピューティングとストレージはデフォルトから以下のようにBasicに変更しました。

SQL Databaseサーバーは新規で作成しました。

認証方法は”SQL認証を使用する”にしてます。

 

他の設定はすべてデフォルトで作成します。

月額の料金はこのようになりました。

 

デプロイが完了するまでしばらく待ちます。

テーブルの作成

前章で作成したSQLデータベースリソースから”クエリエディター”をクリックします。

SQL認証でログインします。

 

FWでアクセスがブロックされてエラーになるので、”サーバーXXの許可リストIP”をクリックして、自IPからアクセスできるようにします。

 

クエリエディターで以下のSQLを実行してIoTデバイスからのデータを格納するテーブルを作成します。

create table test_iot(  machine varchar(100),
                        ambient varchar(100),
                        timeCreated datetime,
                        EventProcessedUtcTime datetime,
                        PartitionId bigint,
                        EventEnqueuedUtcTime datetime);

EventProcessedUtcTime以降のカラムはIoT Hubが付与してくれます。

 

”サーバーファイヤウォールの設定”をクリックします。

 

Azure IP Rangesからファイルをダウンロードし、Stream Analyticsを作成したリージョンを検索し、”addressPrefixes”に記載のIPをすべて追加します。

Azure Stream Analyticsの作成・設定

Azure ポータルの検索窓に”Stream”と入力し、サービスの”Stream Analytics ジョブ”をクリックします。

”+作成”をクリックして、ストリーミングユニットを1に変更して自分の環境に合わせて作成します。

デプロイが完了したらリソースに移動します。

 

左のメニューの”入力”をクリックします。

 

”+ストリーム入力の追加”を選択し、”IoT Hub”をクリックします。

エンドポイントのみ”操作監視”に変更して他はデフォルト値で”保存”ボタンをクリックし、接続確認ができればOKです。

 

左のメニューの”出力”をクリックします。

 

”+追加”を選択し、”SQL Database”をクリックします。

 

必要な項目を入力して保存をクリックします。

 

”クエリ”をクリックします。

 

クエリに”入力”と”出力”のエイリアス名を登録します。

 

Stream Analyticsの”開始”をクリックして右下に表示される開始をクリックします。

 

データ送信の確認

仮想エッジデバイスのVMを起動(または再起動)します。

 

SQLデータベースの”クエリエディター”をクリックします。

 

作成したテーブルの右側の”・・・”クリックして、”Select Top 1000 Rows”をクリックしてテーブルに格納されたデータを確認します。

終わりに

Stream AnalyticsではデータがSQLデータベースに出力されているにもかかわらず、SQLデータベースのデータが更新されないという状況に悩みました。エラーが出力されなかったので気付かなかったのですが、SQLデータベースにStream Analyticsが接続できないことが原因でした。



 

投稿者プロフィール
土山 和也

土山 和也

ユーザーサポート、開発、運用、構築業務を経験し、現在はアーキテクトとして提案・プロジェクト支援に従事。専門はデータベースでDBA歴十数年。Azure/AWSを担当。

執筆記事一覧