2017-02-24 14 views
1

Datastoreテーブル(クラウドストレージ内のバックアップと見なされる)をBig Queryに手動で読み込み中です。 Big Queryにロードされる前にデータストアの列を変換(名前変更など)する方法はありますか。 Big Queryでデータストアの種類のバックアップを読み込むと、E(抽出)とL(読み込み)の機能はサポートされていますが、T(変換)はサポートされていないようです。 問題は、データストアの種類にcolumn-keyをプライマリフィールドとして持つため、種類がBig Queryにロードされたときにname- "_key__.id"という列が表示されることです。 この列に、「_key__.id」ではなく「id」という名前をロードする必要がありました。だからちょうど不思議なことに、Big Queryで列の名前を変更する方法はありますか?
タイムリーなご支援をいただきありがとうございます。Big Queryの列の名前を変更する方法は?

+1

[Update Big Query Table Schema]の複製があります(http://stackoverflow.com/questions/42395612/update-big-query-table-schema) –

答えて

1

ETLの「T」部分はSQL照会によってサポートされています。外部テーブル(https://cloud.google.com/bigquery/external-data-sources)としてクエリデータストアのバックアップを直接使用するか、一時テーブルに最初にロードしてからSQLを実行して変換します。標準SQLに名前変更 は次のようになります。

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

をしかし、あなたは、ドットで区切られた名前を言及するので:_key__.idそれはおそらく型RECORDの_key__された状態で、ネストされたフィールドであり、そのSQLは

SELECT * EXCEPT(_key__), _key__.id AS id FROM ... 
のようになります。
+0

Moshaに感謝します。あなたの答えが役立ちます。しかし、そのようなユースケースで良いプログラミング例が見つからないので、PoCをもっと必要としているようです。 BIGクエリでは、20〜30以上のテーブルのデータストアバックアップの抽出(E)、変換(T)、ロード(L)をプログラムで実行する必要があります。このすべてがAPIによってサポートされる可能性があるかどうかは、手動の介入なしにはわかりません。私はあなたの指示に感謝します。 –

関連する問題