You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何恢复BigQuery已删除外部表及查看其创建删除日志

解决BigQuery外部表删除后的日志查看与恢复问题

为什么INFORMATION_SCHEMA.TABLE_STORAGE_TIMELINE找不到外部表记录

TABLE_STORAGE_TIMELINE仅追踪占用BigQuery托管存储的内部表,外部表本质是指向外部数据源(如Google Sheets)的元数据,不占用BigQuery存储,因此不会出现在该视图中。


查看外部表的创建/删除日志

唯一可靠的方式是通过**Cloud Logging(审计日志)**查询,步骤如下:

  1. 打开Google Cloud控制台的「Logging > Logs Explorer」
  2. 输入以下日志过滤语句(替换括号内的参数):
    resource.type="bigquery_table"
    (protoPayload.methodName="google.cloud.bigquery.v2.TableService.DeleteTable"
     OR protoPayload.methodName="google.cloud.bigquery.v2.TableService.CreateTable")
    protoPayload.resourceName:"projects/[你的项目ID]/datasets/[目标数据集ID]/tables/[表名关键词]"
    
  3. 执行查询后,你可以找到:
    • 删除操作的时间、执行者信息
    • 创建操作记录中包含的原Google Sheet链接(在protoPayload.serviceData.createTableRequest.table.externalDataConfiguration.sourceUris字段)

恢复删除的外部表

外部表本身不存储数据(数据在Google Sheets中),只需重新创建指向原Sheet的外部表即可,步骤:

  1. 获取原Sheet链接:如果忘记链接,从上述审计日志的创建记录中提取sourceUris字段值
  2. 确认权限:确保BigQuery服务账号(格式:service-[项目编号]@gcp-sa-bigquery.iam.gserviceaccount.com)拥有该Google Sheet的访问权限(至少「查看者」权限)
  3. 重新创建外部表:
    • 进入目标BigQuery数据集,点击「创建表」
    • 「来源」选择「Google Sheets」,粘贴Sheet链接,按需配置表头、数据范围(如Sheet1!A1:Z)
    • 「模式」可选择「自动检测」(从Sheet读取字段类型),或手动输入原表的字段结构
    • 输入原表名称,点击「创建」

内容的提问来源于stack exchange,提问作者장우현

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:40:59