비밀번호

커뮤니티2

  • 맑음속초6.2맑음북춘천0.9맑음철원0.0맑음동두천2.9맑음파주-0.5맑음대관령-1.3맑음춘천2.1맑음백령도9.7맑음북강릉7.0맑음강릉6.9구름조금동해5.7맑음서울5.2맑음인천5.4맑음원주4.9비울릉도8.2맑음수원3.8맑음영월2.1맑음충주2.0맑음서산2.8맑음울진6.1맑음청주6.8맑음대전4.1맑음추풍령2.9맑음안동3.5맑음상주4.9맑음포항8.1맑음군산4.8맑음대구4.8맑음전주7.4맑음울산7.6맑음창원9.1맑음광주7.2맑음부산9.8맑음통영7.9맑음목포8.8맑음여수10.3맑음흑산도12.1맑음완도8.7맑음고창5.3맑음순천2.4맑음홍성2.6맑음서청주3.3맑음제주12.6맑음고산12.5맑음성산9.0맑음서귀포12.0맑음진주3.7맑음강화6.1맑음양평4.6맑음이천2.6맑음인제2.1맑음홍천1.8맑음태백-1.0맑음정선군0.5맑음제천0.1맑음보은1.0맑음천안1.7맑음보령4.3맑음부여2.8맑음금산2.1맑음세종4.0맑음부안4.9맑음임실2.5맑음정읍4.9맑음남원3.3맑음장수0.2맑음고창군4.1맑음영광군5.4맑음김해시5.9맑음순창군3.9맑음북창원7.9맑음양산시6.5맑음보성군7.5맑음강진군8.8맑음장흥5.1맑음해남9.3맑음고흥3.9맑음의령군3.2맑음함양군2.3맑음광양시7.3맑음진도군9.5맑음봉화1.0맑음영주1.9맑음문경7.0맑음청송군-1.0맑음영덕4.4맑음의성0.5맑음구미4.7맑음영천2.0맑음경주시2.9맑음거창1.7맑음합천3.8맑음밀양4.3맑음산청3.6맑음거제6.8맑음남해7.9맑음북부산5.3
  • 2024.11.06(수)

데이터 엔지니어링데이터 엔지니어링

Airflow Dynamic Task Mapping 사용 시 map_index 지정하기

Airflow에는 Dynamic Task Mapping 기능을 통해 DAG 작성 시 필요한 task 개수를 미리 알 필요 없이

워크플로우가 현재 데이터를 기반으로 런타임에 여러 task를 실행할 수 있습니다. 마치 for 루프문 처럼 말이죠.

 

 

Dynamic Task의 기본적인 사용은 위와 같습니다. task의 expand 메소드를 통해 입력 데이터 개수만큼 런타임에서 TaskInstance를 생성하게 됩니다.

이렇게 하면 웹서버 UI에서 확인할 경우 다음을 볼 수 있습니다.

 

 

맵핑되었던 task별로 map index가 할당되어있습니다. 이는 임의로 0~n까지 맵핑됩니다.

동시에 실행되는 task 수가 많아지고 이를 모니터링하려면 이 화면에서 각 task를 미리 알아볼 수 있는 식별자가 필요할 것입니다. 이때 map index를 직접 지정할 수 있으면 어떨까요?

 

Airflow 2.9 버전부터는 이러한 기능을 제공합니다.

 

 

동적 맵핑되는 task의 데코레이터의 map_index_template 파라미터에 사용할 map index 템플릿을 지정합니다.

이후 task 코드 내에서 get_current_context() 메소드를 통해 컨텍스트를 가져온 후 지정한 템플릿을 작성합니다.

 

 

이렇게하여 map index에 템플릿이 적용된 인덱스를 넣을 수 있습니다.

사용 시 각 task를 파악할 수 있는 값을 지정한다면 task 수가 많아져도 모니터링하기 수월해 질 것입니다.

전체댓글0

검색결과는 총 24건 입니다.    글쓰기