关于 connecting-looker-to-bigquery
这项操作指南介绍如何为 Looker 创建并检查 Google BigQuery 连接,涵盖 ADC 配置、IAM 前置条件、连接参数和使用 Looker CLI 验证。
主要功能
- 01检查 Looker 服务账号的 IAM 角色
- 02为 BigQuery 配置 ADC
- 03创建连接配置 JSON 文件
- 04导入并验证 Looker 连接
适用场景
- 01为 Looker Core 实例准备 BigQuery 访问权限
- 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错误。
-
运行 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} -
如果检查因缺少角色而失败,请先获取 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}