Airflow 아키텍처 및 구성요소
.
Data_Engineering_TIL(20210922)
[참고자료]
아래의 블로그글들을 읽고 공부한 내용입니다.
- “Apache Airflow” 최정민님 깃허브 자료
URL : https://github.com/cjungm/with-aws/tree/main/airflow
- “Kubernetes를 이용한 효율적인 데이터 엔지니어링(Airflow on Kubernetes VS Airflow Kubernetes Executor) – 1” 이웅규님 Line 블로그글
URL : https://engineering.linecorp.com/ko/blog/data-engineering-with-airflow-k8s-1/
- “How Apache Airflow Distributes Jobs on Celery workers” 블로그글
URL : https://medium.com/sicara/using-airflow-with-celery-workers-54cb5212d405
[학습내용]
- Airflow 란
Airbnb에서 개발한 워크플로우 스케줄링, 모니터링 플랫폼
개별 작업들을 절차에 따라 관리 진행할 수 있는 소프트웨어임
- 아키텍처 예시로 이해하는 Airflow 구성요소
멀티노드, Celery executor를 가정하는 아키텍처임
1) Scheduler : 예약된 워크플로를 트리거하고, Executor에다가 Task가 실행되도록 명령하는 역할
2) Executor : Task instance를 실행하는 주체
3) Message broker : Executor로부터 Task 처리작업 명령을 받아서 worker들에게 적절하게 분배하는 역할
4) DAG Directory(Dag Bag) : Scheduler, Executor, Worker 가 읽는 DAG python file들이 저장되어 있는 폴더
5) Metadata DB : Airflow의 상태 및 계정 정보 등의 Metadata를 저장, Scheduler, Executor 및 Webserver에서 사용
6) Webserver : 사용자 인터페이스(UI) 제공, DAG의 검사, 트리거 및 Task의 동작 디버깅
7) 아키텍처 설명
Webserver에서 Workflow 대한 실행 시 Workflow의 실행 정보가 Metadata Database에 저장
Scheduler는 Metadata DB로 부터 실행 내용확인 및 Workflow를 Executor에 제출
Executor는 DAG Directory에서 DAG 정보 획득 및 Worker에 작업 할당
8) 추가 참고자료 : Apache Airflow의 기본 동작 원리
추가 참고자료 출처 : “Kubernetes를 이용한 효율적인 데이터 엔지니어링(Airflow on Kubernetes VS Airflow Kubernetes Executor) – 1” 블로그글
URL : https://engineering.linecorp.com/ko/blog/data-engineering-with-airflow-k8s-1/