AirFlow ch01. 개요

Page content

인프런 강의

공지

  • Airflow 2.0 원서 나온 것을 공부용으로 활용합니다.

Airflow Project

Airflow%20Project%20ad0ddb927b43444a9837279ad7ea27fe/book_cover.png

  • 이 책에 나온 내용을 Chapter별로 요약하여 정리하려고 한다.
  • 원서 구매 페이지는 아래와 같다.
  • 구매 페이지: Data Pipelines with Apache Airflow

Chapter 1. Apache Airflow Introduction

Airflow%20Project%20ad0ddb927b43444a9837279ad7ea27fe/figure_1-1.png

Figure 1.1 Overview of the weather dashboard use case, in which weather data is fetched from an external API and fed into a dynamic dashboard

  1. 기상청 API를 활용하여 대시보드를 만든다고 가정한다.

    • 우선 API를 통해 데이터를 획득한다.
    • 가공 목적에 맞게끔 데이터를 가공한다.
    • 대시보드를 작성한 후, 주기적으로 데이터를 업데이트 한다.
  2. 위 단계는 그림으로 표현하면 아래와 같다.

    Airflow%20Project%20ad0ddb927b43444a9837279ad7ea27fe/figure_1-2.png

    Figure 1.2 Graph representation of the data pipeline for the weather dashboard. Nodes represent tasks and directed edges represent dependencies between tasks (with an edge pointing from task A to task B, indicating that task A needs to be run before task B).

  3. 위 그림은 DAG라 지칭한다. DAGDirected Acyclic Graph의 약어이다.

  4. 그런데, ML 세계에서는 좀 더 복잡하다. Weather 데이터와 Sales 데이터를 하나로 통합한 후, 머신러닝 모델을 만든 후, 배포하기 때문이다. 아래 그림을 확인하자.

    Airflow%20Project%20ad0ddb927b43444a9837279ad7ea27fe/figure_1-5.png

    Figure 1.5 Overview of the umbrella demand use case, in which historical weather and sales data are used to train a model that predicts future sales demands depending on weather forecasts

  5. 여기에서 주목할 점은, Weather API와 Sales 데이터 수집 및 전처리는 독립적으로 작업할 수 있지만, 머신러닝 학습을 수행하기 전에는 동시에 수행해야 한다는 점이다.

  6. 만약 1개의 스크립트로만 관리할 경우, 만약에 Sales 데이터에서 unknown 데이터가 인입되어, 전체 전처리 작업에 문제가 생긴다면, 전체 과정이 멈출 가능성도 있으며, Pipeline 관리의 필요성이 대두된 시점이다.

  7. 이러한 문제점을 해결하기 위해 다양한 Workflow Management 솔루션들이 등장했다.

    Airflow%20Project%20ad0ddb927b43444a9837279ad7ea27fe/table_1_1.png

    Table 1.1 Overview of several well-known workflow managers and their key characteristics.

  8. Airflow를 활용하면 Python 코드로 DAG를 관리할 수 있다.

    • 코드로 관리한다는 것은 재현성 및 확장성을 포함한 커스터마이즈를 높여줄 수 있다. 마지막 프로젝트에서 Airflow를 활용하여 다양한 클라우드와 연동하는 예제를 실행한다.

      Airflow%20Project%20ad0ddb927b43444a9837279ad7ea27fe/figure_1_7.png

      Figure 1.7 Airflow pipelines are defined as DAGs using Python code in DAG files. Each DAG file typically defines one DAG, which describes the different tasks and their dependencies. Besides this, the DAG also defines a schedule interval that determines when the DAG is executed by Airflow.

  9. Airflow의 DAG는 크게 3가지로 구성이 된다.

    • Airflow Scheduler: DAG의 Workers 실행 시간 또는 간격을 조정한다.
    • Airflow Workers: 스케줄링된 작업을 수행하는 것을 말한다.
    • Airflow Webserver: 수행중인 DAG를 모니터링할 수 있는 Web UI를 제공한다.
  10. Airflow의 아키텍처를 그림으로 표현하면 다음과 같다.

    Airflow%20Project%20ad0ddb927b43444a9837279ad7ea27fe/figure_1_9.png

    Figure 1.9 Schematic overview of the process involved in developing and executing pipelines as DAGs using Airflow