有没有办法使用Bigquery Java Api获取表创建时间?目前我看到你只能获取datasetid,projectid和tableid。
我的用例:我有一个每天创建一个表的程序。有时这个程序每天运行一次以上。我想添加一个检查以查看该表是否已为此日期创建,如果是,则忽略重新创建它。由于其他各种原因,我无法将创建时间附加到tableid。
答案 0 :(得分:2)
您可以使用API返回的creationTime字段。 Java library已经保留了getCreationTime();
您可以使用元查询:
运行SELECT * FROM <dataset>.__TABLES_SUMMARY__
以获取有关表的所有元信息。
该查询的__TABLES__
部分可能看起来不熟悉。 __TABLES_SUMMARY__
是一个元表,包含有关数据集中表的信息。您可以自己使用此元表。例如,查询SELECT * FROM publicdata:samples.__TABLES_SUMMARY__
将返回有关publicdata:samples
数据集中表格的元数据。
可用字段:
__TABLES_SUMMARY__
元表的字段(TABLE_QUERY
查询中都可用)包括:
table_id
:表格的名称。creation_time
:表格创建后的时间,自1970年1月1日UTC以来的毫秒数。这与表中的creation_time
字段相同。type
:无论是视图(2)还是常规表(1)。 TABLE_QUERY()
中的以下字段不,因为它们是__TABLES__
的成员,但不是__TABLES_SUMMARY__
的成员。他们留在这里是为了历史,并部分记录__TABLES__
metatable:
last_modified_time
:自1970年1月1日UTC以来的毫秒,表格已更新(元数据或表格内容)。请注意,如果您使用tabledata.insertAll()
将记录流式传输到您的表格,则可能会过时几分钟。row_count
:表格中的行数。size_bytes
:表格的总大小(以字节为单位)。