You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake配置的周度、月度CRON定时任务未正常运行问题求助

排查步骤

  • 确认任务状态是否正常开启
    执行查询SHOW TASKS LIKE '%_JOB';,查看返回结果的state字段,必须为started才会正常触发。

    注意:执行CREATE OR REPLACE TASK后,任务默认会重置为suspended状态,必须手动执行ALTER TASK ... RESUME才会生效。你贴出的月度任务MONTHLY_JOB的开启语句是单独拆分的,大概率是创建完任务后漏执行了这句,导致任务一直处于挂起状态。

  • 验证CRON规则与时区是否符合预期
    先核对Snowflake侧的CET时区时间是否和你预期一致:

    SELECT CURRENT_TIMESTAMP AT TIME ZONE 'CET' AS 当前CET时间;
    

    再用内置函数验证两个任务的下一次触发时间是否符合预期:

    -- 验证周任务下次触发时间
    SELECT CronTime('0 5 * * 1', 'CET') AS 周任务下次触发时间;
    -- 验证月任务下次触发时间
    SELECT CronTime('0 5 1 * *', 'CET') AS 月任务下次触发时间;
    

    如果返回的时间和你预期的周一/每月1号凌晨5点不符,再调整CRON表达式。

  • 查看任务执行历史排查报错
    任务触发后如果执行失败(比如权限不足、SQL报错),也会给你造成“没触发”的错觉,可以直接查任务的运行日志:

    -- 查周任务近7天运行记录
    SELECT *
    FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(
        TASK_NAME => 'WEEKLY_JOB',
        SCHEDULED_TIME_RANGE_START => DATEADD('day', -7, CURRENT_TIMESTAMP())
    ))
    ORDER BY SCHEDULED_TIME DESC;
    
    -- 查月任务近31天运行记录
    SELECT *
    FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(
        TASK_NAME => 'MONTHLY_JOB',
        SCHEDULED_TIME_RANGE_START => DATEADD('day', -31, CURRENT_TIMESTAMP())
    ))
    ORDER BY SCHEDULED_TIME DESC;
    

    重点看返回结果的ERROR_CODE和ERROR_MESSAGE字段,常见报错原因包括:

    • 任务绑定的compute_wh不存在,或任务所属角色没有该仓库的USAGE权限
    • 任务所属角色没有目标表的INSERT权限
    • INSERT语句本身语法错误、表结构变更导致字段不匹配
    • 仓库配额耗尽、被手动挂起无法启动
  • 确认任务归属是否正确
    执行SHOW TASKS IN ACCOUNT LIKE '%_JOB';查看全账号下的同名任务,确认你操作的是目标 schema/数据库下的任务,避免错改了其他路径下的同名任务。

内容的提问来源于stack exchange,提问作者timy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:36:03