Snowflake Connector for Google Analytics Raw Data のコネクタを OAuth 2.0 で認証する
データ事業本部のはんざわです。
Google BigQuery にエクスポートされた Google Analytics 4 のデータを Snowflake に転送したい場合、「Snowflake Connector for Google Analytics Raw Data」を使うことで簡単かつ低コストでデータの転送が実現できます。
このコネクタでは「サービスアカウント」と「OAuth 2.0」の2種類の認証方法が提供されていますが、今回のブログでは OAuth 2.0 を使った認証方法を紹介します。
Snowflake Connector for Google Analytics Raw Data とは?
「Snowflake Connector for Google Analytics Raw Data」は、GA4の集計前(Raw)のイベントデータを Snowflake に同期できるコネクタです。これにより、より詳細なデータ分析やカスタム集計が可能になります。
認証方法としては以下の2種類が用意されています。
- サービスアカウント認証
- OAuth 2.0 認証
サービスアカウントによる認証方法については、以下のブログ記事を参考にしてください。
今回は、OAuth 2.0 認証の設定手順を紹介します。
また、集計後のデータのみで十分な場合は、「Snowflake Connector for Google Analytics Aggregate Data」の利用も検討してください。
前提条件
-
GA4 の BigQuery エクスポート設定が完了していること
- BigQuery 上に
analytics_<プロパティ ID>
というデータセットが作成されている必要があります。 - GA4 から BigQuery へのエクスポート設定手順については本記事では割愛します。
- BigQuery 上に
-
Google Cloud プロジェクトで Cloud Resource Manager API が有効になっていること
-
GA4 データがエクスポートされている Google Cloud プロジェクトが組織に属しており、認証するユーザーも同じ組織のメンバーであることが望ましいです
- 今回の検証では、上記の両方の条件を満たしていることを前提としています。
- いずれかの条件を満たしていない場合は、外部ユーザー認証扱いとなり、認証の有効期限が7日間となります。そのため、毎週認証情報を更新する必要があります。
-
Snowflake のトライアルアカウント期間が終了していること
- コネクタの仕様上、トライアルアカウントでは利用できません。
- 有効な Snowflake アカウントを用意してください。
設定手順
全体の流れは、Snowflake
→ Google Cloud
→ Snowflake
の順で設定を進めていきます。
1. Snowflake の設定 1
まずは以下の公式ドキュメントを参考に、Snowflake 側の設定を行います。
1.1. コネクタのインストール
- ACCOUNTADMIN ロールに変更
コネクタをインストールするには、ACCOUNTADMIN
のロールが必要です。
- Marketplace からコネクタを検索・インストール
Snowflake のコンソール画面から Data Products
→ Marketplace
に移動します。
Snowflake Connector for Google Analytics Raw Data
と検索して選択し、Get
をクリックします。
- ウェアハウスとアプリケーション名の入力
アプリケーションのインストール時に使用するウェアハウスとアプリケーション名を入力し、Get
をクリックします。
1.2. リダイレクト URL の確認
インストールが完了したら、Snowflake コンソールの Data Products
→ Apps
から、インストールしたコネクタを選択します。
表示された画面の赤枠部分にリダイレクト URL があるので、コピーしておきます。
これで一旦、Snowflake 側の設定は完了です。
続いて、Google Cloud 側の設定に進みます。
2. Google Cloud の設定
以下の公式ドキュメントを参考に進めます。
2.1. OAuth 同意画面の設定
Google Cloud コンソールで APIとサービス
-> OAuth 同意画面
へ移動します。
「開始」をクリックして設定を進めます。
- アプリ情報の入力
- アプリ名
Snowflake Connector for Google Analytics Raw Data
- 任意の名前で OK
- ユーザーサポートメール
- ご自身のメールアドレス
- ユーザーの種類の選択
「内部」を選択してください。
※「外部」を選択した場合、認証情報の有効期限が7日間となり、毎週更新が必要になります。
- 連絡先情報の入力と同意
メールアドレスを入力し、同意のチェックボックスをオンにして「続行」を選択します。
- スコープの追加
データアクセス
→ スコープを追加または削除
をクリックします。
「スコープの手動追加」に以下のテキストを入力し、「テーブルに追加」をクリックします。
https://www.googleapis.com/auth/bigquery.readonly
https://www.googleapis.com/auth/cloudplatformprojects.readonly
2つのスコープ両方にチェックが入っていることを確認し、「更新」をクリックします。
これで OAuth 同意画面の設定は完了です。
2.2. OAuth クライアント ID の設定
Google Cloud のコンソールから APIとサービス
→ 認証情報
へ移動します。
以下のキャプチャのように 認証情報を作成
→ OAuth クライアント ID
を選択します。
- OAuth クライアント ID の作成
-
アプリケーションの種類
- ウェブアプリケーション
-
名前
Snowflake Connector for Google Analytics Raw Data ID
- 任意の名前で OK
-
承認済みのリダイレクト URL
- 「1.2. リダイレクト URL の確認」でコピーした URL を入力
- クライアント ID とクライアントシークレットの確認
作成後に表示されるクライアントIDとクライアントシークレットは、後ほど Snowflake 側で使用します。
これで Google Cloud の設定は完了です。
3. Snowflake の設定 2
再び Snowflake 側に戻って設定を進めます。
コネクタの構成
- 「Mark as done」をクリック
Google Cloud 側の設定が完了したら、Snowflake のコネクタ画面で「Mark as done」をクリックします。
- コネクタのリソース設定
コネクタで使用するリソース(ウェアハウス等)の設定を行います。今回は全てデフォルトのリソースを利用します。
※ 同期用のウェアハウスは、コネクタインストール時に指定したものとは別のウェアハウスを使用してください。
- コネクタの認証設定
認証方式で「OAuth2」を選択し、「2.2. OAuth クライアント ID の設定」で取得したクライアント ID とクライアントシークレットを入力します。
- Google アカウントで認証
入力後、Google アカウントで認証を求められるので許可します。
しばらくすると、認証成功の通知が表示されます。これで認証は完了です。
データの同期
- 同期対象プロジェクトの選択
同期する Google Cloud プロジェクトを選択し、「Start sync」をクリックします。
- 同期の確認
すぐに同期が始まり、しばらくすると同期が完了します。
- データの確認
宛先のスキーマを確認すると、以下のようにデータが正常に格納されていました。
認証方法の比較
冒頭で説明したとおり、このコネクタには「サービスアカウント認証」と「OAuth 認証」の2種類の認証方法があります。
それぞれの認証方法について、私見を以下の表にまとめました。
(あくまで個人的な見解です)
概要 | 利用する時の懸念点 | |
---|---|---|
サービスアカウント認証 | GA4 のデータセットにアクセスできるサービスアカウントのキーを用いてデータを同期する。 | サービスアカウントキーの発行・管理はあまり推奨されておらず、組織ポリシーで禁止されている場合もある。利用時はキーの漏洩検知やアクセス制御など、厳重な管理が必要。 |
OAuth 認証 | GA4 のデータセットにアクセスできるGoogleユーザーの同意に基づき発行された認証情報でデータを同期する。 | 特定のGoogleユーザーに紐づくため、そのユーザーが異動・退職した場合などに再認証が必要となる。また、ユーザーの権限変更にも注意が必要。 |
どちらの認証方法が適しているかは、組織の運用方針やセキュリティポリシーによって異なります。
自社の状況に合わせて、最適な認証方法を選択してください。
本ブログが参考になれば幸いです。