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

时间:2016-02-19 10:14:40

标签: google-bigquery

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

有时,获取某一组数据的最后更新时间是有用的(即检查摄取过程的正确性)。如何获得这样组织的一组表的最后更新时间?

1 个答案:

答案 0 :(得分:2)

实现这一目标的一个好方法是使用__TABLES__元表。这是我在几个项目中使用的通用查询:

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

它将返回my_dataset中每个表的上次更新时间。对于使用每日拆分结构组织的表,它将返回单个值(最新表的更新时间),其名称的初始部分为TABLE_ID