2017-06-30 9 views
2

Bigqueryテーブルで、私はデータを持っています。私はテーブルのフィールドの1つのデータ型を変更/アップグレードしたい。Bigqueryのテーブルのフィールドのデータ型を変更しますか?

現在のテーブル構造: 名:文字列、FlatNumber:整数、住所:文字列、金額:整数

必要な更新されたテーブル構造: 名:文字列、FlatNumber:文字列、住所:文字列、金額:フロート

注:私は、テーブル内のデータを持っています

答えて

4

データを変換して新しいテーブルに書き込む必要があります。それを元に戻すことができます。たとえば、次のクエリを実行します。

#standardSQL 
SELECT 
    Name, 
    CAST(FlatNumber AS STRING) AS FlatNumber, 
    Address, 
    CAST(Amount AS FLOAT64) AS Amount 
FROM YourTable; 

bq cpを使用してテーブルをコピーし、元のテーブルを上書きします。これは、コストの権利を含み

#standardSQL 
SELECT * EXCEPT(FlatNumber, Amount), 
    CAST(FlatNumber AS STRING) AS FlatNumber, 
    CAST(Amount AS FLOAT64) AS Amount 
FROM YourTable; 
+0

:あなたはより多くの列を持っている場合は、それらのすべてをリスト避けるためにEXCEPTまたはREPLACESELECT *を使用することができますか?私はALTER TABLEのようなSQl DDLを探していました。table_name ADD column_nameデータ型。 Bigqueryで – aravindderajan

+0

はい、これにはコストがかかります。もう1つのオプションは、私が提供したクエリを使用して元のテーブルに論理ビューを作成し、代わりにそのクエリを照会することです。 'INT64'から' STRING'または 'INT64'を' FLOAT64'に変更することはできません。 –

+0

あなたの答えをありがとう。ビューを作成しても、10進数の列のデータを取得していたので、私の要件は満たされません。基礎となるテーブルに整数型のデータ型がある場合は浮動小数点として表示されますが、それは役に立ちません。唯一の解決策は、テーブルを再作成してデータをコピーすることです。 – aravindderajan

関連する問題