주제
워크플로우 스케쥴링이 필요한 이유와 관련 툴인 Airflow에 대해 배웠다.
앞선 강의에서 데이터베이스에서 데이터를 가져오는 방법과 병렬 컴퓨팅 프레임워크에 대해서 배웠다.
이 모든 작업을 통합하는 과정이 필요한데, 이번 장에서 배우는 워크플로우 스케쥴링 프레임워크를 사용하여 통합 작업을 조정할 수 있다.
예제 파이프라인
CSV 데이터를 추출하여 Spark에서 일부 레코드를 필터링하는 등의 처리를 하여 분석 데이터베이스에 데이터를 로드하는 예시가 있다.
매일 새로운 CSV 파일이 들어와 이 작업을 매일 수행해야한다고 생각해보자.
어떻게 수행할 수 있을까?
- 수동 작업하기
cron
스케쥴링 도구 활용하기
- 의존성 문제
- 중간에 다른 작업이 추가되어야 한다면?
- 전체적인 접근이 필요하고 간단한 도구로 처리하기 어려움
방향성 비순환 그래프(DAGs)
종속성을 시각화하기 가장 좋은 방법은 DAG를 사용하는 것이다.
DAGs
- 노드 집합으로 구성되어있다.
- 그림처럼 방향이 있는 엣지로 연결된다.
- 싸이클을 갖지 않는다.
종속성을 위한 DAG 예약을 위한 도구
- Linux - cron
- Spotify - Luigi
- Apache - Airflow
Airflow는 Airbnb에서 만들었고 Python을 사용하여 개발자는 복잡한 파이프라인을 구축하는 DAG를 만들고 테스트할 수 있다.
Airflow : DAG 예제
- Spark 클러스터를 시작한다.
- ingest_customer_data, ingest_product_data 작업을 실행한다.
- 2단계 작업이 수행된 후, enrich_customer_data 작업을 통해 두 테이블을 집계한다.
Airflow : 예제 코드
Uploaded by Notion2Tistory v1.1.0