尝试向雪花任务添加一天条件

Trying to add a day condition to a snowflake task

提问人:quarrendon 提问时间:11/17/2023 最后编辑:quarrendon 更新时间:11/18/2023 访问量:53

问:

我正在尝试为雪花任务添加一天条件。限制是我需要在任务 A 之后安排此任务,但周日除外,此时此任务根本不应该运行。添加“在任务 A 之后”的提及将不允许我同时提及一周中运行我的任务的日期。是否有可能实现此任务计划条件异常?

尝试在调用的存储过程中创建条件,它有效,但并不理想,因为计划预计会频繁更改,而存储过程应保持固定:

CREATE OR REPLACE TASK TASK_B
    WAREHOUSE = WRH_L
    USER_TASK_TIMEOUT_MS = 3600000 --1h
    AFTER TASK_A
    WHEN DAYOFWEEK(CURRENT_TIMESTAMP::TIMESTAMP_NTZ) <> 0 // This is the line I tried to add but seems I can only call system functions using WHEN
    AS
    CALL SP_A(); 

我还添加了另一个任务TASK_A_NOT_SUNDAY它什么都不做,但仅在当天不是星期日时运行,并将其作为条件添加到上述任务中,但我很好奇是否存在更好的解决方案:

CREATE OR REPLACE TASK TASK_B
WAREHOUSE = WRH_L
USER_TASK_TIMEOUT_MS = 3600000 --1h
AFTER TASK_A
AFTER TASK_A_NOT_SUNDAY
AS
CALL SP_A();
snowflake-云-数据-平台

评论

1赞 SelVazi 11/17/2023
你能编辑你的问题,告诉我们到目前为止你做了什么吗?
0赞 quarrendon 11/17/2023
现在添加代码,谢谢!
0赞 Himanshu Kandpal 11/18/2023
嗨,如果您不会将条件更改为不在周日运行,那么一种方法是在过程 SP_A() 中退出,如果当天是星期日,则使用“ SELECT DAYNAME(current_date) AS DAY ”
0赞 quarrendon 11/18/2023
是的,这可能会起作用,但是如果需要,我仍然希望能够手动启动该过程,这可能在周日发生,在这种情况下它将不起作用。这就是为什么我一直在寻找在任务本身中做到这一点的最佳方法,而不是改变程序
1赞 NickW 11/18/2023
只需为周日和其他日子创建不同的父任务

答: 暂无答案