コンテンツに移動
データ分析

ArcGIS と BigQuery - 地理データに最適な組み合わせ

2022年3月11日
https://storage.googleapis.com/gweb-cloudblog-publish/images/1_BigQuery_console.max-2000x2000.jpg
Google Cloud Japan Team

※この投稿は米国時間 2022 年 3 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。

地理データは、データドリブンな組織が十分な情報に基づいたビジネスの意思決定を行うために不可欠なデータセットの一つです。データはかつてないほど増加し続けており、従来のデータベースを使用して莫大なデータセットの管理と分析を行う難易度はさらに高まっています。これは地理データについても同様で、処理には膨大なコンピューティング能力が必要となっています。

Esri は、地理空間ソフトウェア開発を手がける 1969 年創立の大手企業です。Esri の ArcGIS は、ロケーション インテリジェンス、ジオマッピング、空間分析の製品のなかで、最も優れ、広く採用されている製品の一つです。

ArcGIS Pro と ArcGIS Enterprise の最新リリースにより、Esri のお客様は BigQuery を活用して地理空間分析を行えるようになりました。以下のような場合、BigQuery と ArcGIS を一緒に実行することをおすすめします。

  • GIS アプリケーションで地理データを探索、分析、可視化する際、データの増加によりパフォーマンスの問題に直面している

  • ArcGIS でのマップ操作を向上させるために、費用対効果の優れた地理データ向けのビッグデータの処理エンジンを探している

  • ユーザーにストリーミング データでのリアルタイムな分析情報を提供したい

  • 機械学習を使用して ArcGIS 内の地理空間データをさらに活用することを考えている

BigQuery に組み込まれた機械学習、ストリーミング挿入、大規模な地理空間データセットの保存および処理機能は、これらのユースケースなどで ArcGIS と優れた相性を発揮します。

地理空間データ処理でトップクラスのサポートを提供する BigQuery

BigQuery は分析のためのリーディング ソリューションであり、何万人ものお客様による大規模な分析を可能にしています。BigQuery のお客様は、2021 年 12 月には 275 EB(エクサバイト)にも及ぶデータを分析しました。これは前年比 350% 増で、数百人のお客様がペタバイト規模の環境を、すべて 99.99% の SLA で利用しています。また、BigQuery により、地理データ型と標準 SQL の地理関数も提供され、地理空間データを分析できます。BigQuery のストリーミング挿入機能により、ストリーミングしている地理空間データでリアルタイムの分析情報を取得できます。

BigQuery に組み込まれた機械学習

一般に BQML として知られる BigQuery 機械学習は、データを BigQuery から移動することなく、標準 SQL 関数を使用して機械学習モデルを作成することを可能にし、機械学習をより多くの人が利用できるようにします。これにより、標準 SQL だけで最新の機械学習モデルを使用して GIS データの潜在力を発見する可能性が広がります。

この投稿では、これら両方の機能を ArcGIS の高度な機能や可視化と組み合わせて使用する例をご紹介します。

ArcGIS と BigQuery の統合

最新リリースの ArcGIS Pro 2.9 と ArcGIS Enterprise 10.9.1 で、ArcGIS ユーザーは BigQuery とのライブ接続を確立して、組織内の地理空間データの探索、可視化、分析、共有ができるようになりました。以下は、ArcGIS pro でこのような接続を確立するための手順の簡単な概要です。このデモは、ArcGIS Pro(Windows)がすでにインストールされていることを前提としています。

1. ArcGIS Pro から BigQuery データセットに接続できるようにするには、GCP プロジェクトを用意し、その GCP Console を使用して BigQuery API を有効にする必要があります。(BigQuery サンドボックスを使用した無料プロジェクトの設定はこちらをクリックしてください)

この記事では、noaa_lightning と london_bicycle の BigQuery 一般公開データセットを使用します。BigQuery はこれらの一般公開データセットをホストしているため、ArcGIS Pro などの他のアプリケーションを使用してこれらのデータセットを探索、分析、可視化できます。これらは一般公開データであるため、Google が無料でホストしており、ユーザーはデータに対して実行したクエリにのみ支払いが発生します。毎月 1 TB までは無料で、これらの BigQuery の一般公開データセットには Cloud Console を使用してアクセスできます。また、一般公開データカタログを使用してどのデータセットが必要なのかを検索できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_BigQuery_console.max-2000x2000.jpg
BQ リソースの作成および管理や、SQL クエリの実行が可能な BigQuery コンソール

2. NOAA が作成した落雷の一般公開データセットを使用します。テーブルのサンプル スキーマはこちらで確認できます。

新しいデータセット arcgis_bq とビュー lightning_all を作成し、BigQuery コンソールで以下のスクリプトを実行することで 1987 年から 2020 年までの落雷情報のユニオンをとります。

読み込んでいます...

1987 年から 2020 年までの落雷データのユニオンをとるための新しいデータセットとビューを作成するスクリプト(各年には一般公開データセットに独自のテーブルがあり、これを BQ コンソールで貼り付けて実行する)


