「テーブルを別のデータセットに移動したい」
仕様変更などで後からテーブルのデータセットを変えたいときありますよね.
しかしBigQueryにはデータセットを変更できるクエリはありません.
クエリはないものの画面から簡単にデータセットを変更できます.
今回はBigQueryでデータセットを変更する方法を紹介します.
データセットは変更できない!?
BigQueryではテーブルのデータセットを変えるクエリは用意されていません.
既存のデータセットの名前の変更や、データセットの作成後にデータセットを移動することはできません。
データセットを管理する|BigQueryドキュメント
公式リファレンスにもあるように、別のデータセットに移すことはできないんですね.
ドラッグ&ドロップとかでできると思っていました.
データセットは移せませんが変更する方法があります.
それはテーブルのコピーをすることです.
データセット名を変更する代替手段として、データセットをコピーして、宛先データセットの名前を変更します。
データセットのコピー|BigQueryドキュメント
コピーするときにデータセットを書き換えると、データセットの変更ができます.
実際にやってみましょう!
コピーしてデータセットを変更する
サンプルテーブルを用意しました.
「20231212_training_menu」テーブルのデータセットは「test」です.
データセットを「test」から「sample」に変更します.
テーブル名の横にあるコピーをクリックします.
サイドバーが出てくるのでデータセットを「sample」に書き換えます.
テーブル名の _copy が不要な場合は削除しておきましょう.
問題なければこれでコピーを押します.
データセット「sample」に「20231212_training_menu」テーブルが作られました.
簡単にデータセットを変更できましたね.
コピーなのでカラムや中身のデータは元テーブルと一緒です.
唯一変わる点は作成日時でしょう.
ほとんどの場合作成日時は変わっても問題ないと思います.
データセット「test」にある「20231212_training_menuテーブル」を削除すればデータセットの移動が完了します.
コピーするとき元テーブルと同じ名前でも問題ない理由とはデータセットが違うからです.
データセットが違うと別テーブルとして扱われます.
後からrenameクエリを使わなくても良いので楽ですね.
まとめ
今回はBigQueryでデータセットを変更する方法を紹介しました.
画面からコピーするだけで簡単にデータセットを変更できました.
データセットを変えるクエリがあるのか調べましたが、どうやらないようですね.
ありなので無いと知ったときはびっくりしました.
データセットを後から変えることは起こり得ます.
コピーしてデータセットを変更する方法を覚えておきましょう!