바스 하렌슬락, 율리안 더라위터르, 『Apache Airflow 기반의 데이터 파이프라인』, 김정민, 문선홍, MANNING-제이펍(2022), p3-19.
Airflow?
- 데이터 파이프라인을 처리하기 위한 배치 태스크
- 다양한 분산 시스템에서 발생하는 작업을 조율
- 데이터 처리를 위한 다양한 구성 요소들을 조정
- Open source!
Airflow의 주요 기능
- 유연한 파이썬 프레임워크를 사용해 쉽게 데이터 파이프라인을 구축 가능
- 파이프라인, 워크플로우 태스크를 DAG로 정의 가능
- DAG (Directed Acyclic Graph): 방향성 비순환 그래프
- 반복이나 순환을 허용하지 않음
- 끝점(directed edge)을 포함
- DAG (Directed Acyclic Graph): 방향성 비순환 그래프
- DAG를 Python 코드로 정의하면, 많은 유연성을 제공할 수 있음
- 파이프라인, 워크플로우 태스크를 DAG로 정의 가능
- 쉽게 확장 가능하고 다양한 시스템과 통합 가능
- 점진적(incremental) 처리를 통해, 전체 파이프라인을 재실행할 필요 없음
- DAG의 실행 주기 정의 (like Cron)
- 백필 기능을 통해 과거 데이터를 손쉽게 재처리 가능
- 웹 인터페이스를 통해 파이프라인 실행 결과를 모니터링 및 오류를 디버깅할 수 있음
데이터 파이프라인
- 원하는 결과를 얻기 위해 실행되는 여러 태스크 or 동작으로 구성
- e.g. 식자재 구매 → 재료 손질 → 요리 → 판매
- 태스크는 정해진 순서대로 진행되어야 함
- Graph로 표현 → 태스크 간 의존성을 명확하게 확인 가능
- 순환 의존성 문제가 생기면 → 논리적 오류가 발생됨 → 교착 상태(deadlock)로 이어짐
- 실행 알고리즘을 적용하면, task를 병렬로 실행할 수 있음 → 컴퓨팅 리소스를 효율적으로 활용
- task가 실패한 경우, 실패한 task만 재실행하면 됨
- 단일 스크립트 (monolithic)의 경우, 실패 시 전체 스크립트를 재실행해야 함
- DAG는 해당 시간 슬롯(delta 데이터)에 대한 데이터만 처리
Airflow 구성 요소
- Airflow 스케줄러: DAG를 분석, 현 시점에서 스케줄이 지난 경우, Airflow 워커에 DAG의 태스크를 예약
- 파이프라인이 실행되는 시기와 방법을 결정
- 최종 시점과 예상되는 다음 스케줄 주기를 상세하게 알려줌
- Airflow 워커: 예약된 태스크를 선택하고 실행
- task 실행은 병렬로 수행됨
- 실행 결과는 지속적으로 추적됨
- Airflow 웹 서버: 스케줄러에서 분석한 DAG를 시각화, 실행 및 결과를 확인할 수 있는 인터페이스 제공
- task의 진행 상황 추적 및 로그 확인
반응형
'Workflow' 카테고리의 다른 글
Chapter 3. Apache DAG의 구조 (1) | 2024.01.21 |
---|---|
Chapter 2. Apache DAG의 구조 (0) | 2024.01.15 |
댓글