Bigquery Java API - 获取表创建时间?

时间:2015-05-28 12:51:42

标签: java google-bigquery

有没有办法使用Bigquery Java Api获取表创建时间?目前我看到你只能获取datasetid,projectid和tableid。

我的用例:我有一个每天创建一个表的程序。有时这个程序每天运行一次以上。我想添加一个检查以查看该表是否已为此日期创建,如果是,则忽略重新创建它。由于其他各种原因,我无法将创建时间附加到tableid。

1 个答案:

答案 0 :(得分:2)

  1. 您可以使用API​​返回的creationTime字段。 Java library已经保留了getCreationTime();

  2. 的功能
  3. 您可以使用元查询:

  4. 运行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:表格的总大小(以字节为单位)。