bq query --destination_table でパーティションテーブルを扱う


bq query -- destination_table でパーティションテーブル使う時のメモ。

特に伝えたいことは前回同様パーティション日付の前の バックスペースを忘れない!
バックスペースを忘れない!!
バックスペースを忘れない!!

1. 新規のパーティションを指定する

bq query --destination_table=dataset.table\$20200401 "SELECT * FROM dataset.table_2 WHERE _PARTITIONTIME = TIMESTAMP('2020-01-01')"

2. 既存のパーティションに追加(append)する

bq query --append_table --destination_table=dataset.table\$20200401 "SELECT * FROM dataset.table_2 WHERE _PARTITIONTIME = TIMESTAMP('2020-01-01')"

オプションつけないで既存パーティション指定するとappendされる。

3. 既存のパーティションを上書き(write_truncate)する

bq query --replace --destination_table=dataset.table\$20200401 "SELECT * FROM dataset.table_2 WHERE _PARTITIONTIME = TIMESTAMP('2020-01-01')"

バックスペースなしで --replace つけると、他のパーティションも全部吹っ飛ぶ大事故に繋がるので気をつける。

参考

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