강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

덕인떡집님의 프로필 이미지
덕인떡집

작성한 질문수

Airflow 마스터 클래스

CLI 사용하기 - dag trigger, backfill, clear

템플릿 변수에 대한 오류

작성

·

29

0

안녕하세요 CLI로 Trigger 기능을 수행하는 부분 강의를 듣던 중에,
Web UI에서 Trigger를 누르면 정상적으로 수행되지만,
쉘 스크립트 커맨드로 airflow dags trigger <DAG 이름>이라는 명령어를 실행했을 때
아래와 같은 실패 로그가 나타나서 문의드립니다.
혹시 커맨드라인으로 실행하면 {{data_interval_end}} 와 같은 템플릿을 적용할 수 없나요?

image.png

 

답변 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 부분)

image.png

https://airflow.apache.org/docs/apache-airflow/stable/release_notes.html?utm_source=chatgpt.com#airflow-3-1-0-2025-09-25

 

이 내용은 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

덕인떡집님의 프로필 이미지
덕인떡집
질문자

airflow 버전 3.0.3입니다.

덕인떡집님의 프로필 이미지
덕인떡집

작성한 질문수

질문하기