6
3

More than 1 year has passed since last update.

BigQuery | bq load コマンドでpartitioned table を作成する

Last updated at Posted at 2017-05-25

パーティションテーブルを作成する

$ bq mk --time_partitioning_type=DAY dataset.table

適当なログファイルを用意

forload.log
alice
bob
carol

BigQueryにロードする

$ bq load dataset.table forload.log name:string

確認

ロードすると内部的に「今日の日付」が記録される。
これをWHERE句で絞り込むことが出来る。

#LegacySQL
SELECT
  *
FROM
  [dataset.table]
WHERE
  _PARTITIONTIME = TIMESTAMP("2017-05-25")

image.png

日付を指定してロードする

パーティション形式のテーブル名を指定して、そのままロードすれば良い。

$ bq dataset.table\$20170101 forload.log name:string

注意

ドル記号をバックスラッシュ ( \ ) でエスケープするのを忘れないこと!
これを忘れると、サイレントに「現在の時刻」でパーティションされてしまう。(シェルの特殊記号なので)

こんな風に、空の変数として扱われてしまう。

echo $20170101

パーティションの確認

以下のクエリでパーティション情報を確認できる。

#LegacySQL
SELECT
  *
FROM
  [dataset.table$__PARTITIONS_SUMMARY__]

image.png

参考

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

6
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
6
3