今回はAzureのIoT系SaaSサービスのIoT Centralのデータを活用する方法についてまとめていきます。
#IoT Centralのデータをエクスポートする方法
現在、IoT Centralのデータを他のAzureサービスに連携する方法はEvent Hubs、
Service Bus、Blob Storageの3通りあります。以下、ドキュメントです。
https://docs.microsoft.com/ja-jp/azure/iot-central/core/howto-export-data
手順を見る限りではどれも簡単そうですが、今回はほぼリアルタイムにデータを出力するEvent Hubsを利用する方法をやってみます。
IoT Centralアプリケーションのセットアップについては別の記事に記載しているので今回はその続きだと考えてください。
https://qiita.com/ishii1125/items/0a36935a75c2d0a538f0
#Azure側での準備
とりあえずAzureのサービスとしてはEvent Hubsだけあれば問題ないのですが、Event Hubsのスループットを見ても面白くないので、Stream AnalyticsでEvent Hubsに入ってきたデータをJsonファイルに落とし込みたいと思います。
ということで、必要なAzureのサービスをいくつかデプロイしていきます。
まずはEvent Hubs。「リソースの作成」で検索窓から「Event Hubs」を見つけてデプロイします。
価格レベルについては今回はBasic、スループットユニットは1で問題ないでしょう。
次にStream Analytics。Event Hubsと同様に「Stream Analytics job」を見つけてデプロイします。ストリーミングユニットを3から1にすることをお忘れなく。。。
最後にストレージアカウント。前略ですが「Storage account - blob, file, table, queue」を見つけてデプロイします。パフォーマンスはStandard、レプリケーションはLRSになっていれば特別問題ないでしょう。
一通りサービスがデプロイできたらそれぞれの設定をしていきます。
#Azureサービスの諸作業
・Event Hubsの設定
作成したEvent Hubsの詳細に遷移し、実行するためのイベントハブを作成します。
パーティション数は4くらいにしておけば良いかと思います。
・Stream Analyticsの設定
入力、出力、クエリを準備します。
まず、入力の設定です。「ストリーム入力の追加」⇒「イベントハブ」を選択します。
詳細な設定は基本的には自動なので大幅割愛しますが、イベントシリアル形式はJsonで問題ないです。
次に、出力の設定です。「追加」⇒「Blob Storage/Data Lake Storage Gen2」を選択します。
ストレージアカウントについては先に作成したものを利用しますが、コンテナーについてはまだ作成していないので、この場で作成します。
「コンテナー」の項目から「新規作成」を選択し、任意の名前を決めてください。
最後はクエリです。SELECTは全出力にしたいので、アスタリスクのままでINTOを出力設定で作成した名前に、FROMは入力設定で作成した名前に変更して「クエリの保存」を選択してください。
以上で概ねの設定が完了です。
#IoT CentralアプリケーションとAzureの連携
まず、IoT Centralアプリケーションでデータ連携の設定をします。
IoT Centralアプリケーションで「Data export」を選択し、「New」⇒「Azure Event Hubs」で作成したEvent Hubsとイベントハブを選択し「Save」します。
最後にStream Analyticsのジョブを実行してデバイスからIoT Centralアプリケーションにデータを送信します。
#まとめ
実際にIoT Centralアプリケーションへのデータ送信とEvent Hubsのスループットのメトリックからかなりリアルタイム性は高いと思われます。
割とお手軽にできたので、IoT CentralアプリケーションをフロントにしたIoTも実現可能かと思います。