Ваш вопрос звучит немного запутанным по поводу execution_date
для обратной засыпки.Команда backfill просит вас указать альтернативные даты начала и окончания для запуска группы DAG. Затем она использует schedule_interval
для определения прогонов, которые должны были бы выполняться в этом диапазоне, и передает им execution_date
.
* 1005.* Итак, ваш
schedule_interval
, вероятно, выглядит как
30 19 * * *
.И, как вы знаете, вашему пробегу передается начало интервала при закрытии этого интервала, поэтому запланированный
execution_date
2019-01-01T19: 30: 00.000 будет запущен после 2019-01-02T19: 30:00,000.Кажется, что в то время вы хотите, чтобы задание выбрало данные, попавшие в
/data/2019-01-02/
, поэтому вы добавляете день к
execution_date
и форматируете его для источника.
Если вы backfill , он должен вести себя одинаково (а не сдвигать время вокруг).Так что, учитывая -s 2019-01-01 -e 2019-01-02
, он собирается заполнить прогон, который был бы запущен после 2019-01-02T19: 30: 00.000 с датой выполнения 2019-01-01T19: 30: 00.000, не так ли?
Что касается других способов сделать это:
- Вы можете перенести свои пробежки на полночь и попросить их использовать дату в
execution_date
.Но задержка в 4,5 часа, вероятно, совсем не та, что вы имели в виду. - Видите ли, если каталоги данных можно было бы назвать по-другому, я сомневаюсь, что было бы хорошо, если бы другие люди или рабочие места полагались на них.
- Воздушный поток также имеет
next_execution_date
, что в принципе даст вам тот же результат, что и добавление дня к execution_date
.Но вам может понравиться форматированный макрос {{ next_ds }}
для ваших нужд.