3. Windows マシンにすでに ArcGIS Pro がインストールされていることを前提にしています。ArcGIS は ODBC 接続を使用して BigQuery と通信します。同じ Windows マシンに BigQuery の odbc ドライバをダウンロードおよびインストールします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_Graphical_interface.max-1000x1000.jpg
BigQuery 向け Simba ODBC ドライバをインストールするためのグラフィカル インターフェース

4. ODBC ドライバをインストールした状態で ArcGIS Pro を開き、ArcGIS Pro から [挿入] タブで新しいデータベース接続を作成します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_Create_a_new_database_connection_in_ArcG.max-1800x1800.jpg
ArcGIS Pro で新しいデータベース接続を作成
https://storage.googleapis.com/gweb-cloudblog-publish/images/4_Database_connection_dialog.max-600x600.jpg
BigQuery 接続情報を入力するためのデータベース接続ダイアログ

データベース接続ダイアログに情報を入力します。

  • データベース プラットフォームで、プルダウンから BigQuery を選択します

  • 認証タイプでは、ユーザーまたはサービスの認証を選択できます。サービス アカウントを適切な権限で設定し、認証情報をダウンロードする必要があります

  • 鍵ファイルでは、ダウンロードした認証情報ファイルまでブラウジングし、[開く] をクリックします

  • プロジェクト ID: サービス アカウントがアクセス可能な GCP プロジェクト ID を指定します

  • デフォルト データセット: サービス アカウントを使用してアクセス可能な BigQuery のデータセット名を入力します

サービス アカウント権限に関する注意事項

BigQuery の一般公開データは一般に公開されていますが、お客様が管理する BigQuery のデータセットに格納されているデータにアクセスするには、サービス アカウントに以下の権限が必要です。これにより、サービス アカウントからアクセスできるあらゆるプロジェクトのすべての BigQuery データセットにアクセスできます。

  • bigquery.jobs.create 

  • bigquery.readsessions.create 

  • bigquery.readsessions.getData 

  • bigquery.routines.get 

  • bigquery.routines.list 

  • resourcemanager.projects.get  

  • bigquery.datasets.get 

  • bigquery.tables.create 

  • bigquery.tables.delete 

  • bigquery.tables.get 

  • bigquery.tables.getData 

  • bigquery.tables.list 

  • bigquery.tables.update 

  • Bigquery.tables.updateData

状況によっては、組織のポリシー管理者と連携して、サービス アカウントに割り当てることができるカスタムロールを作成する必要があります。

5. ArcGIS Pro でクエリのレイヤを作成します。

米国全土の落雷の空間分布を把握しようと思います。この例では、BigQuery 一般公開データセットと、先ほどステップ 2 で作成したビューから、複数のクエリのレイヤを追加します。

ArcGIS Pro を開き、ツールバーから [+ データの追加] を選択してから、[クエリ レイヤー] を選択します。

以下のクエリをダイアログに追加します。このクエリは 9,000 万行以上のデータを集計します。

読み込んでいます...

州ごとの落雷回数を取得するクエリ。ここではステップ 2 で作成したビューも使用します

https://storage.googleapis.com/gweb-cloudblog-publish/images/5_Query_Layer_dialog.max-2000x2000.jpg
ArcGIS のクエリレイヤ ダイアログで SQL クエリを入力する

クエリレイヤのマテリアライズド ビューを有効にすると、マップ操作のパフォーマンスが向上します。これはまた、大規模なデータセットやストリーミング データの集計にも適しています。マテリアライズド ビューの期限が切れするように設定するオプションもあります。これは特にビューを短期間しか必要としない場合、追加料金の発生を回避するために必要です。

https://storage.googleapis.com/gweb-cloudblog-publish/images/6_ArcGIS_Pro.max-1600x1600.jpg
ArcGIS Pro: 面積で正規化された州別の落雷数

クエリは、ArcGIS Query レイヤを介して BigQuery の「ポイント イン ポリゴン」地理空間分析関数(ST_Within)を実行します。クエリは全米 9,000 万か所の落雷地点に対して、50 州までのポイント イン ポリゴン分析を実行します。このアプローチにより、ArcGIS Pro から直接 BigQuery の分析処理能力を活用できます。

また、落雷データをよりわかりやすく表示するために、マップの記号を調整し、「段階的な色」を適用して、州のエリアごとに正規化することもできます。この結果は興味深いもので、当初の仮説では、フロリダ州が最も落雷数が多いとみられていましたが、結果のマップを見ると、テキサス州にもかなりの数の落雷があります。

郡のデータセットに対するクエリ

州レベルの分析により、米国全土の落雷分布を大まかに把握できます。しかし、群レベルでの分析となると、話が違ってくる可能性があります。全米で落雷の多い上位 20 の郡を簡単に見ていきましょう。

