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