airflow 2.x 로 올라가면서 ui 에서 타임존을 고려한 처리가 좋아지긴했는데, DAG 를 만들때 logical_date 를 이용해 값을 유도할때 우리가 의도한 값이 안나올때가 있다. 우선 airflow 의 환경변수기반으로 구성했다는 가정으로 타임존을 아래와 같이 구성하고export AIRFLOW__CORE__DEFAULT_TIMEZONE="Asia/Seoul"export AIRFLOW__WEBSERVER__DEFAULT_UI_TIMEZONE="Asia/Seoul" DAG 선언할때도 start_date 값에 타임존까지 잘 지정했다면 반은 성공한것이다. 근데 , 2024-01-02 00:00 가 되면 2024-01-01 00:00 의 logical_date 가 바인딩될것으로 기대되는데 이상하게{{ l..

월별 지표를 만들기위해 말일에 스케쥴을 어떻게 할지 고민하다가, crontab 표현으로 28~31 활성화 하고, 체크로직을 넣어 실행을 제한하는식으로 접근을 했는데 마지막날이 스케쥴 안되는 문제가 발생했다. 예를 들어, 아래와 같이 스케쥴을 걸면 10/28 , 10/29, 10/30, 10/31 이 스케쥴이 활성화 되면서 실행되길 기대했는데...31일 스케쥴이 활성화가 안되는 상황이다.with DAG( dag_id="sample_dag", start_date=datetime.datetime(2024, 10, 1, tzinfo=pendulum.timezone("Asia/Seoul")), schedule_interval="0 0 28-31 * *", # 매월 말일 실행 max_act..

airflow 2.x 버전에서는 timezone 처리가 가능하다. execution_date 를 로컬날짜 기준으로 사용하기위해서는 python 코드에서 로컬타임존 세팅후 전환하는 로직을 호출해주면 해결이 되는데, 문제는 DAG 의 실행결과를 확인하기위한 로그의 날짜가 버그가 존재한다. 어떤 상황이냐면, airflow 가 설치된 서버의 타임존은 한국기준로 세팅되어있고, 실행된 시점은 "Tue Feb 21 12:30:02 KST 2023" 이라고 가정하자. 편의상 시간만 보면 한국시간으로 12시 30분이라고 보면 된다. [2023-02-21, 21:30:02 KST] {subprocess.py:85} INFO - Output: [2023-02-21, 21:30:02 KST] {subprocess.py:92}..