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

如何检索BigQuery项目中2022年新建的所有VIEWS?

解决BigQuery中查找2022年新建视图的问题

别担心,我有两个靠谱的办法帮你找到目标视图——毕竟INFORMATION_SCHEMA.VIEWS确实没有creation_time字段,但我们可以从其他元数据或日志维度入手:

方法1:利用INFORMATION_SCHEMA.TABLES(最简单直接)

在BigQuery的元数据体系里,视图会被归类到TABLES视图中,而且这里的creation_time字段对视图同样生效!你只需要筛选出表类型为VIEW的记录,再精准限定创建时间在2022年的范围即可。

这里不推荐用LIKE匹配时间字符串(creation_time是TIMESTAMP类型,范围匹配更准确且性能更好),示例查询如下:

SELECT
  table_catalog AS project_id,
  table_schema AS dataset_id,
  table_name AS view_name,
  creation_time,
  last_modified_time
FROM
  myProject.`region-us`.INFORMATION_SCHEMA.TABLES
WHERE
  table_type = 'VIEW'
  AND creation_time BETWEEN TIMESTAMP('2022-01-01 00:00:00') AND TIMESTAMP('2022-12-31 23:59:59')
ORDER BY
  creation_time DESC;

这个查询会返回所有2022年创建的视图,还附带最后修改时间,方便你做进一步筛选。

方法2:通过审计日志精准追踪(适合需要详细上下文的场景)

如果你的BigQuery项目开启了Data Access Audit Logs,可以直接查询审计日志获取所有CREATE VIEW操作的完整记录——不仅能拿到创建时间,还能看到创建者、执行的SQL语句等细节。

日志默认存储在项目的_bq_logs数据集里,示例查询如下:

SELECT
  timestamp AS creation_timestamp,
  protopayload_auditlog.authenticationInfo.principalEmail AS creator,
  protopayload_auditlog.serviceData.jobCompletedEvent.job.jobConfiguration.query.query AS create_view_sql,
  protopayload_auditlog.resourceName AS view_resource_path
FROM
  myProject.`region-us`._bq_logs.cloudaudit_googleapis_com_data_access
WHERE
  timestamp BETWEEN TIMESTAMP('2022-01-01') AND TIMESTAMP('2023-01-01')
  AND protopayload_auditlog.methodName = 'google.cloud.bigquery.v2.JobService.InsertJob'
  AND protopayload_auditlog.serviceData.jobCompletedEvent.job.jobConfiguration.query.query LIKE '%CREATE VIEW%'
ORDER BY
  timestamp DESC;

注意:如果你的项目未开启审计日志,这个方法就无法使用,此时优先选择方法1。

内容的提问来源于stack exchange,提问作者Matson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:40:18