바스 하렌슬락, 율리안 더라위터르, 『Data Pipelines with Apache Airflow』, 김정민, 문선홍, 제이펍-MANNING(2022), p4-20.
DAG (Directed Acyclic Graph)
- 방향성 비순환 그래프
- 반복이나 순환을 허용 안함(acyclic)
- 이전 작업이 완료되어야 다음 작업 진행 가능
- 순환 그래프는 의존성으로 인해 논리적 오류 발생
-> deadlock

Graph pipeline
- 태스크와 태스크에 대한 의존성을 직관적으로 설명
- 그래프에 실행 알고리즘을 적용하면, 태스크를 병렬로 실행 가능
- 파이프라인을 작은 점진적인 태스크로 분리 가능
- 중간 태스크 실패 시, 실패한 태스크(or 그 이후까지)만 재실행
Airflow의 주요 기능
- 유연한 파이썬 프레임워크를 사용해 쉽게 데이터 파이프라인을 구축
- 서로 다른 기술들을 연결할 수 있는 다양한 빌딩 블록을 제공
- 데이터 처리를 위한 다양한 구성 요소들을 조정
- DAG의 실행 주기를 정의할 수 있음
- 스케줄러(DAG 태스크 예약)
- 워커(태스크 선택 및 실행)
- 웹 서버(DAG 시각화, 결과 확인 인터페이스)
Airflow 장단점
장점
- 오픈 소스
- 파이썬으로 구현 가능
- 쉽게 확장 가능, 다양한 시스템과 통합 가능
- 점진적 태스크 분리로 전체 파이프라인을 재실행할 필요 없음
- 웹 인터페이스로 모니터링 및 디버깅 가능
단점
- 스트리밍(실시간 데이터 처리)에는 적합하지 않음
- 추가, 삭제 태스크가 빈번한 동적 파이프라인에는 비적합
- 웹 인터페이스에서 DAG의 가장 최근 실행 버전에 대한 정의만 표현
- 파이썬으로 DAG 작성 시, 파이프라인 규모가 커지만 복잡해짐