以下のクエリを使用して「county_lightning_summary」という新しいクエリレイヤを作成します。これにより、郡の境界と比較した落雷の同様の「ポイント イン ポリゴン」(ST_Within)分析が実行されます。また、先ほど作成したビューの一部として、その場で落雷データのすべての年のユニオンをとります。分析には bigquery-public-data.geo_us_boundaries.counties レイヤを使用します。また、郡はポリゴンではなく、ポイントとして返します。

読み込んでいます...

1987 年から 2020 年までの年間落雷数上位 20 郡を選択するクエリ


クエリは 9,000 万か所の落雷地点に対して、約 3,200 郡までのポイント イン ポリゴン分析を実行します。新たに作成されたマップでは、落雷数の多い郡のいくつかはテキサス州以外の地域であることが確認でき、20 郡のうち 8 郡はアリゾナ州にあることがわかりました。


https://storage.googleapis.com/gweb-cloudblog-publish/images/7_ArcGIS_Pro.max-1600x1600.jpg
落雷の多い上位 20 郡を示した ArcGIS のマップ

ArcGIS Pro と BigQuery 可視化パフォーマンスのヒント

ローカルの BigQuery データ ウェアハウスに保存され、ArcGIS Pro で可視化する必要がある大規模な空間テーブル(地理の列が存在する)の場合、次を実行することをおすすめします。

  • 可能な限り Esri クエリレイヤでデータにアクセスします。これは特にデータセットが大規模な場合に当てはまります。

  • マテリアライズド ビューを有効にしてパフォーマンスを向上させ、必要に応じて有効期限を適用して費用を節約します。マテリアライズド ビューは、有効期限がすぎると削除されます。

  • Esri のフィーチャ ビニングを適用すると、非常に大きなポイント データセット(数百万ポイント)を可視化できます。これには、さらに表示性能の向上というメリットがあります。

地理空間データにおける機械学習

BigQuery 機械学習を使用して、地理データの詳細な分析を行い、ArcGIS を使用して ML モデルの結果を確認することもできます。ロンドンの自転車データを使用したで説明したように、BigQuery ML で K 平均法モデルを使用して、レンタル自転車データのクラスタを構築しました。次の画像は、市中心部から計算した自転車ステーションの概要のクラスタモデルを示しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/8_Clusters_identified.max-800x800.jpg
K 平均法で特定されたクラスタ

クラスタ 1 は市中心部に近い混雑度の高い自転車ステーション、4 は移動時間が長く、市中心部から遠い自転車ステーションを示しています。ArcGIS のマップでは、自転車ステーションのクラスタの空間分布を簡単に表示できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/9_London_bicycle_stations.max-1700x1700.jpg
ArcGIS のマップ: K 平均法クラスタを使用したロンドンの自転車ステーションのクラスタ空間分布

また、先ほどの落雷の例を使って BigQuery 機械学習でモデルをトレーニングし、2021 年と 2022 年の州または郡ごとの落雷数を予測することもできます。

結論

Esri のお客様は、クラウドネイティブなデータ ウェアハウス BigQuery を使用して地理空間データの潜在力を引き出すことができるようになりました。地理空間データの分析は、大規模なデータセットほど大量の計算を必要とするため、BigQuery のサーバーレスかつペタバイト規模の特性はこの種のワークロードに最適です。また、メンテナンスのオーバーヘッドを削減できるため、ArcGIS を使用した知見や分析に注力できます。地理空間データは読み込みジョブgeobeam または FME を使用して BigQuery に簡単に読み込むことができます。また、新しい Storage Write API を使用して、データを BigQuery にストリーミングすることで、ストリーミング データでリアルタイムの分析情報を取得できます。大規模なデータセットやストリーミング データを集約するために、ArcGIS の出力クエリレイヤ内でマテリアライズド ビューを作成すると、マップ操作のパフォーマンスも向上します。

BigQuery は、地理空間分析を行うために地理データ型と複数の SQL 標準の地理関数をサポートしており、ユーザーは BQML を使用して地理データの予測分析や記述分析を行い、ArcGIS に接続してさらに分析を進めることができます。

ArcGIS を BigQuery に接続することで、すぐに使用を開始できます。BigQuery に独自のデータを読み込むか、BigQuery の一般公開データセットを利用して最初のテストを実行できます。BigQuery と ArcGIS の統合に加え、最近リリースされた ArcGIS Enterprise を使用すると、ArcGIS enterprise を Google Kubernetes Engine(GKE)でデプロイできます。

今後の ArcGIS と Google Cloud のコンテンツにぜひご期待ください。それまでの間、Google アカウント チームまたは営業担当者までお問い合わせいただき、Esri ArcGIS と Google Cloud の新機能について詳細をご確認ください。


謝辞

GIS のエキスパティーズを提供してくれた Rick Chen と貴重なフィードバックをくれた Chad Jennings に感謝します。

- カスタマー エンジニア Navjot Singh
- プリンシパル アーキテクト Damian Graham

投稿先