AirFlow ch01. 개요
인프런 강의
- 취준생을 위한 강의를 제작하였습니다.
- 본 블로그를 통해서 강의를 수강하신 분은 게시글 제목과 링크를 수강하여 인프런 메시지를 통해 보내주시기를 바랍니다.
스타벅스 아이스 아메리카노를 선물
로 보내드리겠습니다.
- [비전공자 대환영] 제로베이스도 쉽게 입문하는 파이썬 데이터 분석 - 캐글입문기
공지
- Airflow 2.0 원서 나온 것을 공부용으로 활용합니다.
Airflow Project
- 이 책에 나온 내용을 Chapter별로 요약하여 정리하려고 한다.
- 원서 구매 페이지는 아래와 같다.
- 구매 페이지: Data Pipelines with Apache Airflow
Chapter 1. Apache Airflow Introduction
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
-
기상청 API를 활용하여 대시보드를 만든다고 가정한다.
- 우선 API를 통해 데이터를 획득한다.
- 가공 목적에 맞게끔 데이터를 가공한다.
- 대시보드를 작성한 후, 주기적으로 데이터를 업데이트 한다.
-
위 단계는 그림으로 표현하면 아래와 같다.
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).
-
위 그림은 DAG라 지칭한다. DAG는 Directed Acyclic Graph의 약어이다.
-
그런데, ML 세계에서는 좀 더 복잡하다. Weather 데이터와 Sales 데이터를 하나로 통합한 후, 머신러닝 모델을 만든 후, 배포하기 때문이다. 아래 그림을 확인하자.
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
-
여기에서 주목할 점은, Weather API와 Sales 데이터 수집 및 전처리는 독립적으로 작업할 수 있지만, 머신러닝 학습을 수행하기 전에는 동시에 수행해야 한다는 점이다.
-
만약 1개의 스크립트로만 관리할 경우, 만약에 Sales 데이터에서 unknown 데이터가 인입되어, 전체 전처리 작업에 문제가 생긴다면, 전체 과정이 멈출 가능성도 있으며, Pipeline 관리의 필요성이 대두된 시점이다.
-
이러한 문제점을 해결하기 위해 다양한 Workflow Management 솔루션들이 등장했다.
Table 1.1 Overview of several well-known workflow managers and their key characteristics.
-
Airflow를 활용하면 Python 코드로 DAG를 관리할 수 있다.
-
코드로 관리한다는 것은 재현성 및 확장성을 포함한 커스터마이즈를 높여줄 수 있다. 마지막 프로젝트에서 Airflow를 활용하여 다양한 클라우드와 연동하는 예제를 실행한다.
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.
-
-
Airflow의 DAG는 크게 3가지로 구성이 된다.
- Airflow Scheduler: DAG의 Workers 실행 시간 또는 간격을 조정한다.
- Airflow Workers: 스케줄링된 작업을 수행하는 것을 말한다.
- Airflow Webserver: 수행중인 DAG를 모니터링할 수 있는 Web UI를 제공한다.
-
Airflow의 아키텍처를 그림으로 표현하면 다음과 같다.
Figure 1.9 Schematic overview of the process involved in developing and executing pipelines as DAGs using Airflow