日本語版はAIによる翻訳です。正確な情報については英語版をご参照ください。 英語版を表示
メインコンテンツまでスキップ

Google BigQuery

Google BigQuery 経由でのデータ接続の設定

概要

Auxia の統合は、GCP の IAM アクセス制御を活用して、きめ細かいユーザーターゲティング、特徴量作成、モデルトレーニング、パフォーマンス測定のために関連するテーブルを接続します。

ビューではなくテーブルを共有することを推奨します。テーブルへの直接アクセスにより、効率的な増分更新とコスト削減が可能になりますが、ビューではデータの再処理が必要になることが多いためです。

先に進む前に、ソースデータ要件を確認して、テーブルが Auxia との接続に適した状態であることをご確認ください。


BigQuery 接続の設定

Auxia Console は、接続 → 探索 → マッピングの3ステップで BigQuery データを接続するためのガイド付きウィザードを提供します。

前提条件

  • 接続エディター権限を持つ Auxia Console へのアクセス

  • 接続したい BigQuery データセットを持つ GCP プロジェクト

  • GCP プロジェクトで IAM ロールを付与する権限。必要な権限は、選択するアクセスレベルによって異なります。

    アクセスレベルコマンド必要な権限一般的なロール
    プロジェクトレベルgcloud projects add-iam-policy-bindingresourcemanager.projects.setIamPolicyroles/resourcemanager.projectIamAdmin
    データセットレベルbq query 'GRANT ... ON SCHEMA'bigquery.datasets.setIamPolicyroles/bigquery.dataOwner または roles/bigquery.admin

ステップ 1: 接続

  1. Auxia Console で Connections に移動し、Add New ConnectionBigQuery をクリックします。

  2. ウィザードに Auxia プロジェクト固有のサービスアカウントメールが表示されます。このメールをコピーしてください。アクセス権の付与に必要です。

  3. GCP Project ID(例: my-analytics-project)を入力します。

  4. アクセスレベルを選択します。

    アクセスレベル説明使用場面
    プロジェクトレベルAuxia が GCP プロジェクト内の既存および新規のすべてのデータセットに接続可能シンプルな設定。ほとんどのチームに推奨
    データセットレベルAuxia が指定したデータセットのみに接続可能接続するデータセットをきめ細かく制御したい場合
  5. 以下のいずれかの方法(CLI、GCP Console、Cloud Shell)で IAM 権限を付与し、Auxia Console に戻って Validate Connection をクリックします。

注記

IAM 伝播に関する注意: IAM の変更が反映されるまで 1〜5分かかる場合があります。権限付与直後にバリデーションが失敗した場合は、数分待ってから再試行してください。

CLI(gcloud / bq)によるアクセス権の付与

プロジェクトレベルのアクセス — サービスアカウントにプロジェクト内のすべての BigQuery データへの読み取りアクセスを付与します。

gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
--member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
--role="roles/bigquery.dataViewer" \
--condition=None

以下を置き換えてください。

  • YOUR_PROJECT_ID を GCP プロジェクト ID(例: my-analytics-project)に
  • SERVICE_ACCOUNT_EMAIL を Auxia Console に表示されているサービスアカウントに

データセットレベルのアクセス — サービスアカウントに特定のデータセットのみへの読み取りアクセスを付与します。データセットごとに1回実行してください。

bq query --use_legacy_sql=false '
GRANT `roles/bigquery.dataViewer`
ON SCHEMA `YOUR_PROJECT_ID.YOUR_DATASET_NAME`
TO "serviceAccount:SERVICE_ACCOUNT_EMAIL";
'

以下を置き換えてください。

  • YOUR_PROJECT_ID を GCP プロジェクト ID に
  • YOUR_DATASET_NAME をデータセット ID(例: customer_360)に
  • SERVICE_ACCOUNT_EMAIL を Auxia Console に表示されているサービスアカウントに
ヒント

Auxia Console はプロジェクト ID とサービスアカウントが事前入力されたコマンドを自動生成します。ウィザードから直接コピーできます。

GCP Console(BigQuery UI)によるアクセス権の付与

CLI の代わりに GCP Console UI を使用する場合:

