Airlfow는 Workflow 관리 도구이다.
(Airflow는 데이터 스트리밍 솔루션도 아니고, data processing framework도 아니다.)
Airbnb에서 개발했고, 2016년에 Apache 프로젝트가 되었다.
Workflow란 말 그래도 작업 흐름이다. 데이터 ETL을 예시로 들어보면,
Extract, Transform, Load 작업이 순서대로 실행된다. 이렇게 순서가 있는 작업 과정을 workflow라고 한다.
Airflow로 workflow를 Python 코드로 작성하고, UI로 스케줄링, 모니터링 할 수있다.
Airflow의 아키텍쳐는 위에 그림처럼 Meta Database, Worker, Scheduler, Executor, Webserver 로 구성되어있다.
DAG(Directed Acyclic Graph. 방향 비순환 그래프)는 알고리즘 공부를 할 때 공부했던 그 DAG인데, 순환하는 싸이클이 존재하지 않는 그래프를 말한다.
DAG에는 Task간의 종속성과 Task을 실행하고 재시도를 실행하는 순서를 지정한다. Task 자체는 데이터 가져오기, 분석 실행, 다른 시스템 트리거 등 수행할 작업을 정의한다.