最近業務でBigquery上にあるテーブルから余分な列データとかを削除したいな~と思ったのですが、ブラウザの管理画面からのGUI操作では削除できそうで削除できないようみたいで、どうやらSQLのCREATE文でテーブルを作り直さないといけないらしく、次はスムーズにできるようにクエリをメモしておきます。
既存テーブルから特定フィールド(カラム)を削除する
Bigquery上の既存テーブルから特定の列削除は以下のクエリで行えます
CREATE OR REPLACE TABLE `bigquery.worktable` AS SELECT * EXCEPT(except_column) FROM ` bigquery.worktable`
変更したいテーブルを CREATE OR REPLACE TABLE にて指定し、除外するフィールド名を EXCEPT にて指定します。ここではフィールド「except_column」を除外し、テーブルを同名で作り変えています。
もし既存のテーブルを残したい場合は、 CREATE OR REPLACE TABLE~の部分で存在しない新しいテーブル名を指定してあげればよいです。
テーブルの型(スキーマ)を変換して上書きする
Bigquery上の既存テーブルから特定の列削除は以下のクエリで行えます
CREATE OR REPLACE TABLE `bigquery.worktable` AS SELECT * EXCEPT(except_column) ,CAST(except_column AS BIGNUMERIC) FROM ` bigquery.worktable`
STRINGとかARRAYなどBQ上でスキーマとして使えるデータ型の一覧については↓の公式ドキュメントを参照してください。
参照:変換関数 | BigQuery | Google Cloud
木田 和廣 インプレス 2021年02月19日頃
コメント
[…] 関連記事:【BigQuery】既存テーブルの特定の列データを削除・型変換して上書きする方法 […]