728x90
반응형
Apache Airflow에 대해 알아보자
아파치 에어플로우는 데이터 처리 파이프라인을 조율하기 위해 만든 오픈소스 도구.
Cron 같은 느낌
Apache Airflow를 사용하는 이유
- 데이터 ETL 과정을 통해 데이터를 가공하며 적재하는데
- 이때여러 개의 sequential한 로직이 존재하게 됨. (앞의 결과가 뒤 작업의 input이 되는 등)
- 위와 같은 작업이 여러개일 경우 이러한 workflow 관리도구로 airflow를 사용할 수 있으며,
- 비슷한 workflow 관리도구로 하둡 에코시스템의 우지와 같은 솔루션이 있음.
장점
- Python 기반으로 만들어 져 데이터 분석 하는 분들도 쉽게 코드를 작성할 수 있음
- Airflow 콘솔이 따로 존재해 task 관리를 서버에서하지 않아도 되고 각 작업별 시간이 나오기 때문에 bottleneck을 찾을 때에도 유용함
DAG: 방향성 비순환 그래프
- 에어플로우 상의 작업흐름은 DAG로 설계되기 때문에 이를 짤 때 어떻게 독립적으로 실행 가능한 태스크들로 나뉠 수 있을까 생각해보고
- 그 다음에 각 태스크를 그래프로 결합하여 전체적인 논리 흐름에 맞게 합칠 수 있음
- Task의 집합체이자 workflow
DAG 생성
- default_args 정의(owner, start_date 등 정의)
- DAG 객체 생성(dag id, schedule_interval 정의)
- DAG 안에 Operator를 활용해 task 생성(SparkSubmitOperator, BashOperator 등)
- Task들을 연결( >>, << 활용하거나 t1.set_upstream(t2) 또는 t2.set_downstream(t1) 도 같은 표현)
즉 DAG 객체 생성 -> Operator를 활용해 Task 작성 -> Task 연결
728x90
반응형
'코딩해 > Kafka, Spark, Data Engineering' 카테고리의 다른 글
[Spark-submit] Console 로그 설정 | Log level (0) | 2022.06.03 |
---|---|
[Spark] spark.driver.maxResultSize 에러 (0) | 2022.05.11 |
[Kafka] 카프카 파티션 | 순서 (0) | 2022.03.31 |
[Kafka | 카프카 핵심 가이드 ] Chapter 01. 카프카 훑어보기 (0) | 2022.03.30 |
[Kafka] 카프카 Kafka Rebalancing (0) | 2022.03.29 |