【问题标题】:Is it possible to unset the WHEN condition on a Snowflake task?是否可以取消设置雪花任务的 WHEN 条件?
【发布时间】:2021-07-01 16:29:22
【问题描述】:

我有一个现有的 Snowflake 任务,它计划每小时运行一次,并使用 WHEN 条件检查特定流是否有数据。我想ALTER 这个任务,以便它不再使用 when 条件,但是,unset 似乎不起作用,我不能 modify 将其设置为 NULL。我们发现的一种解决方法是您可以将其修改为 TRUE 这似乎有效(语句执行并且任务确实运行),但我更愿意像其他没有设置 when 条件的任务一样取消设置它.我也认识到我可以放弃任务并重新创建它,但是,我会丢失历史记录。这不是一个严重的问题,但似乎很奇怪,事后无法对其进行修改,而且我没有看到任何表明这是预期行为的文档。

注意:在尝试进行任何更改之前,我已确定 root task is suspended

alter task example_task unset when;

SQL 编译错误:'TASK' 的属性 'when' 无效

alter task example_task modify when NULL;

任务条件表达式的表达式无效。期待其中之一 以下内容:[SYSTEM$STREAM_HAS_DATA]

alter task example_task unset condition;

SQL 编译错误:'TASK' 的属性'condition' 无效

(注意:已测试 ^,因为当您运行 show tasks 时该列被标记为“条件”)

alter task example_task remove when;

SQL 编译错误:位置 31 的第 1 行语法错误意外 '什么时候'。

(注:测试过^因为你使用'remove'来改变'after'参数)

alter task example_task modify when TRUE;

语句执行成功。

作为旁注,我们在尝试使用 snowflake terraform provider 时注意到了这一点,该 snowflake terraform provider 尝试更新 when 条件失败。现在我想我知道为什么了。

【问题讨论】:

  • 感谢@NickW 的回复和一些额外的测试,看起来我对丢失任务历史的担忧是没有根据的,因为它在 information_schema.task_history 中单独维护。那么接下来的问题是简单地删除/重新创建任务有什么缺点吗?

标签: snowflake-cloud-data-platform


【解决方案1】:

作为一种替代方法,为什么不使用 CREATE OR REPLACE TASK... 替换整个任务?

【讨论】:

    猜你喜欢
    • 2021-10-12
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    相关资源
    最近更新 更多