地理空間のデータ処理と分析

Azure Data Factory
Azure Data Lake Storage
Azure Database for PostgreSQL
Azure Databricks
Azure Event Hubs

この記事では、大量の地理空間のデータを分析に使用できるようにするための管理しやすいソリューションの概要を説明します。

アーキテクチャ

Architecture diagram showing how geospatial data flows through an Azure system. Various components receive, process, store, analyze, and publish the data.

このアーキテクチャの Visio ファイルをダウンロードします。

この図にはいくつかの灰色のボックスがあり、それぞれに異なるラベルが付いています。 ラベルは左から右の順に取り込み、準備、読み込み、サービス、視覚化、調査を示しています。 他のボックスの下の最後のボックスには、監視とセキュリティ保護を示すラベルが付いています。 各ボックスに、さまざまな Azure サービスを表すアイコンが含まれています。 番号付き矢印は、図の説明に示されている手順に従って、ボックスを結びつけています。

ワークフロー

  1. IoT データがシステムに入力されます。

    • Azure Event Hubs が IoT データのストリームを取り込みます。 このデータには、デバイスの場所を識別する座標またはその他の情報が含まれています。
    • Azure Event Hubs は、初期ストリーム処理のために Azure Databricks を使用します。
    • Azure Event Hubs は Azure Data Lake Storage にデータを格納します。
  2. GIS データがシステムに入力されます。

    • Azure Data Factory がラスター GIS データと任意の形式のベクトル GIS データを取り込みます。

      • ラスター データは、値のグリッドで構成されます。 各ピクセル値は、地理的領域の気温や海抜などの特性を表します。
      • ベクトル データは、特定の地理的特徴を表します。 頂点または不連続のジオメトリ位置が、ベクトルを構成し、各空間オブジェクトの形状を定義します。
    • Azure Data Factory は Azure Data Lake Storage にデータを格納します。

  3. Azure Databricks の Spark クラスターでは、地理空間コード ライブラリを使用してデータを変換および正規化します。

  4. Azure Data Factory は、準備されたベクトル データおよびラスター データを Azure Database for PostgreSQL に読み込みます。 このソリューションでは、このデータベースで PostGIS 拡張機能を使用します。

  5. Azure Data Factory は、準備されたベクトル データおよびラスター データを Azure Data Explorer に読み込みます。

  6. Azure Database for PostgreSQL は GIS データを格納します。 API は、このデータを次の標準化された形式で使用できるようにします。

    • GeoJSON は JavaScript Object Notation (JSON) に基づきます。 GeoJSON は、単純な地理的特徴とその非空間プロパティを表します。
    • Well-Known Text (WKT) は、ベクトル ジオメトリ オブジェクトを表すテキスト マークアップ言語です。
    • ベクター タイルは地理的データのパケットです。 軽量な形式のためマッピングのパフォーマンスが向上します。

    Redis キャッシュは、データへの迅速なアクセスを提供することでパフォーマンスを向上させます。

  7. Azure App Service の Web Apps 機能は、Azure Maps と連携してデータのビジュアルを作成します。

  8. ユーザーは、Azure Data Explorer を使用してデータを分析します。 このツールの GIS 機能を利用すると、分析情報を可視化できます。 たとえば、地理空間のデータから散布図を作成します。

  9. Power BI は、カスタマイズされたレポートとビジネス インテリジェンス (BI) を提供します。 Power BI の Azure Maps ビジュアルは、ビジネス結果の場所データ ロールを強調表示します。

プロセス全体:

  • Azure Monitor はイベントとパフォーマンスに関する情報を収集します。
  • Log Analytics は、モニター ログに対してクエリを実行し、結果を分析します。
  • Azure Key Vault は、パスワード、接続文字列、およびシークレットを保護します。

