작성
·
29
답변 2
0
안녕하세요 덕인떡집님!
아이고 제가 이 질문글을 놓쳤네요. 죄송합니다. 이제서야 답글을 다네요.
결론부터 말씀드리자면 airflow 3.0 버전이 되면서 event 기반의 dag 스케줄링 기능을 강화하면서 이전까지 주요 컨셉이었던 스케줄 간격 기반의 dag 스케줄링 기능을 버렸습니다.
그래서 airflow 3.0 버전부터는 기본적으로 data_interval_start와 end 값이 동일하게 표현됩니다. 즉 2.x 버전에서는 data_interval_start 와 end 값은 dag 실행 주기만큼 벌어져 있었는데 3.0 부터는 동일한 값을 가진다는 의미이죠.
정리하자면 Airflow 3.0이 되면서 스케줄 간격 기반의 고전적인 스케줄링 기능을 포기하고 Event 기반의 스케줄링에 더 힘을 주게 되었습니다.
그리고 Airflow 3.0 변화 중 아래 내용이 있습니다. (Airflow 3.0.0 Update 부분)
이 내용은 Asset (구 Dataset)을 이용해서 Dag 을 트리거링 했을 때나 REST API를 이용해서(CLI도 포함) dag 트리거링 했을 때는 더이상 logical_data가 제공되지 않는다는 말입니다. 그래서 3.0 부터는 data_interval_start와 end 값이 기본적으로 제공되지는 않고 REST API나 CLI를 이용해서 트리거링할 때 명시적으로 logical_date 옵션 값을 넣어야 합니다.
airflow dags trigger {dag name} --logical-date '2025-10-10 00:00:00'
이런식으로 logical_date 값을 주면 에러나지 않고 돌기는 할겁니다.
airflow 2.10 버전까지는 logical-date 값을 넣지 않아도 잘 돌거에요. airflow 3.0 부터 바뀐 부분이라고 보시면 되고 이 내용은 제가 airflow 3.0 버전 update 부분에서 다루고 있습니다.
참고하세요 ^^
0