BigQuery定时查询@run_time参数异常?手动回填时间不符
这不是BigQuery的BUG,是变量的预期行为
你配置的定时查询SQL使用了@run_time变量,它的取值逻辑是:
- 当查询自动按预设的1小时间隔调度运行时,
@run_time会被赋值为你设定的整点时刻,这符合你的预期。 - 但当你执行手动回填操作时,
@run_time会被设置为你实际触发回填操作的具体时间(也就是你看到的带:43的非整点时刻),而非你想要回填的历史整点时段。
如果希望手动回填时也能得到整点的run_time,可以这样处理:
- 改用
@scheduled_run_time变量替换@run_time,这个变量会始终返回调度计划中定义的该次运行的目标时间——不管是自动运行还是手动回填历史时段,它都会是你预期的整点时刻。修改后的SQL如下:
select current_timestamp() as utc_time, @scheduled_run_time as run_time
- 或者手动计算整点时间:使用
TIMESTAMP_TRUNC函数将时间截断到小时级别,比如TIMESTAMP_TRUNC(@run_time, HOUR),不过这种方式在手动触发时只能得到触发时间的整点,无法对应回填的历史时段,因此更推荐第一种方法。
内容的提问来源于stack exchange,提问作者Vibhor Jain
相关产品推荐
相关产品推荐

