connecting-looker-to-bigquery について
Looker から Google BigQuery への接続を作成・確認する手順をまとめたスキルです。ADC、IAM の前提条件、接続設定、Looker CLI による検証を扱います。
主な機能
- 01Looker サービスアカウントの IAM ロール確認
- 02BigQuery 用 ADC の設定
- 03接続設定 JSON ファイルの作成
- 04Looker 接続の登録と検証
活用シーン
- 01Looker Core インスタンスの BigQuery アクセス準備
- 02Looker でのデータセット接続の登録と確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ looker-open-source/ looker-skills --skill connecting-looker-to-bigqueryインストール後、Claude Code で/connecting-looker-to-bigqueryを入力して読み込まれたか確認します。
詳細
BigQuery を Looker に接続する
Looker に Google BigQuery へのデータベース接続を作成します。この手順では **Application Default Credentials(ADC)**を使用します。これは Google Cloud で実行される Looker Core インスタンスに推奨される、最も安全な方法です。サービスアカウントキーを管理する必要がありません。
前提条件
- Looker CLI がインストールされ、認証されていること(
installing-looker-cliおよびauthenticating-looker-cliスキルを参照してください)。 - Looker Core インスタンスのサービスアカウントに、BigQuery プロジェクトで必要な IAM ロールが付与されていること。
手順
1. GCP プロジェクトとデータセットを特定する
手順 1(調査)で、次のパラメーターを特定します。
- GCP プロジェクト ID:BigQuery データセットを含む GCP プロジェクト(ハイフンを使用できます)。
- データセット ID:探索する BigQuery データセット(英数字とアンダースコアのみ使用でき、ハイフンは使用できません)。
2. 事前確認:Looker サービスアカウントの IAM ロール
Looker Core サービスアカウントに、対象の GCP プロジェクトで必要な IAM ロール(BigQuery Data Viewer、BigQuery Job User、および Service Usage Consumer)が付与されていることを確認します。
重要
Looker インスタンスから BigQuery 接続を介してクエリを実行する場合、Google Cloud では、BigQuery の課金対象となるプロジェクト内でリソースを計算・使用する権限を Looker サービスアカウントに付与する必要があります。
serviceusage.services.useを含むroles/serviceusage.serviceUsageConsumerロールがないと、Looker は BigQuery に対して認証したり、クエリジョブを送信したりできず、400 Bad Requestエラーが発生します。
-
Looker の GCP プロジェクト ID(Looker Core インスタンスが存在するプロジェクト)と BigQuery の GCP プロジェクト ID を渡して、IAM の事前確認スクリプトを実行します。
./skills/onboarding-preflight-check/scripts/preflight_check.sh \ --mode iam \ --looker-project {looker_gcp_project_id} \ --bq-project {bigquery_gcp_project_id} -
ロールが不足しているために確認に失敗した場合は、まず Looker の GCP プロジェクト番号を取得するか、事前確認のエラー出力に表示された正確なサービスアカウントのメールアドレスをコピーします。
project_number=$(gcloud projects describe {looker_gcp_project_id} --format="value(projectNumber)")次に、以下のコマンドを実行して、必要なロールを Looker サービスアカウントに付与します。
gcloud projects add-iam-policy-binding {bigquery_gcp_project_id} \ --member="serviceAccount:service-${project_number}@gcp-sa-looker.iam.gserviceaccount.com" \ --role="roles/bigquery.dataViewer" gcloud projects add-iam-policy-binding {bigquery_gcp_project_id} \ --member="serviceAccount:service-${project_number}@gcp-sa-looker.iam.gserviceaccount.com" \ --role="roles/bigquery.jobUser" gcloud projects add-iam-policy-binding {bigquery_gcp_project_id} \ --member="serviceAccount:service-${project_number}@gcp-sa-looker.iam.gserviceaccount.com" \ --role="roles/serviceusage.serviceUsageConsumer"
3. 接続ペイロードファイルを作成する
複雑な引数による CLI の解析エラーを避けるため、接続仕様をワークスペース内の ./connection_config.json に直接記述します。
重要
BigQuery JDBC ドライバーの場合:-
hostには GCP プロジェクト ID(ハイフンを使用できます)を設定する必要があります。-databaseとschemaの両方には データセット ID(英数字とアンダースコアのみ使用可能)を設定する必要があります。databaseにハイフンを含むプロジェクト ID を設定すると、クエリの実行に直ちに失敗します。
{
"name": "{connection_name}",
"dialect_name": "bigquery_standard_sql",
"uses_application_default_credentials": true,
"host": "{gcp_project_id}",
"database": "{dataset_name}",
"schema": "{dataset_name}"
}
4. Looker に接続を登録する
ペイロードファイルを指定して、接続インポート CLI コマンドを実行します。
looker-cli connection import ./connection_config.json
5. 接続を確認する
接続が正しく作成されたことを確認するため、接続の詳細を取得します。
looker-cli connection cat {connection_name}