BigQueryにbqコマンドでテーブル作成・スキーマ変更する

はじめに

BigQueryにbqコマンドでテーブル作成・データ投入・スキーマ変更する。

ネストされたデータも扱いたいので、今回はjsonファイルを読み込むようにする

CSVは現段階でネストされたデータのimportをサポートされていない

CSV ファイルはネストされたデータや繰り返しデータに対応していません。

https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-csv

ちょうどいいサンプルデータ( https://gist.github.com/isdyy/5072792 )を置いてくださる方がいたので、それを拝借。

準備

https://gist.github.com/isdyy/5072792

にあるように2つのデータを用意する。1つはスキーマ。もう1つはデータ

  • スキーマ

     
  • データ

テーブルのみ作成

ブラウザ上で以下の通り作成されている

また、bq showコマンドでスキーマを確認できる

データの投入

無事投入された。適切にネストもされている。

テーブル作成+データ投入

スキーマ作成と同時に、データの投入も可能

もちろん結果は同じ

データのみをつかって、テーブルを自動作成

 --autodetect オプションを使う。

スキーマを変更する

nested01.fields.jsonを以下の通り変更

スキーマが追加。

今まで投入されていたデータに追加されたカラムはnullが入る。

新しいスキーマに、旧データを投入

(スキーマは変更したが、投入するデータは以前と同じ)

エラーにはならず、単純に新しいスキーマにはnullが入る

新スキーマに沿ったデータを投入

投入された

Facebook Comments