👩‍👩‍👧‍👧

GCP BigQuery テーブルのスキーマ変更 ~カラムの型~

2020/09/25に公開

Hey!
BigQueryで扱っているテーブルで、カラムの型を変更したい時ってありますよね。
小数点も扱わないといけなくなったから、INTEGERからFLOATに変えたい、みたいな・・・。

調べてもぱっとそれっぽい簡単な記事がなかったのですが、Google Cloudのドキュメントにちゃんと書いてあったので、それを簡単に説明します。

https://cloud.google.com/bigquery/docs/manually-changing-schemas?hl=ja
まあここ見ればわかります。

  1. クエリを書く!
select id, CAST(height AS FLOAT64) AS height, FROM `hoge.mysql_dump.users`;

こんな感じですね。 CAST をしましょう。 AS も忘れずに。
ええ、SELECT文 でいいんですよ。 MODIFY とかじゃない。

  1. 魔改造設定をする

    ここの クエリの設定 をクリック

送信先クエリ結果の宛先テーブルを設定する
プロジェクト名 データセット名 テーブル名 はあなたの環境に合わせて設定。
宛先テーブルの書き込み設定テーブルを上書きする
そして下のボタンで保存しましょう。
他の設定はそのままで良いかと。 結果サイズ とかはよしなに。

  1. クエリを実行する
    そうするとなんと、CASTしたカラムの型に合わせて、スキーマの型も変わります!
    出、出〜〜〜っっwww直感的じゃない奴〜〜www

自分はAWSから転送とかしてるんですけど、カラムの定義の順番とかも同様にしないとエラーが起きるので、その点も気をつけましょう。selectするカラムの順番でスキーマが再定義されるので。

移譲!!

Discussion