有一种方法可以使用在此处list-partition编写的旧式SQL __PARTITIONS_SUMMARY__
来获取bigquery表中分区的最后修改的时间戳信息,
SELECT
project_id, dataset_id, table_id, partition_id, TIMESTAMP(creation_time/1000) AS creation_time
FROM [PROJECT_ID:DATASET_ID.TABLE_ID$__PARTITIONS_SUMMARY__]
但是有什么方法可以使用标准sql获得相同的信息吗?
试图在biquery客户端库或bigquery表文档中查看有关分区上次修改时间的文档,但均未找到。
答案 0 :(得分:0)
有两种方法可以获取所需信息
__TABLES__
元表 __TABLES__
元表保存有关数据集中所有表的元数据。并且包含last_modified_time
,因此您可以确定上次更改表的时间。
#standardSQL
SELECT *
FROM `bigquery-public-data.sec_quarterly_financials.__TABLES__`
+----------------------+--------------------------+---------------+---------------+--------------------+-----------+-------------+------+
| project_id | dataset_id | table_id | creation_time | last_modified_time | row_count | size_bytes | type |
+----------------------+--------------------------+---------------+---------------+--------------------+-----------+-------------+------+
| bigquery-public-data | sec_quarterly_financials | calculation | 1506951904786 | 1549897716323 | 12962167 | 1947409375 | 1 |
| bigquery-public-data | sec_quarterly_financials | dimension | 1506951963976 | 1549897966591 | 9375745 | 1347314982 | 1 |
| bigquery-public-data | sec_quarterly_financials | measure_tag | 1506952136026 | 1549898363265 | 18828446 | 3981179622 | 1 |
| bigquery-public-data | sec_quarterly_financials | numbers | 1506952752355 | 1549901192304 | 154567677 | 32759645886 | 1 |
| bigquery-public-data | sec_quarterly_financials | presentation | 1506952317542 | 1549900563489 | 108014012 | 15931119512 | 1 |
| bigquery-public-data | sec_quarterly_financials | quick_summary | 1507817754713 | 1557588404913 | 68980952 | 13692158813 | 1 |
| bigquery-public-data | sec_quarterly_financials | rendering | 1506952854835 | 1549898767985 | 10089112 | 2395006363 | 1 |
| bigquery-public-data | sec_quarterly_financials | sic_codes | 1556128864207 | 1556128895225 | 444 | 20242 | 1 |
| bigquery-public-data | sec_quarterly_financials | submission | 1506953160779 | 1549897880524 | 209050 | 64383798 | 1 |
| bigquery-public-data | sec_quarterly_financials | txt | 1506953237777 | 1549898391758 | 14254950 | 11635805575 | 1 |
+----------------------+--------------------------+---------------+---------------+--------------------+-----------+-------------+------+
在标准SQL中,您可以使用_PARTITIONTIME pseudocolumn检查表上的日期分区。
#standardSQL
SELECT MAX(_PARTITIONTIME) AS pt
FROM `bigquery-public-data.sec_quarterly_financials.numbers`
+-------------------------+
| pt |
+-------------------------+
| 2018-03-31 00:00:00 UTC |
+-------------------------+