2017-10-09 37 views
0

我剛剛通過鏈接Google雲端存儲中可用的JSON文件創建了一個BigQuery表。但我沒有看到任何選項可以自動重新加載表格行,並在Google雲端存儲文件夾或存儲區中添加新文件。BigQuery:如何使用新的存儲JSON文件自動重新載入表格?

目前,我必須去BigQuery控制檯,然後刪除&重新創建相同的表來加載新文件。但是這個解決方案對我們來說不是可擴展的,因爲我們在BigQuery API上運行cron作業。如何在BigQuery中自動重新加載數據?

感謝

回答

4

當你在谷歌雲存儲文件的頂部定義外部表 - 您可以使用通配符的源位置,所以你的表將代表匹配

那之後的所有文件,當您查詢等表 - 您可以使用_file_name字段,會「告訴」你定的行從

SELECT 
    _file_name AS file, 
    * 
FROM `yourTable` 

這樣來的文件 - 每當你在GCS添加新的文件 - 你會得到它在表中「自動」

+1

尼斯解決方案米哈伊爾。 OP應該記住,使用聯合源將導致性能下降,而不是實現本地表。另一個選擇是編寫一個小云功能來觸發新文件到達存儲桶。雲功能可以將BQ加載作業啓動到本地表或數據流管道。 –

+0

你是對的,因爲OP提到「鏈接」,我認爲他已經在使用聯邦表,但只是不知道如何處理新表。但這可能是我錯誤的假設。是的,雲功能「鏈接」到存儲桶等是如果新文件需要實際加載的簡單方法 - 完全同意:o) –

+0

這也正是我的設想。只是想向OP指出還有其他(整潔!)選項可用;-) –