LoginSignup
7
5

More than 5 years have passed since last update.

Check! Azure IoT Hub message routing と Azure Stream Analytics の使いどころ比較

Posted at

こんにちは、 @dz_ こと大平かづみです。

Microsoft Azure Advent Calendar 2018 14日目の記事です。(遅くなりました :sweat_drops:

Prologue - はじめに

Azure IoT Hub を勉強していて、IoT Hub からほかの Azure リソースに連携する方法として message routing があることを知り、今まで使っていた Azure Stream Analytics との違いについて気になったのでまとめてみました。

まとめ

所感

まとめてみた結果、IoT Hub message routing はイベント振分け、Stream Analytics はデータストリームという位置づけがしっくりきました。

とはいえ、IoT Hub message routing もデバイステレメトリも扱えるので、基本的には IoT Hub message routing で事足りそうです。IoT Hub の料金プランの中で使え、ライフサイクルの変更や、Twin の変更などのイベント(プランの制限による※1)も扱えます。

そして、データ量が多い場合や、より柔軟なクエリ処理を行いたい場合、または IoT Hub message routing にはないエンドポイントを使いたい場合に Stream Analytics を選択するとよさそうです。

処理できるメッセージ

項目 IoT Hub message routing Stream Analytics
デバイスからのテレメトリ
デバイスのライフサイクルイベント(※1) △(※2)
Twin の変更イベント(※1) △(※2)
  • ※1 ライフサイクルイベントや Twin のイベントは、Free または Standard tier でのみ使えます。詳しくはこちら「ソリューションに適した IoT Hub のレベルを選択する | Microsoft Docs」をご確認ください。
  • ※2 各種イベントは IoT Hub message routing で Built-in Event Hub にルーティングすれば、 Stream Analytics の Input で受けとれると思います。(未検証)

出力先

出力先 IoT Hub message routing Stream Analytics
Azure Blob Storage
Azure Service Bus Queues
Azure Service Bus Topics
Azure Event Hub
Azure Data Lake Store ×
Azure SQL Database ×
Power BI ×
Table Storage ×
Azure Cosmos DB ×
Azure Functions ×

その他

項目 IoT Hub message routing Stream Analytics
特徴 IoT Hub におけるメッセージルーティング 複数の入出力に対応したデータストリーム
コスト IoT Hub の料金プランに含まれる ストリームユニットごとに時間に応じて課金
レイテンシ 低(平均 500ms 未満の増加のみ) 低(1 秒間に数百万のデータを並列処理)
時間をさかのぼって処理できる ×
SLA message routing に対する SLA はない(※3) SLA for Stream Analytics
入力元 IoT Hub のみ Azure IoT Hub, Event Hub, Blob storage
出力先 (上述) (上述)
  • ※3 IoT Hub 自体の SLA は「IoT Hub の SLA」をご参照ください。

機能紹介

Azure IoT Hub message routing

  • IoT Hub の一機能
  • デバイスからのテレメトリや、イベントをルーティングする
  • 出力先(エンドポイント)
    • Built-in Event Hub(IoT Hub の一部として提供される Event Hub)
    • 上述
  • 専用のクエリによってフィルタリング、ルーティングを仕分けられる
    • テストメッセージで動作確認可能
  • Fallback route: クエリにマッチしなかったメッセージの収集
  • diagnostic settings や Azure Monitor でモニタリング可能

詳細は「Azure IoT Hub メッセージ ルーティングについて | Microsoft Docs」にまとまっているので、ぜひ見てみてください。

Azure Stream Analytics

  • 様々な入力元、出力先をもつイベント処理エンジン
  • 大量のデータを並列で処理でき、スケール可能、パーティション対応
  • SQLライクなクエリでフィルタリング、加工、振り分けができる
  • 用途
    • IoT におけるテレメトリのリアルタイム分析
    • Web のログや動向分析、など
  • 入力元、出力先
    • 上述

詳細は「Azure Stream Analytics の概要 | Microsoft Docs」をはじめとしたドキュメントをご参照ください。

おまけ

メッセージとテレメトリについて

余談ですが、いろいろ調べていると messagestelemetry という言葉が出てきて混乱しました(笑) IoT Hub では以下のような意味合いで言葉が使われているようです。

用語 説明
メッセージ (messages) デバイス⇔クラウド間で送受信されるデータ全般を指す。テレメトリやイベントを含む。
テレメトリ (telemetry) デバイスから送られてくる任意のデータ。
イベント (events) ライフサイクルや Twin に応じたイベントの情報をもつデータ。

References

IoT Hub message routing

Stream Analytics

Others

Epilogue - おわりに

IoT Hub message routing を活用すれば、Stream Analytics を動かしてると課金が…という心配も減りますね!

適材適所で使っていきましょう~ :ok_woman:

7
5
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
7
5