【问题标题】:Rogue task running on Snowflake?在雪花上运行的流氓任务?
【发布时间】:2021-04-28 15:44:30
【问题描述】:

我在 Snowflake 中删除了一项任务并用新任务替换了它,但旧任务似乎继续运行,即使它不在 SHOW TASKS 中。

原始任务创建:

CREATE TASK MY_OLD_TASK
WAREHOUSE=MY_WAREHOUSE
SCHEDULE='USING CRON 0 5,17 * * * UTC'
AS
insert overwrite into "MY_SCHEMA".MY_TABLE(MY_FIELDS)
SELECT MY_OLD_SQL
ALTER TASK MY_OLD_TASK RESUME

删除旧任务并使用新任务更新它:

DROP TASK MY_OLD_TASK
CREATE TASK MY_NEW_TASK
WAREHOUSE=MY_WAREHOUSE
SCHEDULE='USING CRON 0 5,17 * * * UTC'
AS
insert overwrite into "MY_SCHEMA".MY_TABLE(MY_FIELDS)
SELECT MY_NEW_SQL
ALTER TASK MY_NEW_TASK RESUME

如果我获取新任务的当前定义字段并从我的 SHOW TASKS 结果中运行它,它会用我想要的内容填充我的表。我去审计了我存在的另外两个任务,并确保它们也没有写入这个表。

SHOW TASKS
created_on|name|definition
2021-04-14 18:12:25.283-0700|my_other_task1|(definition not affecting MY_TABLE)
2021-04-16 16:13:15.285-0300|my_other_task2|(definition not affecting MY_TABLE)
2021-04-16 16:13:15.285-0300|MY_NEW_TASK|(definition that does exactly what I want it to on MY_TABLE)

第一次发生这种情况时,当我删除旧任务并用新任务替换它时,我认为旧任务仍在运行。除了现在它已经连续第二天发生了。

为什么有一个较旧的任务正在运行,但没有出现在显示任务中,我该如何停止它?期望的结果只是让 MY_NEW_TASK 使用我在显示任务中看到的与它对应的当前定义运行。

【问题讨论】:

    标签: sql snowflake-cloud-data-platform


    【解决方案1】:

    旧的可能与活动的模式不同。您可以使用以下命令搜索所有任务:

    SHOW TASKS IN DATABASE;
    

    然后放下它:

    DROP TASK IF EXISTS <schema_name>.<old_task_name>;
    

    【讨论】:

    • 就是这样!除了数据库命令中的显示任务对我说 SQL 编译错误不起作用:模式 'MY_DB.MY_DB' 不存在或未授权,如果您有任何建议。它仅适用于使用 SHOW TASKS IN MY_DB."MY_SCHEMA" 或 SHOW TASKS IN MY_DB."MY_ALT_SCHEMA",我不知道始终查看所有任务的命令。
    • @MarkMcGown SHOW .. IN DATABASE 应该在您有权访问的模式中显示任务。如果出错就很奇怪。目前我无法重现它,但请随时向 SF 支持报告。
    猜你喜欢
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多