Writer:安藤 隼人
Azure Stream Analyticsとは?1秒間に数百万のストリーミングデータをスムーズに処理
近年ではDX(デジタルトランスフォーメーション)の一環として、IoTによる事業の変革が注目されています。中でもリアルタイムなデータ分析の仕組みは各企業のニーズが高く、例えば、工場機器のリアルタイム監視による故障予知や、各地でのリアルタイムな商品販売の実績把握とマーケティング施策への反映などに欠かせないものになっています。リアルタイムなデータを活用して自社の施策を推進したいという方も多いのではないでしょうか。今回は、1秒間に数百万単位のデータを処理でき、リアルタイムなデータ活用に最適なAzure Stream Analyticsについて、サービス内容やメリットを分かりやすくお伝えします。
ネクストステップにおすすめ
Azure Stream Analyticsとは
Azure Stream Analyticsは、Microsoft社が提供するAzureサービスの1つで、IoTシステムにおけるデータ収集・分析・可視化のうち分析のプロセスを担当し、複数のソースからの数百万件/秒にも及ぶ大量データを同時に分析および処理できます。
先に述べた工場などでの機器の監視を例にとると、工場機器から出力されたフォーマットがバラバラのログやメッセージログデータをAzure Event HubsやAzure IoT Hubで取り込み、SQLベースのクエリで加工を行い、Power BIの画面に担当者が見やすい形でリアルタイム出力する、などの仕組みが実装できます。販売データのリアルタイム分析などに対しても同様の仕組みが実装可能です。Azure Event HubsとAzure IoT Hubは、それぞれログデータとIoTデータの収集・配信・管理に活用でき、データの玄関口ともいえるAzureのサービスです。
クラウドで構築されたAIモデルをIoTデバイスで実行するAzure IoT Edgeランタイムでも使用できるため、IoT デバイス上のデータを処理できる点も魅力です。
Azure Stream Analyticsのジョブは、入力、クエリ、および出力で構成され、入力されたデータをクエリで加工し、画面や他のサービスへデータを出力していきます。またAzure Stream Analyticsはフルマネージドのサービスで、Azure側でセキュリティパッチ適用などのシステムメンテナンスを全て実施するため、煩雑なサーバーの運用作業は必要ありません。
入力には、Azure Event Hubs、Azure IoT Hubなどが活用できます。
入力されたデータは、SQLに基づくクエリを使用し、必要に応じてJavaScriptおよびC#のユーザー定義関数で機能を拡張しながら集計や結合などの処理が可能です。
出力ではAzure Functions、Service Bus Topics、Queues、Power BIなどのサービスへのデータ送信ができます。特に履歴データに基づいた機械学習モデルのトレーニングや、バッチ分析の実行などにあたっては、データを他のAzureストレージサービス(例: Azure Data Lake、Azure Synapse Analyticsなど)に格納して連携できます。
Azure Stream Analyticsのメリット
Azure Stream Analyticsには、高可用性と障害時の迅速なリカバリ、他システムとの連携や高いパフォーマンスなどメリットが多数あります。それぞれみていきましょう。
複数のリージョンをまたいで使用できる高可用性
Azure Stream Analyticsは世界中の複数のリージョンで使用でき、高い可用性を求められる処理を実行できるように設計されていて、遅延が1秒未満での運用を99.9%で保証しています。詳細については下記の公式ページをご覧ください。
Stream Analytics の SLA
障害時にも迅速なリカバリ
Azure Stream Analyticsはチェックポイント機能を通じて迅速な復旧ができ、システムの障害時でもデータの損失を発生させずに処理できる点が魅力です。
さまざまなシステムと連携
例えばAzure Blob Storage、Azure SQL Database、Azure Data Lake Store、Azure Cosmos DB などのさまざまなストレージシステムにジョブ出力をルーティングできます。その他にはAzure HDInsightを使用して格納済みの出力に対してのバッチ分析実施や、リアルタイムの視覚化のためにPower BIへ出力を送信するなどの処理が実施できます。
なお、Azure Blob Storage、Azure SQL Database、Power BIの詳細については、下記に詳しく記載していますので、ぜひご覧ください。
「Blob Storageとは?AzureのIoT向けサービス群での位置づけや特徴・使い方までを紹介」
「Azure SQL Databaseの特徴とは?その概要からIoT向けサービス群での位置づけまでを紹介」
「Power BIとは? IoT向けサービス群での位置づけや活用事例などを解説」
SQLベースで幅広い処理
Azure Stream Analyticsのクエリ言語はSQL言語と整合性があるため、SQLに精通していればジョブをスムーズに作成できます。シンプルなデータ操作・集計および分析、地理空間分析、パターンマッチング、異常検出などの処理が可能で、ポータルでクエリを編集して使用できます。
また、Azure Machine Learningを利用するために機械学習モデルをユーザー関数として定義し、リアルタイムの予測を実施するなど処理を拡張できるため、用途に応じた使い方が可能です。
大規模な処理を実行できる優れたパフォーマンス
大規模でリアルタイム性が要求される複雑なイベント処理アプリケーションに対応するために、スケールアップまたはスケールアウトが自由に実施でき、1秒間に数百万単位のデータを処理可能です。さらにクラウドとエッジの両方で同じツールとクエリ言語が使用されるため、大規模な処理はクラウドで、小規模な処理はエッジでといった使い分けができます。入力のパーティション分割によってクエリを並列化し、複数のノードでの実行も可能です。
Azure Stream Analyticsのユースケース
Azure Stream Analyticsのユースケースとしては、リアルタイムIoTデータ処理やしきい値を使ったアラート発報、タクシーのデータ収集など、さまざまなケースが考えられます。それぞれ内容をみていきましょう。
リアルタイムIoTデータ処理
工場の機械に取り付けてリアルタイムでデータを生成できるセンサーから、Azure Stream Analyticsを介してデータをサーバーへ送信し、分析に使用します。機械学習モデルをユーザー関数として定義することもできるので、AIを使った不良品検査などの仕組みにも応用できます。また、IoT Edgeランタイムを使用することでIoTデバイス上でもAzure Stream Analyticsのジョブ処理を稼働できるため、サーバーの処理負荷を軽減し、よりスムーズなデータ処理が可能になります。
しきい値を設定してアラートを発報
受信データが特定の値に達した、またはしきい値を超えた場合にアラートを生成できます。固定値のしきい値であれば単純な数値比較で構築可能です。しきい値を適用するデバイス種類の指定や、出力に含めるフィールドの選択など、関連項目の設定もできます。
タクシーの乗車データ収集
タクシー会社は各タクシーの乗車に関するデータを収集し、収益傾向を分析できます。各車には料金データと移動データ(走行時間、距離、乗車場所と降車場所)を送信できるIoTデバイスを搭載し、Azure Event Hubsで取り込んだデータをAzure Stream Analyticsで処理してPower BIで可視化します。さらに、SQL DBやCosmos DBと連携しデータの分析結果を可視化すれば、収益が高い車の移動傾向が分かり売上増に貢献できます。
Azure Stream Analyticsの料金
Azure Stream Analyticsには、クラウド利用版とIoT Edge利用版の2種類のプランがあります。
通常はクラウド利用版を選択し、IoTデバイスでAzure Stream Analytics を稼働させたい場合はIoT Edge利用版を選択すると考えればよいでしょう。 通常クラウド版は、ストリーミングユニット(SU)と呼ばれる単位でリソースが提供され、使用SUの数と利用時間によって料金が決まります(15.5円/時間/1SU)。IoT Edge版は、1デバイスごとに月額固定費用がかかります(112円/月/デバイス)。
料金の詳細は下記公式サイトをご覧ください。
Azure Stream Analytics の価格
Azure Stream Analyticsで円滑なデータストリーム処理を
Azure Stream Analyticsは、継続的に生成される大量データを同時に分析および処理できるサービスで、データやメッセージを取り込み、SQLベースのクエリやユーザー定義のクエリで加工を行い、SQLデータベースやBlobに出力する仕組みを構築可能です。Azure Stream Analyticsと他のサービスを組み合わせることで自社の業務を最適化した例が、製造業をはじめ数多く存在します。
Azure Stream Analyticsで円滑なデータストリーム処理を構築し、他のサービスと組み合わせて自社の業務を改善していきましょう。