プロジェクトレベルのアクセスの場合:

  1. Google Cloud Console にアクセスします。
  2. IAM & AdminIAM に移動します。
  3. Grant Access(または上部の + Add)をクリックします。
  4. New principals フィールドに、Auxia Console からのサービスアカウントメールを貼り付けます。
  5. Select a role ドロップダウンで、BigQuery Data Viewerroles/bigquery.dataViewer)を検索して選択します。
  6. Save をクリックします。

データセットレベルのアクセスの場合:

  1. Google Cloud Console にアクセスします。
  2. BigQuery に移動します(左サイドバーまたは検索から)。
  3. Explorer パネルで、共有したいデータセットを見つけてクリックします。
  4. SharingPermissions をクリックします。
  5. Add Principal をクリックします。
  6. New principals フィールドに、Auxia Console からのサービスアカウントメールを貼り付けます。
  7. Select a role ドロップダウンで、BigQuery Data Viewer を検索して選択します。
  8. Save をクリックします。
  9. 追加のデータセットごとにステップ 3〜8 を繰り返します。

Google Cloud Shell によるアクセス権の付与

ローカルに gcloud がインストールされていない場合は、ブラウザから直接 Google Cloud Shell を使用できます。bq コマンドラインツールは Google Cloud SDK に同梱されているため、別途インストールする必要はありません。

  1. Google Cloud Shell を開きます。
  2. 正しいプロジェクトにいることを確認します: gcloud config set project YOUR_PROJECT_ID
  3. 上記の CLI セクションと同じ gcloud または bq コマンドを実行します。

ステップ 2: 探索とマッピング

接続が検証されると、ウィザードはデータセットの探索とスキーママッピングに進みます。これらのステップはすべてのデータコネクタで共通です。

データセットの探索とスキーママッピングの完全なガイドについては、はじめにをご参照ください。


トラブルシューティングと FAQ

アクセスと権限

Q: アクセス権を付与しましたが、バリデーションが失敗し続けます。 A: GCP では IAM の変更が反映されるまで 1〜5分かかる場合があります。数分待ってから Validate Connection を再度クリックしてください。5分経っても失敗する場合:

  • サービスアカウントメールが正しいことを確認してください(Auxia Console から直接コピーしてください)。
  • BigQuery Data Viewer ロール(BigQuery User や BigQuery Admin ではなく)を付与したことを確認してください。
  • データセットレベルのアクセスの場合、各データセットに個別にアクセス権を付与したことを確認してください。

Q: IAM バインディングが正しく適用されたかを確認するにはどうすればよいですか? A: 以下のコマンドを実行して、プロジェクトのすべての IAM バインディングを一覧表示します。

gcloud projects get-iam-policy YOUR_PROJECT_ID \
--flatten="bindings[].members" \
--filter="bindings.members:serviceAccount:SERVICE_ACCOUNT_EMAIL" \
--format="table(bindings.role)"

出力に roles/bigquery.dataViewer が表示されるはずです。データセットレベルのアクセスの場合:

bq show --format=prettyjson YOUR_PROJECT_ID:YOUR_DATASET_NAME | grep -A5 "access"

Q: IAM ロールを付与する権限がありません。どうすればよいですか? A: プロジェクトレベルのアクセスには、Project IAM Admin ロール(roles/resourcemanager.projectIamAdmin)が必要です。データセットレベルのアクセスには、対象データセットの roles/bigquery.dataOwner または roles/bigquery.admin が必要です。プロジェクトレベルの権限がない場合でも、roles/bigquery.admin を使用してデータセットごとにアクセス権を付与できます。または、GCP 管理者に連絡して以下を依頼してください。

  • 必要なロールを付与してもらう、または
  • gcloud / bq コマンドを代わりに実行してもらう(Auxia Console ウィザードからコマンドを共有してください)。

一般

Q: データは BigQuery からコピーされますか? A: はい。Auxia は BigQuery テーブルからデータを読み取り、モデルトレーニングと特徴量作成のために Auxia のインフラストラクチャにコピーします。アクティビティデータの保持期間は短くなっています。マッピングステップで、含めるテーブルとカラムを選択的に選べるため、明示的にマッピングしたデータのみがコピーされます。

テーブルのバリデーション、スキーママッピング、取り込みに関するトラブルシューティングについては、はじめに FAQ をご参照ください。