개발중/AirFlow

[Airflow] Apache Airflow 특징

Binsoo 2025. 4. 21.
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
반응형

댓글