기본적으로 airflow는 UTC 시간을 기준으로 하고 있기 때문에 start_date
속성이나 schedule_interval
같은 속성을 사용할때 한국시간 - 9시간
으로 계산하여 입력하는데 무척이나 불편하다.
오늘은 timezone 설정을 통해 schedule_interval 설정을 한국시간으로 입력하도록 해보겠다.
pendulum을 이용한 타임존 지정
from datetime import datetime
import pendulum
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
## 로컬 타임존 생성
local_tz = pendulum.timezone("Asia/Seoul")
## start_date의 tzinfo를 Asia/Seoul로 지정
default_args = {
'owner': 'Airflow',
'depends_on_past': False,
'start_date': datetime(2020, 3, 10, tzinfo=local_tz),
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'catchup': False
}
## schedule_interval을 한국 시간으로 입력
dag = DAG('timezone_dag', default_args=default_args, schedule_interval="46 11 * * *")
task = BashOperator(
task_id="echo_time",
bash_command="date",
dag=dag
)
출력 결과
[2020-03-26 11:46:07,198] {bash_operator.py:115} INFO - Running command: date
[2020-03-26 11:46:07,203] {bash_operator.py:124} INFO - Output:
[2020-03-26 11:46:07,206] {bash_operator.py:128} INFO - Thu Mar 26 11:46:07 KST 2020
'OpenSource > Airflow' 카테고리의 다른 글
[Airflow] Trouble Shooting (0) | 2021.04.22 |
---|---|
[Airflow] template 기본값 지정 (0) | 2020.03.19 |
[Airflow] Custom Operator에서 Jinja template 값 치환 실패시 해결방법 (0) | 2020.03.19 |
[Airflow] dag 실행시 arguments를 전달하여 실행하는 방법 (0) | 2020.03.19 |
[Airflow] Multi Server Cluster 환경에서 dag 파일은 모든 서버에 배포해야할까? (0) | 2020.02.24 |