AzureでIoTデータ分析はTime Series Insights

> 20210412 : 事例デモを追加しました。

AzureでIoTソリューションを構築する時は必須で使うべきの「Azure Time Series Insights（以下、TSI）」です。
TSIは簡単に言うとIoTデータを可視化するサービスです。
去年(2020年)、7月にGen2にアップデートされました。Qiitaには関連記事が少ないのはなぜでしょうか。。
ということで今回はTSIの伝道師になって皆さんに魅力を伝えたいと思います。

# とりあえず、触ってみる

下記のリンクをクリックするとTSI Explorerが開かれてTSIの可視化について体験することができます。
Azureログインが必要です。

https://insights.timeseries.azure.com/demo

見れるデータは古い（？）ですが、こんなイメージです。
見たい時間枠を設定し、対象デバイスとテレメトリーを選択すると、関連グラフが現れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287622/693760db-58dd-01b5-86a1-99cfed9f7cb1.png)

# 何ができる？

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287622/b05c5f0a-bbd2-5135-fa1d-f1aeeee96c72.png)

上記のイメージはAzure公式のIoTデータフロー図です。
Azure IoT Hubに収集されたデータに対して処理、格納、分析がTSIでカーバできます。収集にはAzure IoT Hub以外Azure Event Hubもできます。

下記のTSIのデータフローイメージで全体構造が把握できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287622/0d155724-a1da-9fb1-41e9-df722d7bef04.png)

難しいと思われるかもしれませんが、アイコンがついている要素以外はTSIが関連しています。
先ほど、デモで確認したTSI Explorerはデータフローイメージの一番下にある「TSIエクスプローラー」に相当します。ここで重要なポイントはデータを保存する箇所で二つが用意されてます。
「ウォームストア」と「コールドストア」です。
ウォームとコールドの用語は「ビッグデータアーキテクチャ」の「ラムダアーキテクチャ」を参考すると理解できます。
簡単にいうと、コールドストアはAzure IoTから受信したデータを未加工の形式で保存する箇所です。ウォームストアはリアルタイムでデータを分析する箇所で最大31日間データを保存できます。

# シナリオ

下記のリンクでいくつかコーアシナリオが書いてありますが、
https://docs.microsoft.com/ja-jp/azure/time-series-insights/overview-use-cases
なにより「運用分析とプロセス効率の向上」の構成を素早く構築することができる点です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287622/7da06198-54a6-3e11-d8e2-6603db4ea5bc.png)

BI分析のPower BIはもちろん、コールドストアにAzure Databricksなどのデータ分散処理によってAIモデル作成もできます。
弊社で開発した[Azure IoTソリューションWeDX](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/1604376875527.wedx-iot-edge-devices-management?tab=Overview)もTSIのクエリAPIを使ってサードパーティアプリとして動いてます。

# ほかの魅力は？

Azure IoT HubのEdgeサービスである、「Azure IoT Edge」と「Azure Digital Twins」を活用すると紹介したくて我慢できないほどの魅力ありIoTソリューションが誕生します。
すでにTSIの開発ロードマップにて関連タスクが動いていますし、TSI公式ドキュメントを精読すれば関連内容を見つけられます。

# Azure Time Series Insights (Gen2) 作成 

Azureチュートリアルでまとまっているので参照リンクで作成手順は緩和します。
https://docs.microsoft.com/ja-jp/azure/time-series-insights/tutorials-set-up-tsi-environment#create-an-azure-time-series-insights-gen2-environment

### 注意点1

「Azure IoT Hub」と「Azure Storage account」を先に作ってください。

### 注意点2

TSI環境へのデータアクセスするにはアクセス許可作業が必要です。

### 注意点3

TSI環境作成時は「Time Series ID」を決めないといけません。そして、作成後に**変更不可**です。
最大三つまで設定できますが、Azure IoT Hubとつなげて使う場合は「iothub-connection-device-id」に設定することが妥当です。Digital Twins連携する場合は「dt-subject」も追加してください。

# 事例デモ

Azure Digital TwinsとAzure Time Series Insightsを使って弊社で取り込んでいる研究サイトをご紹介いたします。
リアルタイムデータはOpenSky-Networkを使っておりまして最新データはAzure Digital Twinsで過去データはAzure Time Series Insightsを使って管理し、リアルタイムで飛行機の位置を表示するウェブアプリです。

![tsi.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287622/5313ff15-385e-d9a9-c00d-af675dc49306.png)

https://wedx-twinmap.motojin.com/

# 関連ドキュメント

[Blog - Azure Time Series Insights Gen2: Leading the next generation of industrial IoT analytics platforms](https://azure.microsoft.com/en-us/blog/azure-time-series-insights-gen-2-leading-the-next-generation-of-industrial-iot-analytics-solutions/)
[ビッグデータアーキテクチャ](https://docs.microsoft.com/ja-jp/azure/architecture/data-guide/big-data/)
[タイムシリーズIDの選択に関するベストプラクティス](https://docs.microsoft.com/ja-jp/azure/time-series-insights/how-to-select-tsid)