728x90
반응형

Apache Airflow에 대해 알아보자

 

아파치 에어플로우는 데이터 처리 파이프라인을 조율하기 위해 만든 오픈소스 도구.

Cron 같은 느낌


Apache Airflow 사용하는 이유

  • 데이터 ETL 과정을 통해 데이터를 가공하며 적재하는데
  • 이때여러 개의 sequential한 로직이 존재하게 . (앞의 결과가 작업의 input 되는 )
  • 위와 같은 작업이 여러개일 경우 이러한 workflow 관리도구로 airflow 사용할 있으며,
  • 비슷한 workflow 관리도구로 하둡 에코시스템의 우지와 같은 솔루션이 있음.

 

장점

  • Python 기반으로 만들어 져 데이터 분석 하는 분들도 쉽게 코드를 작성할 있음
  • Airflow 콘솔이 따로 존재해 task 관리를 서버에서하지  않아도 되고 작업별 시간이 나오기 때문에 bottleneck 찾을 때에도 유용함

DAG: 방향성 비순환 그래프

  • 에어플로우 상의 작업흐름은 DAG 설계되기 때문에 이를 어떻게 독립적으로 실행 가능한 태스크들로 나뉠 있을까 생각해보고
  • 그 다음에  태스크를 그래프로 결합하여 전체적인 논리 흐름에 맞게 합칠 수 있음
  • Task 집합체이자 workflow

 

DAG 생성

  1. default_args 정의(owner, start_date 정의)
  2. DAG 객체 생성(dag id, schedule_interval 정의)
  3. DAG 안에 Operator 활용해 task 생성(SparkSubmitOperator, BashOperator )
  4. Task들을 연결( >>, << 활용하거나 t1.set_upstream(t2) 또는 t2.set_downstream(t1) 같은 표현)

DAG 객체 생성 -> Operator 활용해 Task 작성 -> Task 연결

728x90
반응형

+ Recent posts