如何获取 BigQuery 中一系列表的最后更新时间?

How do I get the last update time of a sequence of tables in BigQuery?

BigQuery 的最佳做法是在日表中拆分时间序列(如 "NAME_yyyyMMdd"),然后使用 Table 通配符查询其中一个或多个表。

有时获取特定数据集的最后更新时间很有用(即检查摄取过程的正确性)。如何获取一组这样组织的表格的最后更新时间?

实现这一点的一个好方法是使用 __TABLES__ meta-table。这是我在几个项目中使用的通用查询:

SELECT
  MAX(last_modified_time) LAST_MODIFIED_TIME,
  IF(REGEXP_MATCH(RIGHT(table_id,8),"[0-9]{8}"),LEFT(table_id,LENGTH(table_id) - 8),table_id) AS TABLE_ID
FROM
  [my_dataset.__TABLES__]
GROUP BY
  TABLE_ID

它将return在my_dataset中每个table的最后更新时间。对于按日拆分结构组织的tables,它将return一个值(最新table的更新时间),其名称的初始部分为TABLE_ID.

SELECT * 来自 project_name.data_set_name.INFORMATION_SCHEMA.PARTITIONS table_name='my_table';

Solution for Google