본문 바로가기

IT/NiFi

Apache Airflow

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