雪花:在计划任务中调用工作过程时没有成功执行



我在snowflake上有一个完全运行的过程,调用它时没有任何错误:

call ADD_MONTHLY_OBSERVATION_VALUES('@test_azure_blob_stg/Monthly_Report.csv', 'GENERIC_CSV_FORMAT');

我想把这个命令包装成一个任务,并把它安排到一个特定的时间,像这样:

CREATE OR REPLACE TASK ADD_MONTHLY_OBSERVATION_VALUES_TASK
WAREHOUSE = 'DEV_WH'
TIMESTAMP_INPUT_FORMAT = 'YYYY-MM-DD HH24'
//SCHEDULE = 'USING CRON 0 6-7 * * SUN,MON,TUE,WED,THU Asia/Dacca'
//Schedule for each minute
SCHEDULE = 'USING CRON * * * * * UTC'
AS
call ADD_MONTHLY_OBSERVATION_VALUES('@test_azure_blob_stg/Monthly_Report.csv', 'GENERIC_CSV_FORMAT');

然后我重新开始工作:

ALTER TASK ADD_MONTHLY_OBSERVATION_VALUES_TASK RESUME;

当我检查任务的历史记录时:

状态:成功

ERROR_CODE:零

ERROR_MESSAGE:零

QUERY_START_TIME: 20121-01-27 16:00:06.198 -0800

COMPLETED_TIME: 2021-01-27 16:00:24.902 -0800

RETURN_VALUE:零

实际上,当所有内容都成功添加/更新后,过程将返回一个字符串DONE

运行时:

show tasks;

过程状态为started

为什么使用任务调用过程时没有被执行?

有新的数据从Azure上传到暂存文件,所以过程应该检测到新的提交并开始插入进程。

如果您在任务之外运行过程,您必须使用任务所有者角色来确保正确的测试。如果您的过程在具有任务所有者权限的任务外工作,则它也应该在任务内工作。

所以…我猜你的访问/权限管理有问题。任务执行的SQL语句只能对角色拥有所需权限的雪花对象进行操作。——比;您必须将过程中对象的更多权限授予任务所有者角色。

查看更多信息:https://docs.snowflake.com/en/sql-reference/sql/create-task.html

最新更新