1. 创建 Service Account 密钥
进入服务账号页面
打开 Google Cloud Console,在顶部选择目标项目,进入 IAM 和管理 → 服务账号,点击 创建服务账号,起一个名字(例如
asktable-readonly)。授予 BigQuery 权限
为服务账号授予以下两个角色,这是 AskTable 只读问数所需的最小权限:
如果只想开放个别 dataset,可以跳过项目级的 Data Viewer:在 BigQuery 控制台对目标 dataset 点击 共享 → 添加主账号,把 Data Viewer 授予该服务账号即可。Job User 仍需项目级授权。
| 角色 | 用途 |
|---|---|
BigQuery Data Viewer(roles/bigquery.dataViewer) | 读取表数据和元数据 |
BigQuery Job User(roles/bigquery.jobUser) | 提交查询作业 |
两种情况会导致无法创建密钥:BigQuery 沙箱项目(未启用结算)不支持服务账号密钥;部分企业组织策略(
iam.disableServiceAccountKeyCreation)禁用了密钥创建,遇到报错请联系你的 Google Cloud 管理员。2. 在 AskTable 中连接
在左侧主导航点击 【更多】,进入数据工作区后,点击侧边栏的 【数据源】,再点击右上角 【添加数据】。在大数据分类下选择 Google BigQuery,填写连接信息:| 字段 | 说明 |
|---|---|
| 数据名称 | 可选,留空将自动生成 |
| Service Account JSON | 粘贴密钥文件的完整内容,或点击 【上传 JSON 文件】 选择刚下载的 .json 文件自动填充 |
密钥在 AskTable 中加密存储,任何页面和接口都不会回显。后续如需更换密钥,在数据源详情页的连接配置中重新粘贴即可,留空表示保持不变。
常见问题
| 现象 | 原因与处理 |
|---|---|
| 提示凭证格式不正确 | 粘贴的内容不是完整的 JSON,或缺少 project_id / client_email / private_key 字段。请重新复制整个密钥文件的内容 |
| 连接测试报认证失败 | 密钥已被撤销或删除。在 Google Cloud 重新创建一个密钥 |
| 连接测试报权限不足 | 服务账号缺少 BigQuery Job User 角色,无法提交查询 |
| 选表页面看不到某个 dataset | 服务账号对该 dataset 没有 BigQuery Data Viewer 权限,按第 1 步为它补充授权 |
