Airflow 소개

2023. 7. 31. 18:26Airflow

회사에 입사 후 여러 사업에 참여하면서 데이터 분석을 할 때 굉장히 불편한 점을 많이 느꼈다. 분석과 데이터 엔지니어 일이 나눠져 있어서 불편한 경우가 한두가지가 아니었는데 새로운 데이터가 필요할 때면 항상 직접 처리하지 못하고 일일히 부탁해야된다는 점이 가장 불편했던거 같다. 

 

현재는 NiFi라는 툴을 이용해 SI 사업을 진행 중이지만 앞으로 미래엔 점차 Airflow로 바뀌어가지 않을까하는 마음과 Python으로 데이터를 다룰 수 있다는 점에 Airflow를 배워보려고 한다. 

("Apache Airflow 기반의 데이터 파이프라인" 이라는 책을 정리하면서 공부하려고 한다.)

 

Airflow 장점

1. 파이썬 코드를 사용한 유연한 파이프라인 정의

Airflow는 파이썬 스크립트로 DAG(워크플로우 테스크)의 구조를 설명하고 구성한다고함, 테스크의 집합 , 테스크간의 의존성 등을 기술하고 실행 방법과 시간 등 추가 메타데이터가 여기에 포함된다.

이때 파이썬 코드로 구성하는 것의 장점은 시간에 지남에 따라 다양한 확장 기능에 유연하게 대처할 수 있다는 점이라고 한다.

 

2. 파이프라인 스케줄링 및 실행

출처 Airflow 공식 홈페이지

Airflow의 구성 요소 :

  • Airflow 스케줄러 - Dag를 분석하고 현재 시점에서 Dag의 스케줄이 지난경우 Airflow 워커에서 Dag의 테스크 에약
  • Airflow 워커 - 예약된 태스크 선택 및 실행
  • Airflow 웹서버 - 스케줄러에서 분석한 Dag를 시각화하며 Dag 실행 결과를 확인할 수 있는 주요 인터페이스 제공

Cron 등으로 스케줄러를 활용해 배치를 결정할 수 있으며 워커에서 분산처리가 가능하고 이 실행 결과를 웹서버에서 편리하게 확인하고 관리할 수 있음

 

3. 모니터링과 실패 처리

실행 결과 뿐만 아니라 태스크 별 결과와 로그도 제공하며 실패한 태스크에 대해 재실행 및 재시도를 설정할 수 있음

태스크 별 재실행도 가능함

4. 점진적 로딩 및 백필

Dag에 정의된 특정 시점에 트리거할 수 있으며 데이터 파이프라인을 점진적으로 실행해 매번 전체 데이터 세트를 다시 처리할 필요 없이 해당 시간 스롯에 대한 데이터만 처리함으로 효율적이며, 백필이라는 기능으로 과거에 특정 기간에 대해 손쉽게 데이터를 생성할 수 있는 기능이 있다.

 

배치 지향 데이터 파이프라인을 구현하는데 적합하며, 스트리밍 워크플로나 동적 파이프라인의 경우에는 적합하지 않을 수 있다고한다.

 

'Airflow' 카테고리의 다른 글

Airflow PythonSensor 실습  (0) 2023.08.17
Airflow 코스피 지수 크롤링  (0) 2023.08.11
Airflow 동적 날짜 변수  (0) 2023.08.08
Airflow + PostgresSQL 연동시키기  (0) 2023.08.04
AIRFLOW 도커로 시작하기  (0) 2023.07.28