Airflow
는 파이썬으로 작성된 데이터 파이프라인 (ETL) 프레임워크이다.Python Flask
로 구현스케줄러
와 DAG
의 실행 상황을 시각화DAG
을 워커들에게 배정하는 역할 수행 DAG
를 실행하는 역할 수행 sqlite
지만 보통 별도로 MySQL
이나 PostgreSQL
등을 따로 설치해 사용✍ Airflow 스케일링 방법
- 스케일 업
- 더 좋은 사양의 서버 사용
- 대신 어느 정도 지나면 한계에 달할 수 있음
- 스케일 아웃
- 서버 추가
- 다 다르겠지만 스케일 아웃을 하면 비용이 많이 들고, 관리도 더 힘들어지기 때문에 일단 스케일 업을 진행한다. 계속 스케일 업을 진행하다 한계에 달하게 되면 스케일 아웃을 하게 되는데 서버를 추가하는 게 아니라 Airflow를 제공하는 클라우드 서비스를 통한 스케일 아웃을 한다.
✍ 여러 종류의 Executor들
Executor
란 스케줄러가 워커에게 바로 데이터를 전달하는 게 아니라Executor
를 통해 전달하게 된다.- default는
Sequential Executor
지만 제약이 많다.- 종류
- Sequential Executor
- Local Executor
- Celery Executor
- Kubernetes Executor
- CeleryKubernetes Executor
- Dask Executor
Airflow
에서는 Data Pipeline, Data Workflow을 DAG(Directed Acyclic Graph)
라고 부른다.Directed
가 붙는다.Acyclic
이라고 한다.DAG
는 하나 이상의 태스크로 구성이 된다. 즉, 태스크의 집합이다. Airflow
의 오퍼레이터(Operator)
로 만들어짐