Планирование задач на основе событий 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

Таким образом, сейчас невозможно создать планирование задач на основе событий.

Другие вопросы по тегам