BigQueryテーブルにinteger
タイプの列があり、それをfloat
列に変換する必要があります。また、すべての記録を保持する必要があります。私がやりたいのは列タイプの変更です。キャストしていません。
テーブルに対するクエリの結果をそれ自体にエクスポートするだけでそれを行うことが可能であることを読みました。
どうやるか?
SELECTを使用して結果をテーブルに書き戻す
SELECT
CAST(int_field AS FLOAT) AS float_field,
<all_other_fields>
FROM YourTable
このアプローチでは、テーブル全体をスキャンできます
これを実行するには、BQ Web UIのShow Optionボタンを使用する必要があります以下の例のようにオプションを適切に設定します。これを実行すると、テーブルには、必要に応じてfloatと元の整数データ型の列が作成されます。注:int_fieldとfloat_fieldの両方に適切な/同じフィールド名を使用する必要があります
新しい列を追加する必要がある場合は、 表:パッチGBQ API を指定します。
このAPIで列のタイプを変更できるかどうかはわかりませんが、疑わしいですが、簡単に確認できます。
ジョブ:挿入 EXTRACTを使用してからLOADを使用する
ここでは、テーブルをGCSに抽出し、調整されたスキーマを使用してGBQにロードし直すことができます。
上記のアプローチは、a)テーブルのクエリ(スキャン)のコストコストを排除し、b)複雑なスキーマ(レコード/繰り返し/ネストなどのタイプ/モード)がある場合に発生する可能性のある制限に役立ちます。