Data Engineering/Airflow
[Airflow] SubDAG로 반복 패턴 최소화하기
keyhong-DE
2023. 6. 26. 10:00
subDAG Use Case
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가 완료될 때 까지 슬롯도 사용