• 2 min read

Azure Stream Analytics の地理空間機能を更新 - クラウドと Azure IoT Edge で使用可能

Azure Stream Analytics は、さまざまなデバイスやアプリケーションから収集されるテレメトリに対してリアルタイム分析や複雑なイベント処理ロジックを実行できるフル マネージド PaaS サービスです。組み込みの関数が多数用意されているため、シンプルな SQL 言語によるリアルタイム分析アプリケーションがきわめて簡単に構築できます。

Azure Stream Analytics は、さまざまなデバイスやアプリケーションから収集されるテレメトリに対してリアルタイム分析や複雑なイベント処理ロジックを実行できるフル マネージド PaaS サービスです。組み込みの関数が多数用意されているため、シンプルな SQL 言語によるリアルタイム分析アプリケーションがきわめて簡単に構築できます。また、地理空間機能を活用すれば、車両管理、コネクテッド カー、モバイル資産追跡、ジオフェンシング、ライドシェアリングなどのシナリオに対応した強力なアプリケーションもすばやく構築できます。

今回、これらの地理空間機能が強化され、これまでよりもはるかに多くのモバイル資産や車両を、状況に応じて簡単かつ正確に管理できるようになりました。これらの機能は、クラウドと Azure IoT Edge の両方でご利用いただけます。

それでは、新機能を簡単にご説明しましょう。

地理空間インデックス

これまでは、m か所 (ジオフェンス参照データ ポイント) のストリーミング データで n 個の資産を地理空間的に追跡するには、各参照データ エントリと各ストリーミング イベントをクロス結合する必要があり、O(n*m) 件の演算が発生していました。このため、数百か所で数千のアセットを管理する必要があるシナリオでは、スケールの問題が生じていました。

これを解消するために、関連クエリに地理空間データのインデックスが付与されるようになりました。インデックスが付与されると、ストリーミング イベントに地理空間データが紐付けられます。ストリーミング イベントと参照データを掛け合わせた数のデータが生成されるのではなく、地理空間オブジェクトの参照データに基づいてインデックスが作成され、検索処理が最適化されます。その結果、参照データの検索が O(n * log m) 回へと高速化されるため、文字どおり、桁違いに大規模なシナリオにも対応できるようになります。

WKT 形式のサポート

GeoJSON は、JavaScript Object Notation をベースとする、シンプルな地理空間的特徴やその他の属性を表すオープン スタンダードな形式です。これまで Azure Stream Analytics では、GeoJSON 仕様で定義されていないものは一切サポートされていませんでした。そのため、地理空間オブジェクトの一部は正常にエクスポートできず、Stream Analytics で処理することができませんでした。

この問題を解決するために、WKT 形式の地理空間データが新たにサポートされました。WKT 形式は Microsoft SQL Server でネイティブにサポートされているため、特定の地理空間的なエンティティや属性を扱う参照データ内ですぐに使用できます。これで、データを WKT 形式でエクスポートし、各エントリを nvarchar(max) として追加できます。

ジオメトリに基づく計算

これまで地理空間に基づく計算は可能でしたが、ジオメトリ投影に基づいた計算はできませんでした。そのため、ジオメトリ投影を利用するには、計算に使用する投影座標をユーザーが入力する必要がありました。しかし、投影が反映されず地理空間に基づいて計算され、期待どおりの出力が得られないこともよくありました。

このような問題を解決し、投影を利用した計算を完全に忠実に実行できるように、地理空間ではなくジオメトリに基づいて計算が実行されるようになりました。そのため、投影された地理座標の入力はこれまでの関数で可能ですが、出力では投影のプロパティが保持されます。地理空間に対する計算は、ST_DISTANCE 関数のみとなります。

お試しください

ぜひ Azure Stream Analytics の地理空間関数をお試しください。新機能を使用する場合は、ジョブの互換性レベルを 1.2 に設定してください。チュートリアルのドキュメントもご参照ください。