如何查看BigQuery表与数据集的历史元数据及表大小变化
BigQuery表历史变化信息查询方案
你说的需求完全可实现,常见的查询场景有两类,对应不同的实现方式:
存储大小、行数随时间变化查询
直接调用BigQuery内置的元数据视图即可,不需要额外做前置配置,默认可以查询最长180天的历史数据:
- 使用
INFORMATION_SCHEMA.PARTITIONS视图统计,示例SQL如下:
SELECT DATE(creation_time) AS 统计日期, SUM(total_rows) AS 表总行数, ROUND(SUM(size_bytes)/1024/1024/1024, 3) AS 表总存储大小_GB FROM `你的项目ID.你的数据集ID.INFORMATION_SCHEMA.PARTITIONS` WHERE table_name = '目标表名' GROUP BY 统计日期 ORDER BY 统计日期 DESC
- 注意:如果是分区表,视图会返回每个分区的单独数据,求和后就是全表的总指标;如果需要区分活跃存储、长期存储的大小,新增
storage_tier字段分组统计即可。
历史时间点的表内容查询
如果需要回溯某一个时间点的表具体数据,可以使用BigQuery自带的时间旅行功能,默认支持查询过去7天内的任意时间点数据,最长可自行配置为49天,示例语法:
SELECT * FROM `你的项目ID.你的数据集ID.目标表名` FOR SYSTEM_TIME AS OF TIMESTAMP("YYYY-MM-DD HH:MM:SS UTC")
如果需要存储超过180天的表历史变化数据,你可以自行开启BigQuery审计日志导出到持久化存储,定期从审计日志中提取表元数据做长期统计即可。
内容的提问来源于stack exchange,提问作者randomdatascientist
相关产品推荐
相关产品推荐

