さまざまなサービスを備えた Azure IoTソリューションを使用することで、企業は大規模なIoTインフラストラクチャを効率的に構築・管理・運用できます。本記事ではAzure IoT HubをはじめとするAzure IoTサービスの一部の紹介と、それらを用いたIoTデータの収集・分析の手順を解説します。
IoTデータの収集・分析に活用できるAzureのサービス
AIやDevOpsをはじめ、Microsoft Azureには最新の技術に対応した様々なサービスがありますが、その中のひとつにIoTインフラストラクチャの構築や管理運用に役立つソリューション「Azure IoT」もあります。Azure IoTを選択することで、セキュリティ対策やシステムの統合など、多くのメリットを得ることができます。
そんなAzure IoTに含まれる数多くの機能を活用することで、無数のIoTデバイスとIoTネットワークで繋がり、そこからビジネスに役立つデータの収集・分析ができます。Azureが提供する主なIoT関連サービスは、以下の通りです。
- IoTデータを連携するAzure IoT Hub
- データを保存するAzure Synapse Apache Spark プール と Delta Lake
- 分析データを可視化するSynapse Notebook
この記事では、それぞれのサービスの詳細について詳しく解説し、実際に導入する際のメリットやポイントをご紹介します。Azureが提供する主なIoT関連サービスの導入を検討する際には、ぜひ参考にしてみてください。
Azure IoT Hubとは?
Azure IoT Hubとは、Azure IoTにおけるサービスの一部で、無数のIoTデバイスと接続し、それらの監視・制御を行うためのソリューションです。何百万にもなるIoTデバイスとバックエンドソリューションを安全に接続できるため、信頼性が高いことが特徴です。以下では、そんなAzure IoT Hubの主な機能を解説します。
Azure IoT Hubの機能
Azure IoT Hubは、クラウドでホストされるIoTサービスのことです。その名の通り、IoTアプリケーションと管理するIoTデバイス間の相互通信を可能にするハブとしての役割を担います。Azure IoT Hubを活用することで、接続されたデバイスからIoTデータを受信したり、各種のコマンドを送信したりすることが可能です。
さらに、Azure IoT Hubにより、スケーラブルなIoTインフラストラクチャの構築も可能です。Azure IoT Hubには数百万台ものIoTデバイスと信頼性の高い通信で同時接続できるので、ビジネスの要件に応じてどこまでもスケールアップできます。 Azure IoT Hubではデバイスごとの認証管理をしたり、接続状況や障害などのイベントをリアルタイムで監視・制御したりすることも可能です。
IoTデータの分析・収集に当たっては、Azure IoT Hubを他のサービスと統合して、エンドツーエンドのソリューションを構築することが必要になります。
Azure Synapse Analytics Apache Sparkとは?
Azure IoT Hubには多くの機能があることをご紹介しました。続いては、IoTデータの統合や分析を可能にするAzure Synapse AnalyticsにおけるApache SparkプールとSynapse ノートブックについて詳しく解説します。
Azure Synapse Analyticsとは
Azure Synapse Analyticsとは、エンタープライズのデータウェアハウスやデータレイクとビッグデータ分析を統合する分析サービスのことです。Azure Synapse Analyticsでは サーバーレスまたはプロビジョニングされたリソースを大規模に使用して、自由にデータを分析できます。
Azure Synapse Analyticsは業界最高水準のSQLのApache Sparkを備えており、データレイクの操作や組み込みデータの統合が可能です。Apache Sparkとは、ビッグデータやETL、機械学習などのために活用される最も一般的なオープンソースの高速な統合分析エンジンを意味します。
Azure Synapse Analytics は、SQLのデータウェアハウス、Sparkのビッグデータ分析機能、およびデータ統合技術を組みあわせて統合環境を提供し、両者間および外部データソースからのデータの移動や管理を容易にします。Azure Synapse Analyticを活用することで、構造化データ・非構造化データ問わず、膨大なデータの分析基盤の構築が可能です。
Apache Spark プールとは
Apache Sparkプールは、Azure Synapse Analyticsに実装された機能のひとつで、オープンソースのビッグデータコンピューティング機能を提供します。具体的には、Sparkインスタンスがインスタンス化される際に、コンピューティングリソースの要件や、そこに関連する動作特性を定義する機能です。
Sparkプールはメタデータとしてのみ存在するので、リソースが消費されることはなく、Azure portalでいくつでも作成できます。Sparkプールでは分離コンピューティングオプションや、ノードのサイズ変更などが実行可能です。Azure portalを使うことで、サーバーレス化して利用できます。
Synapse ノートブックとは
Synapseノートブックとは、Azure Synapse Analyticsにおいて、ライブコードの記述や視覚化を行い、それらにテキストをコメントするための機能です。Synapseノートブックではスクリプト全体を実行するのではなく、各セルの出力をテストできます。そのため、何らかのアイデアをテストしようとするとき、Synapseノートブックを利用することは非常に助けになります。
Synapseノートブックの初期設定は簡単で、組み込みのセキュリティ機能を活用してデータを安全に保つことが可能です。 RAWやSQLなどの複数のデータ形式を処理可能で、データの準備、視覚化、機械学習など幅広いシーンで活用されます。 また、組み込みのデータ視覚化機能は多くの時間を節約できるため、データのサブセットを処理するときに便利です。設定作業をせずに使用を開始できるため、データ分析や情報分析を行いたい場合にとても役立ちます。
Azure DatabricksのDelta Lakeとは?
Databricksとは、開発者やデータサイエンティストがビッグデータを高速で分析するために使用するオープンソースのソフトウェアです。その中でも、Azure DatabricksはAzureでの使用に最適化されています。Azure Databricksでは最新のApache Spark環境が即座に利用可能で、さまざまな言語を使ってデータ分析を行えます。
Delta Lakeは、このAzure Databricksにおける既定のストレージ形式で、Databricks Lakehouse Platformにデータとテーブルを格納するために使用されるストレージレイヤーです。 Delta Lakeは Apache Spark APIと完全な互換性を持っており、バッチ操作とストリーミング操作の両方で信頼性の高いパフォーマンスとセキュリティを発揮します。Delta Lakeを活用して構造化データ・非構造化データ・半構造化データを一箇所に集約することで、アクセス性に優れた効率的なデータ分析基盤を構築可能です。
Azureサービスを用いたIoTデータ収集・分析の手順
大まかな手順は以下です。
まず、M5Stick-C (ESP32) のコードに Azure IoT Hub の接続情報を書く必要があるので IoT Hub を先に作成します。
Azure IoT Hub
- IoT Hub を作成。
- デバイスIDを作成。
- ストレージへ保存するためのルールを作成。
M5Stick-C (ESP32)
M5Stick-C とは、espressif 社 が開発したモジュール ESP32 を使った、液晶と RTC が付いたデバイスです。
現在は販売終了して M5StackC Plus が販売されています(2022年12⽉8⽇現在)。
M5StickC Plus — スイッチサイエンス
今回は Grove に温度計(BMP280)を接続します。
- azure-sdk-for-c-arduino/readme.md at main · Azure/azure-sdk-for-c-arduino · GitHub から Arduino ⽤ソースコードをダウンロードします。(MIT license)
- iot_configs.h を変更します。
Wi-Fi 、 IoT Hub 、 デバイスIDの設定をします。 - 送信データの取得、JSONの作成部分を変更します。
(ついでにログ出⼒と時間取得の部分も少し変更)
Synapse
- Synapse を作成します。
- Synapse Apache Spark Pool を作成します。
- Synapse Studio で Notebook を作成します。
まとめ
Microsoft AzureのIoTソリューションを活用することで、無数のIoTデバイスと接続できるスケーラブルなIoTプラットフォームを構築し、膨大なIoTデータを効率的に収集・分析できます。IoTを活用する際には、ぜひAzureのIoTサービスの導入をご検討ください。