如何确定Snowflake Task实际运行所使用的仓库?
定位Task实际运行仓库的方法
- 方法1:查询任务本身的绑定配置
直接执行任务描述语句,查看任务预设的运行仓库:
返回结果中的DESCRIBE TASK MY_TASK;warehouse字段即为该任务默认绑定的运行仓库。 - 方法2:从运行历史中查询实际使用的仓库
调整你原来的任务历史查询语句,直接拉取每次运行对应的仓库记录:
返回结果中SELECT NAME, WAREHOUSE_NAME, SCHEDULED_TIME, STATUS, ERROR_MESSAGE FROM TABLE(information_schema.task_history()) WHERE NAME = 'MY_TASK' ORDER BY scheduled_time DESC;WAREHOUSE_NAME列就是对应每次任务运行实际使用的仓库,可直接匹配报错的运行记录查看对应值。
调整后仍报错的常见原因及修复
Snowflake的超时参数优先级从高到低为:会话级 > 任务/用户等对象级 > 仓库级 > 账户级,就算仓库配置正确,也可能是更高优先级的参数限制了超时时间:
- 先确认任务本身是否配置了单独的超时参数:
若查询到SHOW PARAMETERS IN TASK MY_TASK;STATEMENT_TIMEOUT_IN_SECONDS值为3600,可直接修改任务级超时参数:ALTER TASK MY_TASK SET STATEMENT_TIMEOUT_IN_SECONDS = 18000; - 若确认任务绑定仓库确实不是
MY_WAREHOUSE,修改对应仓库的超时参数即可:ALTER WAREHOUSE "你查询到的实际仓库名称" SET STATEMENT_TIMEOUT_IN_SECONDS = 18000;
内容的提问来源于stack exchange,提问作者Mark McGown
相关产品推荐
相关产品推荐

