Overview
Apache Airflow는 워크플로우를 작성하고 스케줄링하며 모니터링할 수 있는 오픈 소스 플랫폼입니다. 주로 데이터 엔지니어링 분야에서 데이터 파이프라인의 자동화와 관리를 위해 사용됩니다.
주요 기능
- 워크플로우 정의: Airflow는 워크플로우를 파이썬 코드로 정의할 수 있습니다. 이를 통해 복잡한 작업 흐름을 유연하게 설계하고 관리할 수 있습니다.
- 스케줄링: 정해진 시간이나 주기에 따라 작업을 자동으로 실행하도록 스케줄링할 수 있습니다.
- 모니터링 및 관리: 웹 기반의 사용자 인터페이스를 통해 작업의 상태를 실시간으로 모니터링하고 관리할 수 있습니다.
- 확장성: 다양한 외부 시스템과의 연동을 지원하며, 필요에 따라 기능을 확장할 수 있습니다.
사용 이유
- 자동화된 데이터 파이프라인 관리: 데이터 수집, 처리, 분석 등의 과정을 자동화하여 효율성을 높일 수 있습니다.
- 복잡한 워크플로우 처리: 작업 간의 의존성 관리와 조건부 실행 등을 통해 복잡한 워크플로우를 효과적으로 처리할 수 있습니다.
- 유연한 스케줄링: 다양한 주기와 조건에 따른 작업 스케줄링이 가능하여, 작업의 효율적인 실행을 도모할 수 있습니다.
Concept
Workflow는 DAG(Directed Acyclic Graph)로 표시되며, 종속성과 데이터 흐름을 고려하여 정렬된 Tasks를 포함한다.
Airflow는 일반적으로 다음 요소로 구성된다.
- 예약된 workflow를 트리거하고 Executor에 task를 제출하는 작업을 처리하는
Scheduler.
- 실행 중인 Task를 처리하는
Executor.
- DAG 및 작업의 동작을 검사 및 디버그할 수 있는 GUI를 제공하는
Web Server.
- Scheduler와 Executor가 읽는
DAG File Directory.
- 상태를 저장하기 위해 사용하는
Metadata.