У меня есть вариант использования для создания двух задач BigqueryOperator с одинаковой целевой таблицей, но мне нужно, чтобы одна запускалась ежедневно, а вторая запускалась вручную, когда мне нужно.
Ниже приведены иллюстрации Древовидное представление
| task_3rd_adhoc
| task_3rd
|---- task_2nd
|---- task_1st_a
|---- task_1st_b
Из приведенного выше примера DAG запускается ежедневно. И я стремлюсь к тому, чтобы задача была:
- task_1st_a и task_1st_b запускаются первыми. Целевые таблицы:
- project.dataset.table_1st_a с _PARTITIONTIME = дата выполнения и
- project.dataset.table_1st_b с _PARTITIONTIME = дата выполнения.
- тогда task_2nd_a будет выполняться после task_1st_a и task_1st_b fini sh. BigQueryOperator использует TriggerRule.ALL_SUCCESS. Целевая таблица:
- project.dataset.table_2nd с _PARTITIONTIME = дата выполнения.
- , тогда task_3rd будет запущена после успеха task_2nd. BigQueryOperator использует TriggerRule.ALL_SUCCESS. Целевая таблица:
- project.dataset.table_3rd с PARTITIONTIME = D-2 с даты выполнения.
- task_3rd_adho c не будет выполняться в ежедневном задании. Мне это нужно, когда я хочу заполнить таблицу project.dataset.table_3rd. С целевой таблицей:
- project.dataset.table_3rd с _PARTITIONTIME = execution_date
Но я все еще не могу найти правильное TriggerRule для шага 4 выше. Я попробовал TriggerRule.DUMMY, потому что думал, что его можно использовать, чтобы не устанавливать триггер, но task_3rd_adho c также запускается в ежедневном задании, когда я пытался создать DAG выше. (на основе this do c зависимости предназначены только для показа, запускаются по желанию)