是否可以取消雪花任务的 WHEN 条件?

时间:2021-07-01 16:29:22

标签: snowflake-cloud-data-platform

我有一个现有的 Snowflake 任务,该任务计划每小时运行一次,并且正在使用 WHEN 条件来检查特定流是否有数据。我想 ALTER 此任务,以便它不再使用 when 条件,但是,unset 似乎不起作用,我无法修改无效的。我们发现的一种解决方法是您可以将其修改为 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'

(注意:测试 ^ 因为当您运行显示任务时,该列标记为“条件”)

alter task example_task remove when;
<块引用>

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

(注意:已测试 ^ 因为您使用 'remove' 更改了 'after' 参数)

alter task example_task modify when TRUE;
<块引用>

语句执行成功。

作为旁注,我们在尝试使用 snowflake terraform provider 时引起了我们的注意,但未能成功更新 when 条件。现在我想我知道为什么了。

1 个答案:

答案 0 :(得分:0)

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