Apache Airflow

[Airflow] 자주 쓰는 CLI

비번변경 2023. 1. 18. 17:48

개요

업무 중 Airflow를 많이 다루는데, 웹 서버에 접속하지 못하는 상태이다. 그렇다고 업무를 놓을 수는 없으니 Airflow 사용에 필요한 CLI 명령을 정리한다.

 

 

DAG 목록 확인

어떤 파일로 DAG가 생성되었는지, 소유자와 ON/OFF(pause) 상태를 확인할 수 있다.

airflow dags list

pause가 True이면 OFF, False이면 ON 상태이다.

 

 

DAG 구조 확인

DAG가 어떤 Task로 구성되어 있고, Task 간 의존성은 어떤지 확인한다.

airflow dags show schedule_test

 

 

Dag의 Task 목록 확인

DAG에 정의된 Task 목록을 확인한다. 트리 형태로 확인하고 싶을 때는 -t 옵션을 주어 실행한다.

airflow tasks list <DAG_ID>
# -t, --tree : 트리 형태로 출력

 

 

Dag ON/OFF

DAG를 트리거하기 위해서는 ON 상태여야 한다. DAG의 ON/OFF 상태를 변경할 때는 unpause/pause 명령을 사용한다.

 

ON

airflow dags unpause <DAG_ID>

OFF

airflow dags pause <DAG_ID>

 

 

Dag Trigger

2022.11.23 - [Airflow] Trigger에서 소개한 명령어다. DAG를 트리거해서 실행시킨다.

airflow dags trigger <DAG_ID>

 

 

Dag-run 목록 확인

DAG Run의 상태를 확인한다. run_id, execution_date, 실행 시점과 종료 시점 정보를 같이 확인할 수 있다.

airflow dags list-runs -d <DAG_ID>
# -s, --start-date
# -e, --end-date

start-date, end-date를 지정하지 않으면 Airflow Meta DB에 저장된 모든 DAG Run 목록을 확인한다.

 

 

Dag-run의 Task-instance 상태 확인

특정 DAG Run의 Task instance 상태를 확인한다. 상태를 확인할 DAG Run을 지정해야 하므로, DAG id와 DAG Run을 식별할 execution_date, 또는 Run id를 지정해야 한다.

airflow tasks states-for-dag-run <DAG_ID> <execution_date_or_run_id>

 

 

Dag의 Task Clear

2022.11.15 - [Airflow] Clear - Task 재실행에서 소개한 명령어다. DAG Task를 재실행하기 위해 클리어한다.

airflow tasks clear \
    -d <DAG_ID> \
    -s 2023-01-06T03:05:00+00:00 -e 2023-01-06T03:05:00+00:00

 

 

DAG Task Log 확인

DAG Task의 실행 로그는 airflow 설정에 정의된 log 폴더 내 파일에서 확인할 수 있다.

view /<base_log_folder>/<DAG_ID>/<TASK_ID>/<EXECUTION_DATE>/<TRY_NUMBER>.log

 

airflow CLI cheat-sheet

이 외 자주 쓰는 명령어는 아래 명령으로 확인할 수도 있다.

airflow cheat-sheet

 

 

참고 문서

https://velog.io/@yje876/Airflow-CLI-%EB%B0%8F-Management

https://levelup.gitconnected.com/airflow-command-line-interface-cli-cheat-sheet-6e5d90bd3552