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

在BigQuery中合并查询获取指定表元数据字段的方法咨询

解决方法

要拿到table_schema、table_name、creation_time和last_modified_time这四个字段,你可以通过关联多个INFORMATION_SCHEMA视图来实现——单个视图确实没法覆盖所有需求:

核心方案:关联TABLES和TABLE_STORAGE视图

INFORMATION_SCHEMA.TABLES能提供table_schema、table_name和表的creation_time,但缺last_modified_time;而INFORMATION_SCHEMA.TABLE_STORAGE正好包含表的last_modified_time,且可以通过table_schema和table_name与TABLES关联:

SELECT
  t.table_schema,
  t.table_name,
  t.creation_time,
  ts.last_modified_time
FROM
  `region`.INFORMATION_SCHEMA.TABLES t
INNER JOIN
  `region`.INFORMATION_SCHEMA.TABLE_STORAGE ts
ON
  t.table_schema = ts.table_schema
  AND t.table_name = ts.table_name
-- 可选:过滤掉视图,只保留物理表
WHERE t.table_type = 'BASE TABLE'

如果需要的是Schema的创建时间而非表的

如果你要的creation_time是Schema(即数据库)的创建时间,而非表的,那就再关联INFORMATION_SCHEMA.SCHEMATA视图:

SELECT
  s.schema_name AS table_schema,
  t.table_name,
  s.creation_time,
  ts.last_modified_time
FROM
  `region`.INFORMATION_SCHEMA.SCHEMATA s
INNER JOIN
  `region`.INFORMATION_SCHEMA.TABLES t
ON s.schema_name = t.table_schema
INNER JOIN
  `region`.INFORMATION_SCHEMA.TABLE_STORAGE ts
ON
  t.table_schema = ts.table_schema
  AND t.table_name = ts.table_name
WHERE t.table_type = 'BASE TABLE'

其他备选方式

如果SQL查询的方式受限,也可以用BigQuery的客户端SDK(比如Python、Java)调用元数据API,批量获取表的完整元数据——API返回的表对象会直接包含所有你需要的字段,不过这种方式需要写代码实现,适合批量处理的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 14:54:24