Snowflake定时任务配置问题:CRON设为每小时45分执行却未运行
Snowflake定时任务未执行的排查要点
你创建的每小时45分执行存储过程SP_LOAD_PKG_LAB_SKU_LIST()的任务未运行,大概率是遗漏了关键配置步骤,以下是核心检查项:
完整的任务创建语句
你提供的代码片段缺少CREATE TASK的核心语法,完整的任务定义需要明确任务名称,示例如下:CREATE OR REPLACE TASK TASK_LOAD_PKG_LAB_SKU_LIST WAREHOUSE=WH_XS SCHEDULE='USING CRON 45 * * * * UTC' AS BEGIN CALL SP_LOAD_PKG_LAB_SKU_LIST(); END;没有完整的创建语句,任务根本不会被成功创建。
任务是否启用
Snowflake默认创建的任务处于**SUSPENDED(挂起)**状态,必须手动启用:ALTER TASK TASK_LOAD_PKG_LAB_SKU_LIST RESUME;可通过以下语句确认任务状态:
SELECT NAME, STATE, SCHEDULE FROM INFORMATION_SCHEMA.TASKS WHERE NAME = 'TASK_LOAD_PKG_LAB_SKU_LIST';仓库权限与可用性
- 检查仓库
WH_XS是否存在且处于STARTED状态,若仓库被挂起,任务无法执行:SELECT NAME, STATE FROM INFORMATION_SCHEMA.WAREHOUSES WHERE NAME = 'WH_XS'; - 确保任务拥有者具备
WH_XS仓库的USAGE权限,以及调用存储过程SP_LOAD_PKG_LAB_SKU_LIST()的权限。
- 检查仓库
存储过程有效性验证
单独执行存储过程,确认其本身能正常运行:CALL SP_LOAD_PKG_LAB_SKU_LIST();若存储过程执行报错,任务也会失败,可通过任务历史查看具体错误:
SELECT * FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(NAME => 'TASK_LOAD_PKG_LAB_SKU_LIST')) ORDER BY SCHEDULED_TIME DESC;调度历史排查
通过任务历史视图查看任务是否被调度、是否有执行记录或错误信息:SELECT NAME, SCHEDULED_TIME, QUERY_START_TIME, QUERY_END_TIME, STATE, ERROR_CODE, ERROR_MESSAGE FROM TABLE(INFORMATION_SCHEMA.TASK_HISTORY(NAME => 'TASK_LOAD_PKG_LAB_SKU_LIST')) ORDER BY SCHEDULED_TIME DESC;
内容的提问来源于stack exchange,提问作者user3496218
相关产品推荐
相关产品推荐

