
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: 接続
-
Auxia Console で Connections に移動し、Add New Connection → BigQuery をクリックします。
-
ウィザードに Auxia プロジェクト固有のサービスアカウントメールが表示されます。このメールをコピーしてください。アクセス権の付与に必要です。
-
GCP Project ID(例:
my-analytics-project)を入力します。 -
アクセスレベルを選択します。
アクセスレベル 説明 使用場面 プロジェクトレベル Auxia が GCP プロジェクト内の既存および新規のすべてのデータセットに接続可能 シンプルな設定。ほとんどのチームに推奨 データセットレベル Auxia が指定したデータセットのみに接続可能 接続するデータセットをきめ細かく制御したい場合 -
以下のいずれかの方法(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 を使用する場合:
プロジェクトレベルのアクセスの場合:
- Google Cloud Console にアクセスします。
- IAM & Admin → IAM に移動します。
- Grant Access(または上部の + Add)をクリックします。
- New principals フィールドに、Auxia Console からのサービスアカウントメールを貼り付けます。
- Select a role ドロップダウンで、BigQuery Data Viewer(
roles/bigquery.dataViewer)を検索して選択します。 - Save をクリックします。
データセットレベルのアクセスの場合:
- Google Cloud Console にアクセスします。
- BigQuery に移動します(左サイドバーまたは検索から)。
- Explorer パネルで、共有したいデータセットを見つけてクリックします。
- Sharing → Permissions をクリックします。
- Add Principal をクリックします。
- New principals フィールドに、Auxia Console からのサービスアカウントメールを貼り付けます。
- Select a role ドロップダウンで、BigQuery Data Viewer を検索して選択します。
- Save をクリックします。
- 追加のデータセットごとにステップ 3〜8 を繰り返します。
Google Cloud Shell によるアクセス権の付与
ローカルに gcloud がインストールされていない場合は、ブラウザから直接 Google Cloud Shell を使用できます。bq コマンドラインツールは Google Cloud SDK に同梱されているため、別途インストールする必要はありません。
- Google Cloud Shell を開きます。
- 正しいプロジェクトにいることを確認します:
gcloud config set project YOUR_PROJECT_ID - 上記の 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 をご参照ください。