728x90
반응형
Apache Airflow
What is Airflow™? — Airflow Documentation
airflow.apache.org
Airflow는 AirBnB( Air Bed and Breakfast)에서 만든 워크플로우 관리 도구(Workflow management tool)이다.
ETL(Extraction -> Transformation -> Loading)과 같이 작업의 흐름을 관리할 수 있는 툴이다.
워크플로우 작성, 스케줄링, 모니터링 작업을 관리하고 시각화할 수 있다.
Airflow는 이러한 관리를 위한 컴포넌트(Component)들이 있으며, 각 컴포넌트들 간의 아키텍처는 아래와 같다.
Airflow 구성요소
- Webserver
- UI를 통해 사용자에게 시각적으로 정보를 제공해주는 요소이다.
- Airflow 로그를 보여주거나 Scheduler에 의해 생성된 DAG 목록, Task 상태 등을 시각화한다.
- Scheduler
- 할당된 일감들을 스케줄링해주는 요소이다.
- 스케줄된 워크플로우의 트리거링(triggering) 하거나 executor에게 task를 제공해주는 역할을 수행한다.
- Executor
- 실행중인 task를 핸들링(handling)하는 요소이다.
- 기본 설치를 하면 scheduler에 있는 모든 것을 실행시키지만, production 수준에서의 executor는 worker에 task를 push한다.
- Workers
- 실제 task를 실행하는 주체이다.
- Database
- Airflow에 있는 DAG, Task 등의 메타데이터(metadata)를 저장하고 관리한다.
DAG
DAG(Directed Acyclic Graph)를 이용해 Workflow를 작성한다.
DAG는 비순환 그래프로, 순환하는 사이클이 없는 그래프이다. 즉 노드와 노드가 단방향으로 연결되어 있다.
Airflow는 DAG를 이용해 Workflow를 어떤 순서로 구성하여 task를 실행시킬지, dependency를 어떻게 표현할지를 설정한다.
반응형
'[Tool] > [Airflow]' 카테고리의 다른 글
[Airflow] Airflow Trigger Rules (0) | 2024.06.04 |
---|