LoginSignup
7
3

More than 1 year has passed since last update.

既にデータの入っているBigQueryのスキーマを書き換える方法

Last updated at Posted at 2019-04-08

BigQueryのスキーマを変更したい場合に、bq mk でテーブルを新規作成して元のテーブルから全データ再投入するしかないと思っているBiqQuery初心者1向けの記事。

BigQueryのスキーマは条件つきで後から変更できる

BigQueryでは、既に入っているデータを消すことなくスキーマの変更ができます。ただし、変更内容には次のような制約があります。

  • NULLABLE モードの新たな列を追加する (追加した列の値は全てNULLになる)
  • 既存の列のモードを REQUIRED から NULLABLE にする

この条件に当てはまらない変更をしたい場合は頑張る必要があります2

詳細は公式の文書に書いてあります。

BigQueryのスキーマを後から変更する手順

まず現在のスキーマをJSON形式で取得します。

$ bq show --schema --format=prettyjson [GCPプロジェクト名]:[データセット名].[テーブル名] > schema.json

このJSONファイルを編集してスキーマを書き換えます。列の追加はファイル末尾でなくとも好きな場所に追加することができます。

ファイル編集後にスキーマ変更を反映します。

$ bq update [GCPプロジェクト名]:[データセット名].[テーブル名] schema.json
Table '[GCPプロジェクト名]:[データセット名].[テーブル名]' successfully updated.

これで完成です。あとはデータを投入しましょう。

  1. 数ヶ月前の自分がそうでした…

  2. テーブル スキーマの手動変更  |  BigQuery  |  Google Cloud

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3