Airflow란

박지은·2023년 6월 24일

Airflow Tutorial

목록 보기
1/4

Airflow 란

Airflow는 데이터 파이프라인을 관리하기 위한 오픈소스 플랫폼 입니다. 대규모 데이터 처리 작업을 지원하기 위해 설계되었으며, 다양한 데이터 소스와 대상을 연결할 수 있습니다.

Airflow의 특징

  1. 스케줄링과 의존성 관리
  • Airflow는 작업 간의 의존성을 저으이하고 일정에 따라 작업을 실행할 수 있습니다. 작업 간의 의존성을 명확하게 설정하여 데이터 파이프라인을 효율적으로 관리할 수 있습니다.
  1. 확장성과 모듈성
  • Airflow는 플러그인 아키텍처를 통해 다양한 데이터 소스와 대상을 연결할 수 있습니다. 사용자는 필요에 따라 커스텀 플러그인을 작성하거나 기존 플러그인을 사용해 Airflow를 확장할 수 있습니다.
  1. 코드 기반 작업 정의
  • Airflow의 작업은 파이썬 코드로 작성됩니다. 이는 작업의 유연성과 확장성을 제공하며, 사용자는 파이썬을 통해 사용자 정의 작업을 쉽게 작성하고 실행할 수 있습니다.
  1. 강력한 모니터링 및 알림 기능
  • Airflow는 작업 실행 결과를 추적하고, 실패한 작업에 대한 재시도 및 경고를 관리할 수 있습니다. 사용자는 대시보드를 통해 작업의 실행상태를 실시간으로 모니터링하고, 필요한 경우 알림을 받을 수 있습니다.

데이터 파이프라인이란?

Airflow에서 관리한다는 데이터 파이프라인은 데이터 처리 작업의 일련의 단계를 의미합니다. 이러한 단계는 데이터의 추출, 변환, 로드(ETL)과정을 포함하며, 데이터의 원본에서 목적지까지의 흐름을 관리하고 조절하는 것을 목표로 합니다.

데이터 파이프라인의 구성

  1. 데이터 추출(Extract)
    다양한 데이터 원본에서 데이터를 추출합니다. 데이터 원본은 데이터베이스, 파일 시스템, 웹 서비스, 외부 API등 여러 소스일 수 있습니다.
  2. 데이터 변환(Transform)
    추출한 데이터를 필요한 형식으로 변환하고 정제합니다. 이 단계에서 데이터의 정확성을 검증하고, 필요한 가공 작업을 수행합니다. 데이터를 필터링, 집계, 정규화, 조인 등의 작업을 통해 최종적으로 필요한 형태로 가공합니다.
  3. 데이터 로드(Load)
    변환된 데이터를 목적지로 로드합니다. 목적지는 데이터 웨어하우스, 데이터베이스, 데이터 레이크 등이 될 수 있으며, 데이터를 영구적으로 저장하고 분석이나 활용을 위해 준비합니다.

Airflow의 구조

Airflow에서 각 workflow는 DAG(Directed Acyclic Graph)로 표현되며, 각 workflow는 Tasks라 불리우는 각 작업들로 구성되어 있습니다.

Core architecture


Airflow는 크게 5가지로 구성되어 있습니다.

  1. Scheduler
    예정된 workflow를 관리하며, Executor로 하여금 Task들을 실행하게 합니다.

  2. Executor
    실행중인 Task들을 관리하며, worker로 하여금 실제로 Task에 대한 작업을 수행하게 합니다.

  3. Webserver
    사용자 interface를 제공하여 웹 사이트 상에서 DAG 작업의 동작을 검사, 실행 및 디버깅 할 수 있습니다.

  4. Dag files
    Scheduler와 Executor, Executor가 가지고 있는 worker들이 읽어들입니다.

  5. Metadata Database
    Scheduler, Executor, Webserver가 상태 저장을 위해 이용합니다.

Reference

[1] https://airflow.apache.org/docs/apache-airflow/stable/index.html
[2] https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/overview.html

profile
Today I learned...

0개의 댓글