Можно ли отменить условие «КОГДА» для задачи «Снежинка»?

#snowflake-cloud-data-platform

Вопрос:

У меня есть существующая задача Snowflake, которая должна выполняться раз в час и использует условие WHEN для проверки наличия данных в конкретном потоке. Я хотел бы ИЗМЕНИТЬ эту задачу, чтобы она больше не использовала условие when, однако, похоже, что unset не работает, и я не могу изменить его на NULL. Единственный обходной путь, который мы нашли, заключается в том, что вы можете изменить его на TRUE, что, похоже, работает (оператор выполняется, и задача выполняется), но я бы предпочел, чтобы он был отключен, как и другие задачи, для которых не установлено условие when. Я также признаю, что мог бы отказаться от задачи и воссоздать ее, однако тогда я потерял бы историю. Это не является существенной проблемой, но кажется странным, что ее нельзя изменить постфактум, и я не видел никакой документации, указывающей на ожидаемое поведение.

Примечание: Я убедился, что корневая задача приостановлена, прежде чем пытаться внести какие-либо изменения.

 alter task example_task unset when;
 

Ошибка компиляции SQL: недопустимое свойство «когда» для «ЗАДАЧИ»

 alter task example_task modify when NULL;
 

Недопустимое выражение для выражения условия задачи. Ожидается одно из
следующих действий: [SYSTEM$STREAM_HAS_DATA]

 alter task example_task unset condition;
 

Ошибка компиляции SQL: недопустимое свойство «условие» для «ЗАДАЧИ»

(Примечание: проверено^, потому что столбец помечен как «условие» при запуске «показать задачи«)

 alter task example_task remove when;
 

Ошибка компиляции SQL: строка синтаксической ошибки 1 в позиции 31 неожиданная
«когда».

(Примечание: проверено^, потому что вы используете «удалить» для изменения параметра «после»)

 alter task example_task modify when TRUE;
 

Инструкция выполнена успешно.

В качестве примечания, это привлекло наше внимание при попытке использовать поставщика терраформирования snowflake, который безуспешно пытался обновить условие when. Теперь я, кажется, знаю почему.

Комментарии:

1. Благодаря ответу @NickW и некоторому дополнительному тестированию похоже, что мои опасения по поводу потери истории задач необоснованны, поскольку она хранится отдельно в information_schema.task_history. Итак, следующий вопрос: есть ли какие-либо недостатки в простом отбрасывании/воссоздании задачи?

Ответ №1:

В качестве альтернативного подхода, почему бы не заменить всю задачу с помощью функции СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ЗАДАЧУ…?