Data Engineering/Airflow

[Airflow] Airflow 아키텍처

sangwonYoon 2023. 7. 25. 14:55

DAG 디렉토리

  • DAG 파일들을 저장한다.
  • 이 디렉토리 내부의 python 스크립트 파일은 Scheduler에 의해 탐색되고 DAG을 파싱한다.

 

Scheduler

  • 각종 메타 정보의 기록을 담당한다.
  • DAG 디렉토리 내부의 python 스크립트 파일에서 DAG를 파싱하여 DB에 저장한다.
  • 실행 진행 상황과 결과를 DB에 저장한다.
  • Excutor를 통해 실제로 스케줄링된 DAG를 실행한다.

 

Executor

  • 스케줄링된 DAG를 Workers에게 작업을 실행시키는 역할을 한다.
  • 크게 Local Executor와 Remote Executor로 나눌 수 있다.
  • Local Executor는 DAG Run을 프로세스 단위로 실행한다.
  • Remote Executor는 DAG Run을 외부 프로세스로 실행한다.

 

Workers

  • DAG의 작업을 실행한다.
  • 프로세스 또는 쿠버네티스의 pod이 workers에 해당한다.

 

Metadata Database

  • 메타 정보를 저장하는 공간이다.
  • Scheduler에 의해 메타 정보가 저장된다.
  • 파싱한 DAG 정보, DAG Run 상태와 실행 내용, task 정보 등을 저장한다.
  • 일반적으로 MySQL 또는 PostgreSQL을 사용한다.

 

Webserver

  • WEB UI를 담당한다.
  • Metadata Database와 통신하며 유저에게 필요한 메타 정보를 웹 브라우저에 시각화한다.
  • 사용자들은 Webserver를 통해 DAG를 On/Off 하는 등의 상호 작용을 할 수 있다.

 

 

 

 

'Data Engineering > Airflow' 카테고리의 다른 글

[Airflow] DAG 작성하기  (0) 2023.07.25
[Airflow] Airflow 설치 및 실행하기  (0) 2023.07.25