본문 바로가기
Data Analysis/Python

[Airflow] The important views of the Airflow UI

by Hagrid 2023. 1. 7.
반응형
DAGs Page

DAG는 Directed Acyclic Graph의 약자로 Airflow에선 workflow라고 설명함

Task의 집합체

메인 화면엔 정의되어 있는 DAG들을 확인할 수 있음

현재는 많은 example이 존재

example을 보고싶지 않다면 airflow.cfg에서 load_examples = False로 설정하면 됨

Running Switch

  • DAG Pause/Unpause
  • 버튼을 통해 DAG 활성화 및 비활성화 가능

Name & Tags

DAG Name & Tag

example_short_circuit_operator이라는 dag name이고, example이라는 tag가 있다.

tag를 통해 DAG 검색이 가능하므로 프로젝트별 기능별로 나누면 좋을 거 같다.

Owner

DAG Owner

Owner는 소유자를 뜻하는 것으로 생성한 유저를 뜻함

DAG의 소유주 확인

Runs

DAG Runs

queued : queue에 대기 중인 상태

success : 실행 성공

running : 실행중

failed : 실행 중 에러 발생

Recent Tasks/DAG Runs에 최근 실행된 Task들이 나타나며, 실행 완료된 것은 초록색, 재시도는 노란색, 실패는 빨간색으로 표시됨

Schedule

Schedule은 예정된 스케쥴로 cron 스케쥴의 형태와 동일하게 사용 

DAG Schedule

DAG의 실행 주기 확인

format은 crontab 시간 포맷과 동일

crontab 시간 표현식과 관련된 사이트 : https://crontab.guru/

DAG 생성하는 흐름

(1) default_args 정의

누가 만들었는지, start_date는 언제부턴지 등)

(2) DAG 객체 생성

dag id, schedule interval 정의

(3) DAG 안에 Operator를 활용해 Task 생성

(4) Task들을 연결함( >>, << 활용)

# set_upstream은 t1 작업이 끝나야 t2가 진행된다는 뜻

Airflow는 $AIRFLOW_HOME(default는 ~/airflow)의 dags 폴더에 있는 dag file을 지속적으로 체크함

 

 

Operator를 사용해 Task를 정의함

Operator가 인스턴스화가 될 경우 Task라고 함

Python Operator, Bash Operator, BigQuery Operator, Dataflow Operator 등

Operator 관련 자료는 공식 문서 참고

Operator는 unique한 task_id를 가져야 하고, 오퍼레이터별 다른 파라미터를 가지고 있음

 

다시 정리하면 DAG 객체 생성 -> Operator를 활용해 Task 작성 -> Task를 연결하는 방식

Last Run

DAG Last Run

DAG의 가장 최근 실행된 날짜

Next Run

DAG Next Run

DAG의 다음 실행 예정 날짜

Recent Tasks

DAG Recent Tasks

Task의 최근 실행 결과 확인

none : task가 queue에 대기되지 않은 상태 

removed : 실행이 시작된 후 삭제된 상태

scheduled : 스케쥴러가 task의 종속성이 충족되고 실행되어야 한다고 결정된 상태

queued : task가 Executor에 할당되었고 Worker를 기다리는 상태

running : task가 worker에서 실행 중인 상태

success : task가 오류 없이 실행을 완료한 상태

shutdown : task가 실행 중일 때 종료하도록 외부적으로 요청된 상태

restarting : task가 실행 중일 때 다시 시작하도록 외부에서 요청된 상태

failed : task를 실행하는 동안 오류가 발생하여 실행하지 못한 상태

up for retry : task에서 작업이 실패했지만 retry 횟수가 남았고 다시 스케쥴링되는 상태

up for reschedule : 작업이 모드에 있는 센서입니다. 

upstream failed : 의존성이 있는 task에서 먼저 실행해야 하는 task에서 error 발생

skipped : 분기, LatestOnly 등으로 인해 작업이 건너뛴 상태

sensing : task가 smart sensor

deferred : task가 트리거에 의해 연기된 상태

Delete Dag

Dag 파일을 삭제하는 것이 아닌 instance만 삭제

특정 Task를 test하고 싶은 경우

date 날짜로 실행함

  airflow test [DAG id] [Task id] [date]

Calendar View

 

몇 달 또는 몇 년 동안의 전체 DAG 기록에 대한 개요를 제공합니다. 시간 경과에 따른 실행의 전반적인 성공/실패율 추세를 빠르게 확인할 수 있습니다.

Gantt Chart

The Gantt chart lets you analyse task duration and overlap. You can quickly identify bottlenecks and where the bulk of the time is spent for specific DAG runs.

네모칸이 길면 더 오래걸리는것 - 줄일려고 노력해봐야함 

the most useful view to detect bottlenecks in your DAG

 

Code View

Transparency is everything. While the code for your pipeline is in source control, this is a quick way to get to the code that generates the DAG and provide yet more context.

 

걍 코드 다 보여줌

컨벤션에 맞게 이쁘게 잘써야함 

 

Crontab.guru - The cron schedule expression editor

 

crontab.guru

 
 
 
반응형

댓글