비밀번호

커뮤니티2

  • 맑음속초13.3맑음북춘천1.2맑음철원1.0맑음동두천3.8맑음파주1.8맑음대관령5.0맑음춘천1.6황사백령도10.7황사북강릉12.2맑음강릉11.6맑음동해13.3황사서울7.3황사인천7.6맑음원주2.8황사울릉도10.9맑음수원4.3맑음영월1.2맑음충주1.9맑음서산1.2맑음울진10.1황사청주5.1황사대전3.5구름많음추풍령1.5황사안동4.1맑음상주4.6황사포항8.5구름많음군산3.3황사대구7.5황사전주2.9황사울산7.9황사창원10.5황사광주4.6맑음부산10.7구름많음통영8.9황사목포6.3황사여수8.2황사흑산도6.7구름많음완도5.5구름많음고창1.8구름많음순천6.2황사홍성3.6맑음서청주1.5황사제주8.8구름많음고산9.7구름많음성산9.5구름많음서귀포12.8구름많음진주6.6맑음강화7.0맑음양평3.7맑음이천2.8맑음인제3.9맑음홍천2.1맑음태백6.6맑음정선군1.4맑음제천0.0맑음보은0.6맑음천안0.7맑음보령1.5맑음부여0.7구름많음금산0.9맑음세종1.9구름많음부안3.7구름많음임실0.2구름많음정읍2.4구름많음남원1.5구름많음장수-0.6구름많음고창군2.5구름많음영광군3.5구름많음김해시10.2구름많음순창군1.5구름많음북창원10.3구름많음양산시10.9구름많음보성군5.4구름많음강진군4.5구름많음장흥3.2흐림해남4.7구름많음고흥2.5구름많음의령군3.0구름많음함양군0.8구름많음광양시6.3흐림진도군8.1맑음봉화0.7맑음영주2.6맑음문경2.4맑음청송군1.3맑음영덕7.9맑음의성1.8맑음구미5.0맑음영천5.9맑음경주시7.3구름많음거창0.7흐림합천4.0구름많음밀양8.6구름많음산청3.4구름많음거제10.8구름많음남해10.0구름많음북부산10.8
  • 2026.04.21(화)

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

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

검색결과는 총 26건 입니다.    글쓰기
1 2