2017-02-24 61 views
1

我們正在手動將數據存儲表(即種類)(作爲雲存儲中的備份)加載到Big Query中。在加載到Big Query之前是否有任何方法來轉換(重命名等)數據存儲列。它似乎支持E(提取)和L(加載)功能,但不支持在Big Query中加載數據存儲類型備份時的T(轉換)。 問題在於我們將column-key作爲數據存儲區中的主要字段,因此當類加載到Big Query中時,我們會看到具有名稱「_key__.id」的列。 我們希望這個列加載名稱'id'而不是'_key__.id'。所以只是想知道,有什麼方法可以重新命名大查詢中的列?
及時的幫助是高度讚賞。如何重命名Big Query中的列?

+1

[Update Big Query Table Schema]的可能重複(http://stackoverflow.com/questions/42395612/update-big-query-table-schema) –

回答

1

通過SQL查詢方式支持ETL的「T」部分。您可以直接使用查詢數據存儲備份作爲外部表(https://cloud.google.com/bigquery/external-data-sources)或首先加載到臨時表中,然後運行SQL對其進行轉換。 在標準SQL重命名將類似於以下內容:

SELECT * EXCEPT(oldname1, oldname2), oldname1 as newname1, oldname2 as newname2 FROM ... 

但是既然你提到的名字用點分隔:_key__.id它可能是嵌套場_key__存在類型的記錄,所以SQL看起來像

SELECT * EXCEPT(_key__), _key__.id AS id FROM ... 
+0

感謝Mosha。你的答案有幫助。但看起來,我們需要做更多的PoC,因爲我們無法在這種用例上找到好的編程示例。我們需要以編程方式對超過20-30個表進行Datastore備份的提取(E),在BIG查詢中轉換(T),然後加載(L)。不確定,如果所有這些都可以在沒有任何人工干預的情況下由API支持。雖然我欣賞你的指示。 –