Snowflake と ArcGIS の連携

はじめに

Snowflake は、Snowflake 社の提供する、クラウドベースで動く SaaS 型データ分析用 DWH になります。従来の伝統的な DWH に比べて柔軟性が高く、AWS・Azure・GCP などのクラウドサービス上で動作します。Snowflake 以外のクラウド型 DWH として、Amazon Redshift や Google BigQuery などが代表的なサービスです。ここでは、Snowflake のデータを ArcGIS が読み込めるようにデータ変換して、ArcGIS Pro や ArcGIS Enterprise で表示してみます(※Snowflake は 2023 年 8 月時点で国内未サポートになりますのでご了承ください)。

Snowflake 連携に向けた流れは以下の通りです。

  • Snowflake のトライアル登録
  • データベースの作成
  • ウェアハウスの作成
  • サンプルデータの取得
  • GEOGRAPHY形式を含むようにデータ登録
  • ArcGIS Pro で表示
  • ArcGIS Enterprise で表示

Snowflake トライアル申込

Snowflake のトライアルページから申込します。トライアルは、後ほど ArcGIS Enterprise へ公開する際にMaterialized View が利用されるようですので、Enterprise エディションを選択した方がよいようです。また、スターバックスのサンプルデータを取得するのに AWS Tokyo Region を選んでます(大阪リージョンだとMarketplaceエラーでうまく取得できませんでした)。

アクティベートするとトライアルが利用できるようになります。

Snowflake でデータの準備をする

1.データベースを作成します。Snowflake のブラウザの UI から作成できます。

2.ウェアハウスを作成します。ウェアハウスは、クエリの処理や DML 操作の実行に使用されるコンピュートリソースとなります。Snowflake では、データのロードや分析など、さまざまな用途に応じた複数のウェアハウスを作成して使用していくようです。ここでは、名前を arcgis_warehouse 、サイズを X-Small としてます。

3.スターバックスのサンプルデータを取得します。

ログインした状態で以下の URL にアクセスして取得ボタンを押下します。

https://app.snowflake.com/marketplace/listing/GZSNZ2UNRS?referrer=snowflake-website&utm_cta=us-en-www-mktplace-listing-accessdata-SafeGraph-FreePOIDataSample:USStarbuckslocations-text

ロールは PUBLIC を選択しています。

4.ブラウザ UI のワークシートにてデータの中身を確認します。データベース・スキーマは、DEMO_DATABASE.PUBLIC を選択します。

USE WAREHOUSE arcgis_warehouse;
SELECT * from FROM STARBUCKS_PLACES_SAMPLE.PUBLIC.CORE_POI limit 100;

5.STARBUCKS_PLACES_SAMPLE から GEOGRAPHY のデータを含む形でデータを再作成します。

USE WAREHOUSE arcgis_warehouse;
CREATE TABLE PUBLIC.STARBUCKS_GEOM as
SELECT *, ST_MAKEPOINT(LONGITUDE, LATITUDE) as geom
FROM STARBUCKS_PLACES_SAMPLE.PUBLIC.CORE_POI;

さきほど作成した DEMO_DATABASE に登録されます。geom は GEOGRAPHY データとして登録されてます。

ArcGIS Pro で表示する

ArcGIS Pro のバージョン は2.9 を利用しています。

1.ODBC ドライバーのインストール

ArcGIS Pro で表示するにはまずSnowflakeのODBCドライバーをインストールしておく必要があります。

Installing and Configuring the ODBC Driver for Windows より、ArcGIS Pro のインストールされているマシンに 64bit 版をダウンロードしてインストールしておきます。

2.データベース コネクションの作成

ArcGIS Pro にてデータベースコネクションを作成します。

Snowflake の UI 画面よりアカウント URL を取得します。

以下のパラメータを設定していきます。

項目
データベースプラットフォーム Snowflake
サーバー アカウントURL

例)xxxx. .ap-northeast-1.aws.snowflakecomputing.com

認証タイプ ユーザー
ユーザー名 トライアルで登録したユーザー名

※本番利用を想定した場合は管理者権限でないアカウントを用意しておくのが無難です。

パスワード トライアルで登録したパスワード
ロール ACCOUNTADMIN

※本番利用を想定した場合は管理者権限でないロールを用意しておくのが無難です。

データベース DEMO_DATABASE
ウェアハウス arcgis_warehouse

3.クエリ レイヤーの作成

データの追加よりクエリ レイヤーを選択して、クエリ レイヤーを作成していきます。

接続にてさきほど作成したデータベース コネクションを選択し、名前に starbucks と入力します。

クエリに、SELECT * FROM DEMO_DATABASE.PUBLIC.STARBUCKS_GEOM; を入力します。

その後、整合性チェックを押下します。エラーが出た場合はテーブル名が正しいか確認してください。また No active warehouse というエラーの場合は、作成した warehouse が Snowflake の接続プロパティで設定したユーザー・ロールなどでは利用できない可能性があります。

一意識別子フィールドに PLACEKEY を選択し、完了ボタンを押下しますと Snowflake に保持されたデータを ArcGIS Pro で表示させることができます。

ArcGIS Enterprise で表示する

ArcGIS Enterprise で表示してみます。ここでは、バージョン11.0を利用しています。

1.ODBC ドライバーのインストール

Portal for ArcGIS、ArcGIS Server を配置したサーバーにSnowflake の ODBC ドライバーをダウンロードしてインストールしておきます。

2.ArcGIS Enterprise でのデータストアアイテム登録

Portal for ArcGIS のコンテンツの新しいアイテムよりデータベースデータストアアイテムを追加します(データ ストアを登録する権限があるメンバーとしてサイン インしておきます)。

正常にデータベースデータストアが登録されると ArcGIS Server Manager のデータストアでも正常に登録されていることが確認できます。

他のメンバーも利用できるようにデータストア アイテムを組織内で共有しておきます。

3.ArcGIS Pro からマップ イメージ サービスを公開します。

ArcGIS Pro からマップ イメージ サービスを公開すると、Webマップとして starbucks が表示されます。

マップ イメージ サービスの公開に失敗する場合は Snowflake のエディションが Enterprise 以上であるか確認してみてください。

まとめ

ArcGIS を利用すれば Snowflake、Redshift、BigQuery など他のデータウェアハウスサービスと連携することが可能となります。GIS 活用の中での DX 推進のヒントにしてみてください。

フォローする