【问题标题】:Bigquery Java API - get table creation time?Bigquery Java API - 获取表创建时间?
【发布时间】:2015-05-28 12:51:42
【问题描述】:

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

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

【问题讨论】:

    标签: java google-bigquery


    【解决方案1】:
    1. 您可以使用 API 返回的 creationTime 字段。 Java library 已经拥有getCreationTime() 的功能;

    2. 您可以为此使用元查询:

    运行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__ 元表,将它们保留在这里:

    • last_modified_time:自 1970 年 1 月 1 日 UTC 以来的时间,以毫秒为单位,表已更新(元数据或表内容)。请注意,如果您使用 tabledata.insertAll() 将记录流式传输到您的表,这可能会过时几分钟。
    • row_count:表中的行数。
    • size_bytes:表的总大小(以字节为单位)。

    【讨论】:

    猜你喜欢
    • 2015-10-27
    • 1970-01-01
    • 2018-05-29
    • 2017-08-12
    • 1970-01-01
    • 2018-11-25
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多