Airflow에서의 병렬 처리
1. Airflow의 Executor
- 병렬처리는 어떤 Executor를 사용하는지에 따라 가능 여부가 달라진다.
- Sequential Executor는 병렬처리가 불가능하며, Local 또는 Celery Executor는 병렬처리가 가능하다.
- 따라서 병렬처리를 하기 위해서는 Local, Celery 등의 Executor가 필요하며
- 따라서 PostgreSQL이나 MySQL과 같은 메타데이터 DB가 반드시 필요하다. (내부 SQLite만으로는 불가)
2. LocalExecutor와 CeleryExecutor 비교
| 구분 |
LocalExecutor |
CeleryExecutor |
| 병렬 처리 |
가능 (한 컴퓨터 내 프로세스 단위) |
가능 (여러 컴퓨터/워커 단위) |
| 필요 서비스 |
Airflow + Postgres |
Airflow + Postgres + Redis + Worker |
| 복잡도 |
낮음 (설정 간단) |
높음 (관리할 컨테이너 많음) |
| 장점 |
리소스를 적게 먹고 관리가 쉬움 |
워커를 수십 대까지 늘릴 수 있음(확장성) |
| 적합한 상황 |
개인 프로젝트 또는 소규모 서비스 |
대규모 데이터 엔지니어링 팀 |
Comments