コンポーネント

  • Azure Event Hubs は、ビッグ データのためのフル マネージド ストリーミング プラットフォームです。 このサービスとしてのプラットフォーム (PaaS) には、パーティション分割されたコンシューマー モデルが用意されています。 複数のアプリケーションでこのモデルを使用して、データ ストリームを同時に処理できます。

  • Azure Data Factory は、異なるデータ ストアからのデータを処理する統合サービスです。 このフル マネージドのサーバーレス プラットフォームを使用して、データ変換ワークフローを作成、スケジュール設定、調整できます。

  • Azure Databricks はデータ分析プラットフォームです。 フル マネージド Spark クラスターは、複数のソースからの大量のデータ ストリームを処理します。 Azure Databricks は、分析とデータの視覚化に使用する地理空間のデータを大規模に変換できます。

  • Azure Data Lake Storage は、高パフォーマンスの分析ワークロード用のスケーラブルで安全なデータ レイクです。 このサービスを使用すると、数百ギガビットのスループットを維持しながら、数ペタバイトの情報を管理できます。 通常、データは、構造化データ、半構造化データ、または非構造化データを含む複数の異種ソースから取得されます。

  • Azure Database for PostgreSQL は、オープンソースの PostgreSQL データベース エンジンのコミュニティ エディションに基づくフル マネージド リレーショナル データベース サービスです。

  • PostGIS は、GIS サーバーと統合される PostgreSQL データベースの拡張機能です。 PostGIS は、地理的なオブジェクトを含む SQL の場所のクエリを実行できます。

  • Redis は、オープンソースのメモリ内データ ストアです。 Redis キャッシュは、頻繁にアクセスされるデータをサーバー メモリに保持します。 キャッシュでは、データを使用する大量のアプリケーション要求を迅速に処理できます。

  • Power BI は、ソフトウェア サービスとアプリのコレクションです。 Power BI を使用すると、関連付けられていないデータ ソースに接続し、それらのビジュアルを作成できます。

  • Power BI 用 Azure Maps ビジュアルは、空間データを使用してマップを拡張する方法を提供します。 このビジュアルを使用して、位置データがビジネス メトリックに与える影響を示すことができます。

  • Azure App Service とその Web Apps 機能によって、Web アプリを構築、デプロイ、スケーリングするためのフレームワークが提供されます。 App Service プラットフォームによって、組み込みのインフラストラクチャ メンテナンス、セキュリティ更新プログラムの適用、スケーリングが提供されます。

  • Azure Maps 用 GIS データ API は、マップ データを GeoJSON やベクター タイルなどの形式で格納および取得します。

  • Azure Data Explorer は、大量のデータを処理できる高速フル マネージド Data Analytics サービスです。 このサービスは、当初は時系列とログ分析に重点を置いていました。 現在は、アプリケーション、Web サイト、IoT デバイス、その他のソースからのさまざまなデータ ストリームも処理できます。 Azure Data Explorer の地理空間の機能には、マップ データをレンダリングするためのオプションが用意されています。

  • Azure Monitor は、環境と Azure リソースに関するデータを収集します。 この診断情報は、可用性とパフォーマンスを維持するために役立ちます。 2 つのデータ プラットフォームがモニターを構成します。

  • Log Analytics は、モニター ログ データに対してクエリを実行する Azure portal ツールです。 Log Analytics には、クエリ結果をグラフ化および統計分析するための機能も用意されています。

  • Azure Key Vault は、トークン、パスワード、API キーなどのシークレットを格納し、これらへのアクセスを制御します。 また Key Vault は、暗号化キーを作成および制御し、セキュリティ証明書を管理します。

代替

  • 独自の API を開発するのではなく、Martin の使用を検討してください。 このオープンソースのタイル サーバーは、Web アプリでベクター タイルを使用できるようにします。 Martin は Rust で記述され、PostgreSQL テーブルに接続します。 コンテナーとしてデプロイできます。

  • GIS データ用の標準化されたインターフェイスを提供することが目的である場合は、GeoServer の使用を検討してください。 このオープン フレームワークは、Web Feature Service (WFS) などの業界標準の Open Geospatial Consortium (OGC) プロトコルを実装しています。 また、共通の空間データ ソースとも統合されます。 GeoServer は、仮想マシンのコンテナーとしてデプロイできます。 カスタマイズされた Web アプリと探索的クエリがセカンダリである場合、GeoServer は、地理空間のデータを簡単に発行できるようにします。

  • Azure Databricks では、さまざまな Spark ライブラリを使用して地理空間のデータを操作できます。 このソリューションでは、次のライブラリを使用します。

    ただし、Azure Databricks を使用して地理空間のワークロードを処理およびスケーリングするための他のソリューションも存在します。

  • ベクター タイルは、地図上の GIS データを効率的に表示する方法を提供します。 このソリューションでは、PostGIS を使用してベクター タイルを動的に照会します。 この方法は、100 万個未満のレコードが含まれる単純なクエリと結果セットに適しています。 ただし、次のような場合には、別の方法が適している可能性があります。

    • クエリの計算コストが高くなる。
    • データが頻繁に変更されることがない。
    • 大量のデータ セットを表示する。

    このような状況では、Tippecanoe を使用してベクター タイルを生成することを検討してください。 Tippecanoe は、データ処理フローの一部として、コンテナーとして、または Azure Functions と一緒に実行できます。 結果のタイルを API を使用して利用できるようにすることができます。

  • Event Hubs と同様に、Azure IoT Hub は大量のデータを取り込むことができます。 ただし IoT Hub は、デバイスとの双方向通信機能も提供します。 デバイスから直接データを受信しても、コマンドとポリシーをデバイスに送り返す場合は、Event Hubs ではなく IoT Hub を検討してください。

  • ソリューションを効率化するには、次のコンポーネントを省略します。

    • Azure Data Explorer
    • Power BI

