2015-11-20 71 views
1

我試圖想出一個編程的方式來從已經存在的表生成一個新的BigQuery資料表。我知道如何做到這一點使用bq命令行工具使用的BigQuery API或BQ命令行工具來創建新表

BQ --project_id = 'myProject的' MK --view =創建一個新的視圖 「SELECT * FROM [MYDATASET.database]」 myProject.newTable

但是,創建一個視圖,並沒有幫助我,我需要創建一個表一堆理由。

我會很樂意創建一個視圖,然後能夠週期性地產生從該視圖中創建新表,但我無法弄清楚如何做到這一點沒有做手工雖然BigQuery的Web界面。

我很感激任何幫助。

布拉德

回答

3

如果它是一個正常的表(不是視圖),可以使用copy命令:

bq cp <source> <destination> 

如果你想兌現一個視圖,或者如果你需要修改該表的過程中的內容(例如,添加/刪除/轉換字段),你可以運行的目標表的查詢:

bq query \ 
    --destination_table=<destination> \ 
    --allow_large_results \ 
    --noflatten_results \ 
    'SELECT ... FROM <source>' 

查詢選項是更強大,但你會得到充電用於運行查詢。該副本是免費的。

+0

當我嘗試使用BQ CP 是一個觀點,我得到的錯誤 「使用表數據集:dataBase.tablename是不允許的,因爲它的類型本 操作嘗試使用不同的。表的類型爲 TABLE。「 我想其他的選項,但是查詢是複雜的,需要相當長一段時間來處理。如果源表是一個視圖 –

+0

BQ CP將無法正常工作。所以你需要使用查詢版本。 –

相關問題