Data Engineering/Airflow

[Airflow] SubDAG로 반복 패턴 최소화하기

keyhong-DE 2023. 6. 26. 10:00

subDAG Use Case

(좌) SubDAG 사용 전 / (우) SubDAG 사용 후 : sub task들이 결합

SubDAG Description

  • task를 그룹핑하여 airflow Web UI에서 시각적으로 보여주게 만드는 task collection
  • tasks들을 포함한 상자를 굵은 테두리는 식별 가능
  • 실제로는 아무것도 변경되지 않고, DAG의 종속성은 여전히 유지되며 Web UI에서 시각적인 변화만 제공
  • DAG Object를 생성하기 위해서 DAG 객체를 반환하는 factory method를 코딩
  • 이 SubDag를 기본 DAG에 연결하기 위해 SubDagOperator를 인스턴스화
  • SubDag는 여전히 기본 DAG에서 관리하므로 유지해야 함 (예기치 않은 동작 발생 가능성이 있기 때문)
  • SubDagOperator의 상태와 작업 자체는 독립적(성공으로 표시된 SubDagOperator는 여전히 남아있을 수 있는 기본 작업에 영향을 끼치지 않음)
  • SubDag의 가장 큰 문제는 교착 상태 (프로덕션에서 Celery Executor가 설정된 경우 문제 발생 가능성)
  • SubDagOperator가 트리거 되면 작업자 슬롯과 하위 DAG의 각 작업을 사용
  • 전체 SubDAG가 완료될 때 까지 슬롯도 사용