シナリオの詳細

地理空間のデータ、または地理的コンポーネントを含む情報を操作するには、多くの可能性があります。 たとえば、地理情報システム (GIS) ソフトウェアと標準は広く利用されています。 これらのテクノロジは、地理空間のデータの格納、処理、およびアクセスを行うことができます。 しかし、多くの場合、地理空間のデータを使用するシステムを構成して維持することは困難です。 また、これらのシステムを他のシステムと統合するには、専門知識が必要です。

この記事では、大量の地理空間のデータを分析に使用できるようにするための管理しやすいソリューションの概要を説明します。 この方法は、高度な分析参照アーキテクチャに基づいており、次の Azure サービスを使用します。

  • GIS Spark ライブラリを使用した Azure Databricks は、データを処理します。
  • Azure Database for PostgreSQL は、API を介してユーザーが要求したデータを照会します。
  • Azure Data Explorer は、迅速な探索的クエリを実行します。
  • Azure Maps は、Web アプリケーションで地理空間のデータのビジュアルを作成します。
  • Power BI の Azure Maps Power BI ビジュアル機能は、カスタマイズされたレポートを提供します。

考えられるユース ケース

このソリューションは、次の多くの領域に適用されます。

  • マップや気候データなど、大量のラスター データへのアクセスを処理、格納、提供します。
  • エンタープライズ リソース プランニング (ERP) システム エンティティの地理的位置を特定します。
  • エンティティの位置データと GIS 参照データを組み合わせます。
  • 移動するデバイスからのモノのインターネット (IoT) テレメトリを格納します。
  • 分析地理空間クエリを実行します。
  • キュレーションされコンテキスト化された地理空間のデータを Web Apps に埋め込みます。

考慮事項

Microsoft Azure Well-Architected Framework に基づく次の考慮事項が、このソリューションに適用されます。

可用性

  • Event Hubs は、クラスター間で障害リスクを分散します。

    • 可用性ゾーンが有効になっている名前空間を使用して、物理的に分離された 3 つの施設にリスクを分散させます。
    • Event Hubs の geo ディザスター リカバリー機能を使用することを検討します。 この機能により、名前空間の構成全体がプライマリからセカンダリ名前空間にレプリケートされます。
  • Azure Database for PostgreSQL が提供するビジネス継続性機能について参照してください。 これらの機能は、さまざまな回復目標に対応しています。

  • App Service 診断は、ダウンタイムなど、アプリの問題について警告します。 このサービスを使用して、停止などの問題を特定、トラブルシューティング、および解決します。

  • Azure App Service を使用したアプリケーション ファイルのバックアップを検討します。 ただし、アプリケーション設定をプレーンテキストで格納するバックアップ ファイルには注意してください。 これらの設定には、接続文字列などのシークレットを含めることができます。

スケーラビリティ

このソリューションの実装は、次の条件を満たします。

  • 1 日あたり最大 1,000 万個のデータセットを処理します。 データセットには、バッチ イベントまたはストリーミング イベントが含まれます。
  • Azure Database for PostgreSQL データベースに 1 億個のデータセットを格納します。
  • 100 万個以下のデータセットを同時にクエリします。 最大 30 人のユーザーがクエリを実行します。

この環境では、次の構成を使用します。

  • 4 つの F8s_V2 ワーカー ノードを持つ 1 つの Azure Databricks クラスター。
  • Azure Database for PostgreSQL の 1 つのメモリ最適化インスタンス。
  • 2 つの Standard S2 インスタンスを含む 1 つの App Service プラン。

実装に対して行う調整を決定するには、次の要因を考慮してください。

  • データ インジェスト率。
  • データの量。
  • クエリの量。
  • サポートする必要がある並列クエリの数。

Azure コンポーネントは個別にスケーリングできます。

モニターの自動スケーリング機能では、拡大縮小機能も提供されます。 この機能を構成して、負荷の増加に対応してリソースが追加されるようにできます。 また、リソースを削除してコストを削減することもできます。

セキュリティ

セキュリティは、重要なデータやシステムの意図的な攻撃や悪用に対する保証を提供します。 詳細については、「セキュリティの重要な要素の概要」を参照してください。

コストの最適化

コストの最適化とは、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。

  • このソリューションの実装コストを見積もるには、コスト プロファイル例を参照してください。 このプロファイルは、「スケーラビリティに関する考慮事項」で説明されている環境の単一の実装用です。 これには、Azure Data Explorer のコストは含まれていません。
  • これらのパラメーターを調整し、環境内でこのソリューションを実行するコストを調べるには、 Azure 価格計算ツールを使用します。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパル作成者:

次のステップ

製品ドキュメント:

このソリューションの実装を開始するには、次の情報を参照してください。

地理空間のデータの処理に関する情報