timezones in Airflow

우상욱·2024년 3월 11일
0

Airflow

목록 보기
17/22

Best Practice


  1. datetime.datetime() in python gives naive datetime objects by default!
  2. a datetime without a timezone is not in UTC
  3. Import airflow.timezone to create your aware datetime objects
  4. Or let Airflow does the conversion for you

에어플로우에서의 모범 사례는 모든 데이터를 UTC에 맞춰서 저장하는 것입니다. UI 또한 UTC에 맞춰져있습니다. 또한 에어플로우는 time zone을 처리하기 위해서, pendulum python library를 활용합니다. UTC를 사용하면 복잡한 timezone에 대한 생각과, 다른 복잡한 처리 로직들을 염려할 필요가 없습니다.

  • airflow.cfg 파일에 기본 time_zone을 설정할 수 있습니다.
    default_timezone = utc

어떻게 Dag가 timezone을 인식하게 할까?

Pendulum 라이브러리를 활용합니다.

import pendulum
local_tz = pendulum.timezone("Europe/Amsterdam")
default_args = { 'start_date': datetime(2019, 1, 1, tzinfo=local_tz), owner='Airflow' }
with DAG('my_dag', default_args=default_args):
profile
데이터엔지니어

0개의 댓글