https://vutr.substack.com/p/apache-airflow-overview

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d54634e9-2dcc-4eaf-af2b-03f5d714f7c8/airflow.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d54634e9-2dcc-4eaf-af2b-03f5d714f7c8/airflow.png" width="40px" /> Apache Airflow란 데이터 파이프라인(워크플로)를 자동화해주고 스케줄링, 모니터링을 하게 해주는 Airbnb에서 만든 오픈 소스 플랫폼이다. Dag를 통해 워크플로를 관리한다.

</aside>

image.png

Core Components

  1. Scheduler: DAG와 태스크의 스케줄링을 담당하며, 태스크가 실행될 시점을 결정합니다. Dag folder AIRFLOW__CORE__DAGS_FOLDER에 정의되어있는 DAG를 파싱해서 Metadata Database에 넣습니다.
  2. Executor: 태스크를 실제로 어떻게 실행할지 결정하는 컴포넌트로, 여러 종류의 Executor가 있습니다. (예: LocalExecutor, CeleryExecutor, KubernetesExecutor)
  3. Worker: Executor가 할당한 태스크를 실행하는 노드입니다.
  4. Web Server: Airflow의 UI를 제공하며, DAG와 태스크의 상태를 모니터링하고 관리할 수 있게 합니다.
  5. Metadata Database: DAG와 태스크의 상태, 로그, 설정 등을 저장하는 데이터베이스입니다.

image.png

Untitled

Executor 종류

  1. SequentialExecutor: 태스크를 하나씩 순차적으로 실행합니다.
  2. LocalExecutor: 병렬 실행이 가능하며, 로컬 시스템의 여러 프로세스를 사용합니다.
  3. CeleryExecutor: 분산 실행을 지원하며, Celery를 사용하여 여러 워커 노드에서 태스크를 병렬로 실행합니다. (Celery: 분산 작업 큐 프레임워크**)**