sql - 在计划任务中调用它时,雪花一个工作过程没有被成功执行
问题描述
我在雪花上有一个完全运行的过程,调用它时完全没有错误:
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: 2021-01-27 16:00:06.198 -0800
COMPLETED_TIME: 2021-01-27 16:00:24.902 -0800
返回值:空
DONE
实际上,当所有内容都已成功添加/更新时,该过程将返回一个字符串。
运行时:
show tasks;
过程的状态是started
。
为什么在使用任务调用时不执行该过程?
有新数据从 Azure 上传到暂存文件,因此该过程应检测新提交并启动插入过程。
解决方案
如果您在任务之外运行该过程,则必须使用任务所有者角色来确保正确测试。如果您的过程在具有任务所有者权限的任务之外工作,它也应该在任务内工作。
所以...我认为您的访问/权限管理存在问题。任务执行的 SQL 语句只能对角色具有所需权限的 Snowflake 对象进行操作。--> 您必须将您的过程中的对象的更多权限授予您的任务所有者角色。
在此处查看更多信息:https ://docs.snowflake.com/en/sql-reference/sql/create-task.html
推荐阅读
- jquery - Wordpress:Ajax 请求向控制台记录 400 Bad Request
- html - 对于经常性捐款,PayPal 会给出错误“目前似乎无法正常工作。请稍后再试。”
- apache - 如何使用 Apache 重定向 Node-Red 的请求?
- android - 从位图保存图像时出错。给出 NullPointException 错误
- java - Java并发控制台IO
- google-analytics - 将 Matomo (Piwik) 跟踪集成到 Confluence
- python - 缩放 OpenCV 人脸识别中检测到的矩形
- python - 在 GNURadio 中使用 Python 模块制作自己的信号源
- php - 您如何将架构与有效负载相关联?
- julia - Julia中的struct有没有repmat之类的功能?