> ## Documentation Index
> Fetch the complete documentation index at: https://docs.asktable.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 连接 Google BigQuery

> 在 Google Cloud 中创建 Service Account 密钥，并在 AskTable 中连接 BigQuery 数据源。

AskTable 通过 Service Account（服务账号）密钥连接 Google BigQuery。整个过程分两步：先在 Google Cloud 创建一个具备只读权限的服务账号并下载 JSON 密钥，再把密钥粘贴进 AskTable。

## 1. 创建 Service Account 密钥

<Steps>
  <Step title="进入服务账号页面">
    打开 [Google Cloud Console](https://console.cloud.google.com)，在顶部选择目标项目，进入 **IAM 和管理 → 服务账号**，点击 **创建服务账号**，起一个名字（例如 `asktable-readonly`）。
  </Step>

  <Step title="授予 BigQuery 权限">
    为服务账号授予以下两个角色，这是 AskTable 只读问数所需的最小权限：

    | 角色                                                    | 用途        |
    | ----------------------------------------------------- | --------- |
    | **BigQuery Data Viewer**（`roles/bigquery.dataViewer`） | 读取表数据和元数据 |
    | **BigQuery Job User**（`roles/bigquery.jobUser`）       | 提交查询作业    |

    如果只想开放个别 dataset，可以跳过项目级的 Data Viewer：在 BigQuery 控制台对目标 dataset 点击 **共享 → 添加主账号**，把 Data Viewer 授予该服务账号即可。Job User 仍需项目级授权。
  </Step>

  <Step title="创建 JSON 密钥">
    进入刚创建的服务账号，切到 **密钥** 标签，点击 **添加密钥 → 创建新密钥**，类型选择 **JSON**。浏览器会自动下载一个 `.json` 密钥文件——它就是下一步要用的全部凭证。
  </Step>
</Steps>

<Note>
  两种情况会导致无法创建密钥：BigQuery 沙箱项目（未启用结算）不支持服务账号密钥；部分企业组织策略（`iam.disableServiceAccountKeyCreation`）禁用了密钥创建，遇到报错请联系你的 Google Cloud 管理员。
</Note>

## 2. 在 AskTable 中连接

在左侧主导航点击 **【更多】**，进入数据工作区后，点击侧边栏的 **【数据源】**，再点击右上角 **【添加数据】**。在**大数据**分类下选择 **Google BigQuery**，填写连接信息：

| 字段                       | 说明                                                     |
| ------------------------ | ------------------------------------------------------ |
| **数据名称**                 | 可选，留空将自动生成                                             |
| **Service Account JSON** | 粘贴密钥文件的完整内容，或点击 **【上传 JSON 文件】** 选择刚下载的 `.json` 文件自动填充 |

不需要填写主机、端口或项目 ID——AskTable 会从密钥中自动识别 GCP 项目。

点击 **【立即添加】**，系统会自动测试连接。连接成功后进入选表页面，勾选需要引入的数据表（BigQuery 的 dataset 对应这里的 schema 层级）。

<Note>
  密钥在 AskTable 中加密存储，任何页面和接口都不会回显。后续如需更换密钥，在数据源详情页的连接配置中重新粘贴即可，留空表示保持不变。
</Note>

## 常见问题

| 现象                | 原因与处理                                                                               |
| ----------------- | ----------------------------------------------------------------------------------- |
| 提示凭证格式不正确         | 粘贴的内容不是完整的 JSON，或缺少 `project_id` / `client_email` / `private_key` 字段。请重新复制整个密钥文件的内容 |
| 连接测试报认证失败         | 密钥已被撤销或删除。在 Google Cloud 重新创建一个密钥                                                   |
| 连接测试报权限不足         | 服务账号缺少 **BigQuery Job User** 角色，无法提交查询                                              |
| 选表页面看不到某个 dataset | 服务账号对该 dataset 没有 **BigQuery Data Viewer** 权限，按第 1 步为它补充授权                          |

## 后续步骤

* [管理数据](/concepts/data/manage) — 查看和管理已连接的数据源
* [表、字段备注](/concepts/data/annotations) — 添加表和字段的业务描述，提升 AI 理解准确度
