에어플로우 소개
- 아파치 에어플로우는 Python으로 작성된 오픈소스 워크플로우 관리 도구
- 전체적인 파이프라인 생성이 가능하며 확장성과 유연성을 갖춤
- 머신러닝 분야와 데이터 엔지니어링 분야에서 널리 사용됨
환경 구축 방법
- 환경 구축 방법은 크게 두 가지: PIP 설치와 Docker 컨테이너 사용
- Docker 컨테이너를 활용하는 방법이 더 확장성이 높고 유연함
- 실습에서는 Docker 기반으로 진행:
- Dockerfile 작성
- Docker 이미지 빌드
- 컨테이너 실행
- 에어플로우 웹서버 접속
DAG(Directed Acyclic Graph) 이해
- DAG는 방향성을 가진 비순환 그래프로 에어플로우 워크플로우의 핵심 구성요소
- 주요 구성요소:
- Task: DAG 내에서 실행되는 개별 작업 단위
- Dependency: 작업 간의 의존성 관계
- Operator: 작업을 수행하는 객체 (Python, Bash 등)
- DAG는 Python 스크립트로 정의
실습 1: Hello Airflow DAG
- 문장 "hello airflow dag fast campus lecture we can do it"의 단어를 순차적으로 출력하는 DAG 생성
- 각 단어를 출력하는 개별 Task 생성
- PythonOperator를 사용하여 Task 구현
- Task 간의 의존성 설정으로 순차적 실행
- DAG 실행 및 결과 확인

실습 2: 머신러닝 워크플로우 DAG
- 머신러닝 개발 과정을 자동화하는 워크플로우 구현
- 구성된 워크플로우:
- Feature Engineering
- Random Forest 모델 학습
- Gradient Boosting 모델 학습
- 최적 모델 선택
- XCom을 활용하여 Task 간 데이터 전달
- Iris 데이터셋을 활용한 모델 학습 및 평가
- 결과: Gradient Boosting이 0.97의 성능으로 최적 모델로 선택됨
