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. 01检查 Looker 服务账号的 IAM 角色
  2. 02为 BigQuery 配置 ADC
  3. 03创建连接配置 JSON 文件
  4. 04导入并验证 Looker 连接

适用场景

  1. 01为 Looker Core 实例准备 BigQuery 访问权限
  2. 02在 Looker 中注册并验证数据集连接

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/looker-open-source/looker-skills --skill connecting-looker-to-bigquery

安装后在 Claude Code 中输入/connecting-looker-to-bigquery确认已加载。

详细介绍

将 Looker 连接到 BigQuery

在 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 要求 Looker 服务账号拥有在 BigQuery 计费项目中计算和使用资源的权限。如果没有 roles/serviceusage.serviceUsageConsumer 角色(该角色包含 serviceusage.services.use 权限),Looker 将无法进行身份验证,也无法向 BigQuery 分发查询作业,从而导致 400 Bad Request 错误。

  1. 运行 IAM 预检脚本,并传入 Looker GCP 项目 ID (Looker Core 实例所在的项目)和 BigQuery GCP 项目 ID:

    ./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}

评论

支持 Markdown