背景:由于业务原因,BigQuery的表每天都会被更新,所以想将过去一段时间的数据备份一下。
为了方便调查,最好是以日期为后缀。
本来想通过GAS来实现,没想到BQ有自己的方法,我把方法整理一下,做个笔记。
1.写SQL文
例:SELECT * FROM `project1.dataset1.table1`
2.点击菜单栏的「Schedule」
3.在右侧会弹出「New schedule query」,按照个人需求,填写。
有几个注意点:
①「Repeat frequency」的时间栏是UTC时间,注意和所在时区进行变换。
②「Destination for query results」的TableId是可以设定动态值的,有两个供参考:
{run_date}
{run_time}
这两个也是基于UTC时间的。{run_date}是一个字符串,{run_time}是timestamp,
可以进行格式上的变换,比如{run_time-24h|"%Y%m%d"}
按照我的需求,这里可以将tableid设定为table1_{run_time+9h|"%Y%m%d"}
刚才说到默认是UTC时间,所以我额外加了9个小时,转换成JST。
4.最后点击「save」,就会启动这个job。
在指定的日期会生成一个table1_日期的表。