我目前正在执行一项雪花式的“任务”,每天凌晨在桌子上插入表格。
我当前的任务是使用以下语法创建的-
CREATE OR REPLACE TASK "DB"."SCHEMA"."SAMPLE_TASK"
WAREHOUSE = SAMPLE_WAREHOUSE
SCHEDULE = 'USING CRON * 12 * * * UTC'
TIMESTAMP_INPUT_FORMAT = 'YYYY-MM-DD HH24'
AS
CREATE OR REPLACE "DB"."SCHEMA"."EMP"
AS
SELECT * FROM "DB"."SCHEMA"."EMP_STAGE";
我在CST工作,并且UTC为-7个小时,我的任务预计将在上午5点执行,并且确实如此。我确认在INFORMATION_SCHEMA中使用“ TASK_HISTORY”-
SELECT * FROM TABLE(DB.INFORMATION_SCHEMA.TASK_HISTORY()) WHERE NAME = 'SAMPLE_TASK';
但它在剩余一小时的每一分钟内还额外运行了59次,直到6点。
我在这里错过了什么吗?
感谢您的通读,非常感谢您的帮助。
-斯里
答案 0 :(得分:4)
计划采用cron格式,因此您在分钟内使用*号,因此它将在该小时内每分钟运行一次。
cron格式的详细信息可以在网络上的许多页面上找到,一个例子如下,请注意,进入cron格式的第一个“参数”是分钟:
https://support.acquia.com/hc/en-us/articles/360004224494-Cron-time-string-format
我建议为第一个*重建值为零或一的任务。
我希望这可以帮助...丰富
答案 1 :(得分:1)
您的任务的CRON syntax通过为其分钟(第一个)组件指定一个*
来请求执行every minute within the 12th hour of the day(即60次)每天,都在第12小时)。
根据您的描述,您寻求的是以下内容:
SCHEDULE ='使用CRON 0 12 * * * UTC'
这将执行only once at 1200 hours UTC each day。
使用crontab guru或CRON tester之类的工具可以帮助您在将CRON计划实施到Snowflake任务之前对其进行测试。