[Airflow] 1. Apache Airflow란?

Denver·2022년 9월 11일
0

Airflow

목록 보기
3/11
post-thumbnail

✏️ Airflow란?

Airlfow는 Workflow 관리 도구이다.
(Airflow는 데이터 스트리밍 솔루션도 아니고, data processing framework도 아니다.)
Airbnb에서 개발했고, 2016년에 Apache 프로젝트가 되었다.


🤷 그럼 Workflow는 뭔데?

Workflow란 말 그래도 작업 흐름이다. 데이터 ETL을 예시로 들어보면,
Extract, Transform, Load 작업이 순서대로 실행된다. 이렇게 순서가 있는 작업 과정을 workflow라고 한다.


Airflow로 workflow를 Python 코드로 작성하고, UI로 스케줄링, 모니터링 할 수있다.



📌 Airflow Architecture

Airflow의 아키텍쳐는 위에 그림처럼 Meta Database, Worker, Scheduler, Executor, Webserver 로 구성되어있다.

컴포넌트

  • DAG Directory : python 코드로 작성된 DAG 들을 보관하는 장소이다.
  • Scheduler : DAG와 Task를 모니터링하고 스케줄링한다. Executor에게 Task 실행을 요청한다.
  • Executor : Task가 어떻게 실행될지를 정의한다. 'queued' 상태인 Task를 확인해 실제 어떤 리소스가 투입되어 실행 될 것인지를 결정한다.
  • Worker : 실제 Task를 처리하는 컴포넌트이다. Executor 종류에 따라 동작 방식이 다양하다.
  • Webserver : 실행 로그, DAG 목록, Task 상태 등을 시각화해서 사용자가 스케줄 관리, 디버깅을 할 수 있도록 사용자 인터페이스를 제공한다.
  • Metadata Database : Scheduler, Executor, Webserver 에서 사용하는 메타데이터가 저장된다.



DAG란?

DAG(Directed Acyclic Graph. 방향 비순환 그래프)는 알고리즘 공부를 할 때 공부했던 그 DAG인데, 순환하는 싸이클이 존재하지 않는 그래프를 말한다.
DAG에는 Task간의 종속성과 Task을 실행하고 재시도를 실행하는 순서를 지정한다. Task 자체는 데이터 가져오기, 분석 실행, 다른 시스템 트리거 등 수행할 작업을 정의한다.

profile
까먹었을 미래의 나를 위해

0개의 댓글