2017-02-23 47 views
0

我在BigQuery數據集中有一個表格,並試圖找出表格最後一次通過BigQuery客戶端API進行修改的時間。使用BigQuery客戶端API提取有關表格的元數據

我曾嘗試(在Python)

from gcloud import bigquery 
client = bigquery.Client(project="my_project") 
dataset = client.dataset("my_dataset") 
tables = dataset.list_tables() 
table = tables[0][5] # Extract the table that I want 

我可以確認我已經運行了print(table.name)右表,但我不知道如何獲得表的元數據。特別是,我想知道如何找出表最後修改的時間。 (我比其他編程語言更熟悉它)我不介意如果答案是Python或Javascript(我想我將不得不在後者中實施)。

回答

1

在引擎蓋下,tables = dataset.list_tables()正在向Tables.list發出API請求。此請求的結果不包含所有表格元信息 - 例如上次修改。

Tables.get這種類型的表信息需要API請求。爲了提出這個請求,你需要在桌面上調用reload()。例如:

bigquery_service = bigquery.Client() 
dataset = bigquery_service.dataset("<your-dataset>") 
tables = dataset.list_tables() 
for table in tables: 
    table.reload() 
    print(table.modified) 

在我的測試/數據集,這個打印:

2016-12-30 08:57:15.679000+00:00 
2016-12-18 23:57:24.570000+00:00 
2016-12-19 05:18:28.371000+00:00 

詳情請參閱here(Github上)和here(Python文檔)。

+0

This_almost_ works。唯一的區別是'dataset.list_tables()'返回一個元組(至少對我來說),其中的第一個參數是表的列表。因此我使用的修改是'tables = dataset.list_tables()[0]' –

+0

一個元組?你使用的是什麼版本.. –

+0

我使用Python v2.7.13和gcloud v0.18.3 –

相關問題