mcpField
C
connecting-looker-to-bigquery

connecting-looker-to-bigquery

github.com/looker-open-sourceデータ・データベース43100 回インストール2 週間前に更新
リポジトリ

connecting-looker-to-bigquery について

Looker から Google BigQuery への接続を作成・確認する手順をまとめたスキルです。ADC、IAM の前提条件、接続設定、Looker CLI による検証を扱います。

主な機能

  1. 01Looker サービスアカウントの IAM ロール確認
  2. 02BigQuery 用 ADC の設定
  3. 03接続設定 JSON ファイルの作成
  4. 04Looker 接続の登録と検証

活用シーン

  1. 01Looker Core インスタンスの BigQuery アクセス準備
  2. 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 エラーが発生します。

  1. 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}
    
  2. ロールが不足しているために確認に失敗した場合は、まず 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}

コメント