Как получить информацию о часовом поясе воздушного потока из макросов? - PullRequest
2 голосов
/ 22 марта 2019

Справочная информация

Я пытаюсь запустить DAG в 22:00 America/New_York один раз в день с понедельника по пятницу.Сценарий, который выполняет группа обеспечения доступности баз данных, принимает в качестве входных данных день, в который она выполняется для своего часового пояса (10 вечера с понедельника по пятницу).Когда я запускаю этот сценарий как DAG Airflow, дата выводится из макроса {{ ds_nodash }}

Проблема

Когда Airflow запускается, к тому времени он становится 22:00 в Нью-Йоркевремя уже на следующий день по UTC.Поскольку Airflow использует UTC, дата выполнения - на один день вперед, поэтому, когда моя группа обеспечения доступности баз данных использует макрос {{ ds_nodash }}, это на один день вперед.

Вопрос:

Есть ли способ получить дату, скорректированную по часовому поясу, в виде макроса на воздушном потоке, или это единственное решение моей проблемы - отрегулировать сам макрос?

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Я предположил, что вы можете испортить две разные концепции в потоке воздуха.

  1. На самом деле, 'ds' - это не дата выполнения задач, это предыдущий периодзадачи выполняются.например, для ds это 3/25/2019, он будет работать 26.03.2009, а не 3/25.Поэтому, если вы хотите, чтобы ваши задачи выполнялись точно в пн-пт, вам нужно установить schedule_interval как «0 22 * ​​* 1-5».Настройки дня недели должны быть «1-5» вместо «2-6».

  2. Для часового пояса ответ kaxil объяснил очень хорошо.Но если по какой-либо причине вы не можете изменить конфигурацию сервера воздушного потока, вам нужно настроить schedule_interval на «0 2 * * 2-6».Тогда задачи будут выполняться, как вы ожидали.

0 голосов
/ 22 марта 2019

Функция часового пояса теперь доступна в Airflow.Взгляните на https://airflow.readthedocs.io/en/1.10.2/timezone.html и соответственно настройте вашу конфигурацию в airflow.cfg.

По умолчанию это

[core]
default_timezone = utc

, установите

[core]
default_timezone = America/New_York

Дата исполнения будет содержать информацию о TZ, которую вы сможете извлечь.Попробуйте его в тестовой среде перед развертыванием в производственной среде.

...