使用bigquery表GET api获取表的最后修改日期

时间:2018-05-23 12:57:20

标签: python google-bigquery

我正在尝试使用bigquery REST API获取表及其last_modified_date列表 在bigquery API资源管理器中,我正确地获取了所有字段,但是当我使用Python代码中的api时,它会为修改日期返回“None”。
这是在python

中为此编写的代码
Response resp = Jsoup.connect(url).method(Method.HEAD).execute();
String length = resp.header("Content-Length");

在此代码中,我正确地创建了日期,但所有表的修改日期都为“无”。

2 个答案:

答案 0 :(得分:2)

不太确定您使用的是哪个版本的API,但我怀疑latest versions没有dataset.list_tables()方法。

尽管如此,这是获取最后修改字段的一种方法,看看这是否适合您(或者让您了解如何获取此数据):

from google.cloud import bigquery
client = bigquery.Client.from_service_account_json('/key.json')

dataset_list = list(client.list_datasets())
for dataset_item in dataset_list:
    dataset = client.get_dataset(dataset_item.reference)
    tables_list = list(client.list_tables(dataset))

    for table_item in tables_list:
        table = client.get_table(table_item.reference)
        print "Table {} last modified: {}".format(
            table.table_id, table.modified)

答案 1 :(得分:0)

如果只想从一张表中获取上次修改时间:

from google.cloud import bigquery
    
def get_last_bq_update(project, dataset, table_name):
    client = bigquery.Client.from_service_account_json('/key.json')
    table_id = f"{project}.{dataset}.{table_name}"
    table = client.get_table(table_id)
    print(table.modified)