実行した日から去年のデータをエクスポートしたかった。年単位で実行したかったので、こういう感じで設定するといけた。
1st monday of january 09:00
叩くクエリは下記。
DECLARE run_date DATE; DECLARE last_year INT64; DECLARE start_date DATE; DECLARE end_date DATE; DECLARE file_name STRING; SET run_date = CURRENT_DATE(); SET last_year = EXTRACT(YEAR FROM DATE_SUB(run_date, INTERVAL 1 YEAR)); -- 去年の1/1から12/31の日付を取得. SET (start_date, end_date) = (DATE(last_year, 1, 1), DATE(last_year, 12, 31)); -- エクスポートするbucket名とファイル名の指定 -- 1GB以上の場合は複数ファイルで出力するのでワイルドカードの指定が必要 -- https://cloud.google.com/bigquery/docs/exporting-data?hl=ja#exporting_data_into_one_or_more_files SET file_name = CONCAT('gs://bucket_name/', last_year, '/', last_year, '-*.csv'); EXPORT DATA OPTIONS( uri=(file_name), format='CSV', compression='GZIP', overwrite=true, header=true, field_delimiter=',') AS SELECT * FROM `database_name.table_name` WHERE visited_date BETWEEN start_date AND end_date;