2022. 8. 28. 16:44

2022 Airflow Summit - Implementing Event Based Dags with Airflow

https://airflowsummit.org/sessions/2022/

에어플로우 2022 summit의 세션중에 Implementing Event Based Dags with Airflow 세션을 번역하고 정리한 내용입니다.

 

Airflow Summit 2022 sessions

Airflow summit is the premier conference for the worldwide community of developers and users of Apache Airflow.

airflowsummit.org

  • 발표자는 데이터 엔지니어링 컨설턴트
    • Astronomer의 리드 엔지니어

  • time-based scheduling은 새벽5시에 땡하고 출발하는 마라톤에 비유
  • Event-based triggering은 팀메이트가 나에게 왔을 때 레이스를 시작하는 이어달리기에 비유
  • 그렇다면 airflow에서 그것이 가능한가?→YES!

왜 Event-Based Triggering을 사용해야할까?

  • 애드훅 기반의 많은 어플리케이션에 도움이 된다.
  • 다양한 경우의 머신러닝 오케스트레이션을 위한 에어플로우에 적용할 수 있다.

어떻게 내 DAGs를 Event-Based로 만들까?

  • TriggerDagRunOperator
    • 많은 사람들이 이런걸 지원하는지도 모르는 경우가 많다
    • 이벤트가 발생했을 때 같은 환경의 다른 DAG를 트리거함

  • 장점
    • 쉽게 구현가능함
    • wait_for_completion param값으로 복잡한 dag 의존성을 위한 옵션을 줄수있다
  • 단점
    • DAG들이 반드시 같은 환경의 에어플로우내에 있어야 한다

Sensor

  • airflow 외부에 일어나는 무언가를 기다렸다가 감지해서 작동한다
  • 장점
    • 효과적으로 다른 오퍼레이터로 보낼 수 있다
    • 많은 use-case로 쉽게 적용가능
  • 단점
    • 한번 센서로 이벤트를 받으면 다시 DAGs를 돌릴 수 없다
    • 길게 기다리는 sensors는 높은 리소스 코스트를 발생한다
    • 당신의 세세한 유즈케이스에 해당하는 sensor가 존재하지 않을 가능성이 있다

Deferrable Operators

  • airflow 2.2에서 지원

  • sensor를 기다리는 코스트가 비쌀 때 사용하는 가장 이상적인 sensors
  • compute 자원을 아끼고 싶을 때 sensor를 사용하는 것처럼 사용하면된다.
  • 장점
    • 기존 sensor에 비해서 크게 연산 비용이 절약된다 이는 확장성이나 비용에 도움이 된다
    • 쉽게 변경할 수 있다
  • 단점
    • triggerer가 러닝중이어야 한다
    • 진정한 애드훅을 위한 best option은 아니다

Airflow API

  • astronomer의 데이터분석팀은 파이썬을 모르는데 API를 만들어서 쿼리를 실행하는 분석 태스크를 summit해서 사용하고있다
  • 장점
    • 트리거가 언제 어디서나 최고의 방법으로 구현할 수 있다
    • airflow2에서 완전히 Stable하게 Rest API를 지원한다(1.x에서는 experimental이었음)
  • 단점
    • 오직 DAG로만 트리거를 요청하기만 하지 콜백을 받지 않는다 그래서 DAG의 상태를 모른다
    • 사용하기전에 API auth 설정이 필요하다.

미래에는..

https://cwiki.apache.org/confluence/display/AIRFLOW/AIP-48+Data+Dependency+Management+and+Data+Driven+Scheduling 

 

AIP-48 Data Dependency Management and Data Driven Scheduling - Airflow - Apache Software Foundation

페이지 Airflow Home Airflow Improvement Proposals Skip to end of banner Go to start of banner Skip to end of metadata 작성자 : Vikram Koka, 최근 변경 : Daniel Standish - 8월 06, 2022 Go to start of metadata Background and motivation Airflow has

cwiki.apache.org

  • AIP 48
    • data driven scheduling
    • 데이터셋 업데이트에 기반한 DAGs 트리거링
      • 데이터가 추가되거나 제거거나 바뀌면 dag가 이를 추적하다가 실행된다
    • 아직은 super early stages 상태
  • AIP란 Airflow Improvement Proposals의 약자로 에어플로우의 메이저 변경사하을 미리 소개한다.