BigQuery最佳做法是在日常表中拆分时间序列(如“NAME_yyyyMMdd”),然后使用表通配符查询这些表中的一个或多个。
有时,获取某一组数据的最后更新时间是有用的(即检查摄取过程的正确性)。如何获得这样组织的一组表的最后更新时间?
答案 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
。