Планирование задач на основе событий Snowflake вместо планирования задач на основе времени
Мне нужны примеры планирования задач на основе событий Snowflake вместо планирования задач на основе времени. Я не смог найти эти примеры в документе со снежинками.
заранее спасибо
2 ответа
Единственный источник событий, который может запускать задачу, - это завершение предыдущей задачи в дереве задач, см. Использование параметра "ПОСЛЕ".
CREATE TASK mytask2
WAREHOUSE = mywh
AFTER mytask1
AS
INSERT INTO mytable2(id,name) SELECT id, name FROM mytable1;
Кроме того, если событием будет вставка или изменение записи в таблице, вы можете создать поток в таблице и использовать предложение WHEN, чтобы запланированная задача не выполнялась до тех пор, пока в потоке не появятся данные.
create stream mystream on table mytable
APPEND_ONLY = TRUE; // Set to true to only capture inserts
CREATE TASK mytask1
WAREHOUSE = mywh
SCHEDULE = '5 minute'
WHEN
SYSTEM$STREAM_HAS_DATA('MYSTREAM')
AS
INSERT INTO mytable1(id,name) SELECT id, name FROM mystream WHERE METADATA$ACTION = 'INSERT';
https://docs.snowflake.com/en/sql-reference/sql/create-task.html
https://docs.snowflake.com/en/sql-reference/sql/create-stream.html
Нет источника событий, который может запускать задачу; вместо этого задача выполняется по расписанию.
https://docs.snowflake.com/en/user-guide/tasks-intro.html
Таким образом, сейчас невозможно создать планирование задач на основе событий.