728x90
반응형
Apache Airflow 특징
Apache Airflow는 워크플로우 관리 및 스케줄링 플랫폼으로, 데이터 파이프라인의 실행 및 자동화를 지원합니다. 주로 복잡한 데이터 파이프라인, ETL(Extract, Transform, Load) 작업을 관리하는 데 사용되며, 작업 간의 종속성을 쉽게 정의하고 실행할 수 있는 환경을 제공합니다.
⚙ DAG (Directed Acyclic Graph) 기반 워크플로우
- Airflow에서 워크플로우는 **DAG(Directed Acyclic Graph, 방향성 비순환 그래프)**로 정의됩니다. DAG는 각 작업(Task)이 어떤 순서로 실행되어야 하는지 정의한 구조로, 작업 간의 종속성을 명확히 관리할 수 있습니다.
⚙ Python으로 정의
- Airflow 워크플로우는 Python 코드로 정의됩니다. Python을 사용하여 작업 간의 관계, 트리거, 조건 등을 유연하게 정의할 수 있습니다.
⚙ 스케줄링 기능
- 작업을 스케줄링할 수 있어, 매일, 매주, 매시간 혹은 지정된 시간에 작업을 자동으로 실행할 수 있습니다. 정기적인 데이터 처리 및 보고서 생성에 적합합니다.
⚙ 확장성
- Airflow는 수백 개의 작업을 병렬로 처리할 수 있는 확장성을 제공합니다. 여러 워커 노드를 통해 작업을 분산 처리할 수 있으며, 클러스터에서 실행 가능해 대규모 데이터 파이프라인 처리에 적합합니다.
⚙ 다양한 연동성
- Airflow는 다양한 외부 시스템과 쉽게 연동할 수 있습니다. 예를 들어, AWS, Google Cloud, Microsoft Azure, MySQL, PostgreSQL, Hadoop, Spark 등과의 통합을 지원하는 플러그인과 연결 도구를 제공합니다.
⚙ 실패 처리 및 재시도
- 작업 실패 시 재시도 로직을 쉽게 정의할 수 있습니다. 특정 횟수만큼 재시도 후 실패 처리를 하거나, 다음 작업에 영향을 주지 않도록 설정할 수 있습니다.
⚙ 실시간 모니터링
- 웹 UI를 통해 DAG의 실행 상태를 실시간으로 모니터링할 수 있습니다. 작업이 성공, 실패, 재시도 상태인지 확인하고 필요한 경우 직접 실행하거나 수정할 수 있습니다.
⚙ 동적 파이프라인
- Airflow는 동적 파이프라인을 지원합니다. 실행 시점에 조건에 따라 작업이 추가되거나 제거되는 동적 파이프라인을 구성할 수 있습니다.
⚙ 로그 및 알림 시스템
- 각 작업의 실행 로그를 기록하며, 작업 상태(성공, 실패, 재시작 등)에 따라 이메일 알림 또는 Slack과 같은 메시징 서비스를 통한 알림을 받을 수 있습니다.
⚙ 템플릿 및 매크로 지원
- Airflow는 Jinja 템플릿 엔진을 사용하여 템플릿과 매크로를 지원합니다. 이를 통해 복잡한 파이프라인 작업을 쉽게 처리할 수 있으며, 파라미터화된 작업 흐름을 구성할 수 있습니다.
⚙ Task Dependencies
- Airflow는 작업 간의 종속성을 직관적으로 정의할 수 있습니다. 이전 작업이 성공해야만 다음 작업이 실행되는 식으로, 작업 순서를 명확하게 정의할 수 있습니다.
728x90
반응형
'개발중 > AirFlow' 카테고리의 다른 글
[Airflow] DAG Objuect 작성 방법 (0) | 2025.04.21 |
---|---|
[Airflow] DAG (Directed Acyclic Graph) 란 ? (0) | 2025.04.21 |
Airflow DAG에서 모듈 임포트가 안 될 때: 상대경로 vs 절대경로 해결 (0) | 2025.04.07 |
[Airflow] 아주 간단한 DAG 실행시키기 (0) | 2025.04.03 |
[Airflow] Airflow 병렬 처리의 함정: Worker 분산 없이 처리하면? (0) | 2024.10.10 |
댓글