
안녕하세요 !
오늘은 Airflow에 대해 알아보며 구성요소와 특징 등을 소개하고 언제 Airflow를 사용하면 좋은지, 어떨 때는 적합하지 않은지에 대해서 알아보도록 하겠습니다.
Airflow는 Data Orchestrator으로 파이프라인이나 워크플로 태스크를 정의할 수 있습니다.
Data Orchestrator로써 Airflow는 데이터를 원하는 순서 방식으로 다루며 파이프라인 스케줄링 및 실행 기능을 가지고 있습니다.
DAG를 작성하면 Airflow는 구조를 식별하기 위해 코드를 파싱하게 됩니다. DAG 파일에는 추가 메타데이터를 포함할 수 있습니다.
- Airflow Scheduler : DAG를 분석하고 Worker에 DAG Task를 예약함
- Airflow Worker : 예약된 Task를 선택하고 실행
- Airflow Webserver : 스케줄러에서 분석한 DAG 시각화 및 DAG 실행, 결과를 확인할 수 있는 인터페이스 제공
- Python을 사용하여 DAG 정의.
- 태스크 간의 의존성, 리소스 등을 자유롭게 정의하고 처리 가능.
- 모니터링 등을 쉽게 할 수 있도록 UI 제공.
- 다양한 외부 툴과 협업이 가능.
위와 같은 특징을 보아해서 Airflow는 배치 지향 데이터 파이프라인을 구현하는데 적합할 수 있습니다.
- 파이썬을 사용해 복잡한 커스텀 파이프라인을 만들 수 있음.
- Airflow는 쉽게 확장이 가능하고 다양한 시스템과 통합이 가능함.
- 수많은 스케줄링 기법을 통해 효율적인 파이프라인 구축이 가능함.
- 백필 기능을 사용하면 과거 데이터를 손쉽게 재처리 할 수 있음.
- Airflow 웹 인터페이스로 파이프라인 실행 결과를 쉽게 모니터링, 디버깅 할 수 있음.
- Airflow가 오픈소스임.
- 실시간 데이터(스트리밍) 처리 워크플로 및 해당 파이프라인 처리가 어려움.
- 추가 및 삭제 태스크가 빈번한 동적 파이프라인에 적합하지 않을 수 있음.