300x250
Apache Airflow 정의
- Apache Airflow는 워크플로우(workflow)를 작성, 스케줄링 및 모니터링하는 오픈소스 플랫폼입니다. 복잡한 데이터 파이프라인을 관리할 수 있도록 설계되었으며, DAG(Directed Acyclic Graph, 방향 비순환 그래프) 개념을 사용하여 작업(task) 간의 의존성을 정의합니다.
- Airflow는 Python 기반으로 개발되었으며, ETL(Extract, Transform, Load), 데이터 파이프라인 자동화, 머신러닝 모델 배포, DevOps 작업 등 다양한 분야에서 사용됩니다.
Apache Airflow 주요 특징
1. DAG(Directed Acyclic Graph) 기반
- 모든 워크플로우는 DAG(방향 비순환 그래프) 구조로 구성됩니다.
- DAG 안에는 여러 개의 Task(작업 단위)가 존재하며, 각각의 Task는 실행 순서를 정의할 수 있습니다.
2. 풍부한 스케줄링 기능
- crontab과 유사하게 정해진 주기(cron-like scheduling)로 작업을 실행할 수 있습니다.
- 특정 조건이 충족될 때만 실행하는 트리거 기반 실행도 가능합니다.
3. 확장성 높은 실행 방식
- Task 실행 방식이 유연하며, 멀티 노드 환경, 컨테이너(Docker, Kubernetes) 기반 실행이 가능합니다.
- Celery Executor, Kubernetes Executor 등을 사용하여 확장성을 높일 수 있습니다.
4. Python 기반으로 유연한 워크플로우 작성 가능
- DAG와 Task를 Python 코드로 정의하여 코드 기반으로 워크플로우를 작성할 수 있습니다.
- 다양한 외부 라이브러리와 연결이 용이합니다.
5. 강력한 모니터링 및 로깅 기능
- Web UI를 제공하여 Task 실행 상태를 시각적으로 확인하고, 실패한 작업을 재시도할 수 있습니다.
- 각 Task의 로그를 저장하여 문제 발생 시 디버깅이 용이합니다.
6. 다양한 연동 지원
- AWS, Google Cloud, Azure 등의 클라우드 서비스와 연동 가능
- Hadoop, Spark, Hive, PostgreSQL, MySQL, Snowflake 등 다양한 데이터 소스와 연결 가능
- REST API와 CLI(Command Line Interface)를 제공하여 자동화 작업 수행 가능
Apache Airflow 활용 사례
1. 데이터 엔지니어링 및 ETL 파이프라인
- 데이터 수집 → 변환 → 저장(ETL) 자동화
- 예: 매일 밤 12시에 로그 데이터를 수집하여 데이터 웨어하우스로 저장
2. 머신러닝 모델 배포 및 관리
- 모델 학습, 검증, 배포 과정을 자동화
- 예: 매주 새로운 데이터를 이용해 머신러닝 모델을 학습시키고 성능을 평가한 후, 기준을 만족하면 배포
3. DevOps 및 인프라 자동화
- 서버 유지보수, 백업, CI/CD(Continuous Integration & Deployment) 자동화
- 예: 코드 변경 사항을 감지하여 자동으로 빌드 및 배포 진행
4. 로그 및 모니터링 데이터 분석
- 시스템 로그 데이터를 정기적으로 수집 및 분석
- 예: 서버 로그를 매시간 분석하여 이상 징후를 탐지하고 알람 전송
5. 금융 데이터 및 거래 자동화
- 주식 데이터 수집 및 트레이딩 봇 실행
- 예: 주식시장 개장 시간마다 최신 데이터를 수집하고, 조건에 맞으면 자동으로 거래 수행
300x250
'IT > NiFi' 카테고리의 다른 글
Apache NiFi 소개 및 특징 (2) | 2025.02.24 |
---|---|
NiFi - 크론탭 (0) | 2025.02.23 |
NiFi - Active Thread Dead (0) | 2025.02.13 |
NiFi - FlowFile Repository와 Content Repository 설정 (0) | 2025.02.03 |