LoginSignup
7
5

More than 3 years have passed since last update.

スプレッドシートをBigQueryのテーブルとして取り込む

Last updated at Posted at 2019-06-21

背景

定期的に変わるマスタデータをBigQueryで扱う場合、BigQueryにデータを取り込んでしまうと洗い替えが必要になる。
マスタデータを変更する際にはスプレッドシートで作業し、そのままデータをBigQueryで扱いたい。

方法

スプレッドシートをBigQueryの外部テーブルとしてBigQuery上に定義できる。
BigQueryでテーブルをクエリする際に、スプレッドシートを見に行く動きとなる。

サンプルデータ

スプレッドシートに文字、数値、日付の値を入れる。
ヘッダ部を英字で書いておくと、自動的にカラム名としてくれるので便利。
この例で試したところ、2行目に英字で書いておくとカラム名になった。1行目と2行目を逆にするとエラーだった。
スクリーンショット 2019-06-21 16.44.47.png

テーブル作成

BigQueryのテーブル作成画面で、ソースをドライブにするとスプレッドシートのURIを指定できるようになる。
以下のように、スプレッドシートのfile_idまでを残して貼り付ける。
https://docs.google.com/spreadsheets/d/1OPvJyOVGuWyBGarRq4Nfww9GrRpr0iCTpSl2jZcXwC7/edit#gid=0

https://docs.google.com/spreadsheets/d/1OPvJyOVGuWyBGarRq4Nfww9GrRpr0iCTpSl2jZcXwC7

今回の例では1シートのみなので、シートの指定や範囲は指定しない。
スキーマは自動検出にチェックを入れる。これでカラム名と型を自動でセットしてもらえる。
ヘッダは2行あるので、スキップするヘッダー行は2で設定する。

スクリーンショット 2019-06-21 16.49.59.png

作成したテーブル

フィールド名がスプレッドシート2行目で指定したものになっている。
型も自動検出できている。
日付型のところは説明に日付フォーマットを付けてくれた。
スクリーンショット 2019-06-21 16.56.12.png
データも検索できた。
スクリーンショット 2019-06-21 16.56.56.png

注意点

型に合わないデータをスプレッドシートで入力すると、BigQueryでクエリする際にエラーとなる。
不正なデータが入らないようにするには、スプレッドシート側で工夫が必要。

7
5
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
5