본문 바로가기

[Tool]/[Airflow]

[Airflow] Airflow 개념

728x90
반응형

Apache Airflow

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를 어떻게 표현할지를  설정한다.

https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/dags.html#dags

 

반응형

'[Tool] > [Airflow]' 카테고리의 다른 글

[Airflow] Airflow Trigger Rules  (0) 2024.06.04