
6. IoT Hub → Stream Analytics で D2C データを処理する
はじめに
さて、いよいよ、Stream Analytics を取り上げることにします。

「4. デバイスからのデータをサービス側で受信する」では既に、IoT Hub を介して機器から送られてくる D2C メッセージを Azure Function で受信する方法を解説したので、「それでいいんじゃない?」、と思われるかもしれません。その記事でも書いた通りそれが絶対ダメというわけではないのですが、より高度なことをより簡単に開発・実装できて、かつ、適度なコストでスケーラブルに運用できる方法があるならそれを選択する方が良いのは当たり前でしょう。Stream Analytics に関しては、Azure Stream Analytics の概要 | Microsoft Learn で詳しく解説されています。このサービス、確か、IoT Hub が出てくる前からリリースされていた筈なので、ずいぶん前から使ってます。

Stream Analytics
組込み機器だけでなく様々なデータソースから流れてくるデータストリームに対して、データ変換、統計処理、関連データのジョイン、条件に合致したデータの検出等を、外部サービスと連携しながらリアルタイムで行い、結果を、様々なサービス群に出力してくれるのが Stream Analytics です。データソース、出力先とは簡単な操作でセキュアに接続可能です。処理は、リレーショナルデータベースで標準で使われる SQL の文法を拡張したクエリ言語で記述します。このクエリ言語で使える定義済みの組み込み関数がなかなか充実していて、Azure Function で C# や JavaScript 等のプログラミング言語で処理を記述するよりも数十倍(個人の感想です)楽に、高度な処理を記述できます。この組み込み関数を駆使すれば、大抵の IoT ソリューションで必要なロジックは記述できるのですが、足りなければ、C# や JavaScript で作成したロジックを、Azure Stream Analytics でのユーザー定義関数 | Microsoft Learn の仕組みを使って組み込むことも可能です。また、自作の関数だけでなく、Machine Learning で作った AI の呼び出しも可能です。
データソースからのデータフォーマットは、CSV、JSON、AVRO をサポートしています。これらのフォーマットのデータをZIP で圧縮して一括入力も可能です。特段の理由が無ければ、一番使い勝手が良く表現も豊かな JSON をフォーマットとして採用するとよいです。クエリ言語は、SQL の拡張ではありますが、
ここから先は
Azure の最新機能で IoT を改めてやってみる
2022年3月にマイクロソフトの中の人から外の人になった Embedded D. George が、現時点で持っている知識に加えて、頻繁に…
この記事が気に入ったらチップで応援してみませんか?