🖥
BigQuery | bq load コマンドでpartitioned table を作成する
パーティションテーブルを作成する
$ 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")
日付を指定してロードする
パーティション形式のテーブル名を指定して、そのままロードすれば良い。
$ bq dataset.table\$20170101 forload.log name:string
注意
ドル記号をバックスラッシュ ( \
) でエスケープするのを忘れないこと!
これを忘れると、サイレントに「現在の時刻」でパーティションされてしまう。(シェルの特殊記号なので)
こんな風に、空の変数として扱われてしまう。
echo $20170101
パーティションの確認
以下のクエリでパーティション情報を確認できる。
#LegacySQL
SELECT
*
FROM
[dataset.table$__PARTITIONS_SUMMARY__]
参考
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2017-05-25
Discussion