はじめに
こんにちは、京セラコミュニケーションシステム 川村(@kccs_takahiro-kawamura)です。
みなさんはBigQueryを利用していますか?
私はIoTデータを収集するプラットフォームを構築しているのですが、データの保管場所としてBigQueryを採用することが多いです。
今回は、私がBigQueryを運用している経験から面倒に思ったBigQueryのデータ型の変更について、その手順と注意点を記載いたします。
本記事は2024年8月ごろに作成しております。よって、引用している文章などはこの時点での最新となります。ご了承ください。
本記事の対象者
- BigQueryを利用している方
データ型の変更について
残念ながら、データ型の変更はGoogle Cloudコンソールからスキーマの編集操作で行うことができません。
また、データ型には互換性があるものとないものがあり、その有無で手順が異なります。
互換性のあるデータ型変更
互換性がある場合は簡単です。ALTER文を実行するだけで変更できます。
ALTER TABLE [IF EXISTS] table_name
ALTER COLUMN [IF EXISTS] column_name SET DATA TYPE column_schema
互換性があるデータ型の変更は以下のとおりです。
- INT64から、NUMERIC/BIGNUMERIC/FLOAT64への変更
- NUMERICから、BIGNUMERIC/FLOAT64への変更
より詳細な情報は公式ドキュメントをご確認ください。
互換性がないデータ型変更
互換性がない場合はテーブルを再作成する必要があります。
すでに利用中のテーブルの場合、データが蓄積していますのでコピーを作成し、再作成したテーブルにリストアする必要があります。
リストアする際に、データ型を変更したカラムはCASTする必要があります。
まとめると、互換性がないデータ型の変更手順は以下のとおりです。
SELECT column1, CAST(column2 AS STRING) as column2, column3 FROM example_table_copy [WHERE パーティションの条件]
まとめ
- 互換性があるデータ型変更は、ALTER文を実行することで変更できる
- 互換性がないデータ型変更は、テーブルの再作成が必要になる
次回の記事もお楽しみに!
おしらせ
弊社X(旧:Twitter)では、Qiita投稿に関する情報や各種セミナー情報をお届けしております。情報収集や学びの場を求める皆さん!ぜひフォローしていただき、最新情報を手に入れてください😄