如何获取查询BigQuery的Google Sheets文件URL?
定位查询BigQuery的Google Sheets URL的方法
1. 检查BigQuery审计日志
BigQuery的审计日志会记录所有访问、查询操作的完整元数据,其中包含发起请求的Google Sheets完整URL。你可以通过以下方式获取:
- 先将审计日志导出到指定的BigQuery数据集
- 用
bq命令行工具或BigQuery UI查询日志表,过滤protoPayload.serviceName="bigquery.googleapis.com"且protoPayload.resourceName包含jobs的记录。其中protoPayload.metadata.jobConfiguration.load.sourceUris(导入操作场景)或protoPayload.metadata.jobConfiguration.query.query(Sheets作为外部数据源查询场景)字段会直接返回Sheets的URL,protoPayload.requestAttributes.auth.principalEmail还能关联到Sheets的创建者。
2. 查询INFORMATION_SCHEMA外部表元数据
如果Google Sheets是作为外部表连接到BigQuery的,可通过INFORMATION_SCHEMA.EXTERNAL_TABLES视图直接提取Sheets URL:
SELECT table_catalog, table_schema, table_name, external_data_configuration ->> '$.sourceUris[0]' AS sheets_url FROM `你的项目ID.你的数据集ID.INFORMATION_SCHEMA.EXTERNAL_TABLES` WHERE external_data_configuration ->> '$.sourceFormat' = 'GOOGLE_SHEETS'
执行该查询后,会返回当前数据集下所有关联Google Sheets外部表的完整URL。
3. 查看BigQuery作业历史
在BigQuery UI的作业页面,筛选由Google Sheets发起的查询/加载作业,点击作业详情进入配置标签页,在查询语句或加载配置区域,会显示对应的Sheets来源URL。不管是通过Sheets内置的QUERY函数还是数据连接发起的请求,这里都会记录来源文件的地址。
注意事项
- 只有当请求是通过BigQuery正式作业(如加载数据、查询外部表)发起时,才会记录完整的Sheets URL;如果是第三方工具间接调用,需要检查工具自身的日志。
- 操作前确保你拥有足够权限:访问审计日志需要
roles/logging.viewer,查询INFORMATION_SCHEMA需要roles/bigquery.dataViewer或更高权限。
内容的提问来源于stack exchange,提问作者Joseph Jeremiah Noonan
相关产品推荐
相关产品推荐

