JJJJust me

airflow #3

2020. 1. 10. 17:02

1. subdag

dag

schedule_interval 속성을 다르게했는데도 각각 움직이지 않는다.

왜일까?

예)

dag : @once

subdag : */1 * * * *

하지만 결과는 once.....

2. TriggerDagRunOperator

trigger_dag_id 속성을 통해 서로 다른 dag가 통신이 된다.

하지만 ....

target dag의 schedule_interval: None 이어야만 한다.

그러므로 controller dag의 schedule_interval을 따라간다.

그렇다면 두 개의 dag는 따로 실행이 안되는 것인가

왜 target은 None이어야만 하는가 .....

3. BranchPythonOperator

python_callable의 return값이 해당하는 task로 이동한다.

마치 if, else문 처럼

4. Variables

global처럼 사용할 수 있는 함수

하지만 dag on/off에도 계속 값을 가지고 있다.

그렇다면 dag off 일 때, 초기화 할 수 있는 방법은 없을까?

5. ExternalTaskSensor

task_sensor = ExternalTaskSensor(

task_id='link_upstream',

external_dag_id='call-procedure-and-bash',

external_task_id='print_the_context',

allowed_states=[State.SUCCESS],

execution_delta=timedelta(minutes=1),

mode = 'reschedule',

dag=dag

)

다른 dag의 실행을 살펴보는 sensor

이 때 execution_delta를 잘 설정해야 interval이 다른 dag가 꼬이지 않게

잘 실행될 수 있다.

예)

sensor dag 의 interval = 1분

external_dag의 interval = 2분

즉 delta = 1분이다.

* sensor의 사용을 추천하지 않습니다.

'airflow' 카테고리의 다른 글

airflow create user  (0) 2020.01.10
2019.11.29  (0) 2020.01.10
airflow #2  (0) 2020.01.10
airflow #1  (0) 2020.01.10

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band