如何获取 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';
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';