В задаче Snowflake у нас есть что-то вроде дочерней задачи, которая будет ждать, пока не встретятся зависимости, кроме условия родительской задачи
У меня 4 потока. A_STREAM, B_STREAM, C_STREAM, D_ STREAM
У меня есть цепочка задач, в которой A_TASK является родительской и имеет 3 дочерних задачи (B_TASK, C_TASK, D_TASK).
CREATE TASK A_TASK
WAREHOUSE = XYZ
SECHDULE = '15 MINUTE'
WHEN SYSTEM$STREAM_HAS_DATA('A_STREAM)
AS
DO Something;
CREATE TASK C_TASK
WAREHOUSE=XYZ
AFTER A_TASK
WHEN SYSTEM$STREAM_HAS_DATA('C_STREAM')
AS
DO SOMETHING;
Допустим, A_TASK был запущен и завершен, но когда дело дошло до выполнения для потока C_TASK, у C_STREAM не было данных, поэтому задача не была запущена. Через 5 минут C_STREAM получил данные.
Здесь проблема в том, что данные никогда не будут загружены в таблицу Target из C_STREAM, поскольку в следующий раз A_TASK не будет запущен. Как нам бороться с подобными секнарио?
Я не могу разделить эти задачи, поскольку они работают с одной целевой таблицей.
В задаче Snowflake есть ли у нас что-то вроде того, что дочерняя задача будет ждать, пока не будет удовлетворена зависимость?