주요 컨텐츠로 이동

Databricks Workflows의 향상된 제어 흐름 발표

조건부 실행과 작업 수준 매개변수 사용 가능
Ori Zohar
Gabor Ratky
Jan van der Vegt
이 포스트 공유하기

(번역: Youngkyong Ko) Original Blog Post

여러 단계의 데이터 및 AI 프로세스와 파이프라인을 오케스트레이션하는 데 있어 핵심 요소는 제어 흐름 관리입니다. 이 때문에 우리는 고객이 복잡한 워크플로우를 더 잘 제어하고 고급 오케스트레이션 시나리오를 구현할 수 있도록 Databricks Workflows의 제어 흐름 기능에 지속적으로 투자하고 있습니다. 몇 달 전에는 워크플로우에서 모듈식 오케스트레이션을 정의하는 기능을 도입하여 고객이 복잡한 DAG를 세분화하여 워크플로우 관리, 재사용성을 개선하고 여러 팀 사이에 파이프라인을 연결할 수 있도록 했습니다. 이제 레이크하우스 오케스트레이션의 다음 혁신인 조건부 작업 실행을 구현하고 작업 매개변수를 정의할 수 있는 기능을 발표하게 되어 기쁘게 생각합니다.

조건부 작업 실행

조건부 실행은 "If/else 조건부 작업 유형"과 "Run if 종속성"의 두 가지 기능으로 나눌 수 있으며, 이 두 가지 기능을 함께 사용하면 워크플로우에서 분기 로직을 생성하고 파이프라인에서 작업들 사이에 보다 정교한  종속 관계를 생성하여 더욱 유연한 워크플로우를 만들 수 있습니다.

새로운 조건부 작업 유형

이 기능에는 If/else 조건이라는 새로운 작업 유형이 추가되었습니다. 이 작업 유형을 사용하면 제어 흐름에서 분기 조건을 생성하여 조건이 참이면 특정 분기가 실행되고 조건이 거짓이면 다른 분기가 실행되도록 할 수 있습니다. 사용자는 다양한 조건을 정의하고 런타임에 설정되는 동적 값을 사용할 수 있습니다. 다음 예제에서는 예측을 진행하기 전에 머신 모델의 점수를 확인하여 분기합니다:

ModelPipeline

작업 실행(task run) 화면에서  조건 결과가 무엇이었는지, 어떤 브랜치가 실행되었는지 쉽게 확인할 수 있습니다.

ModelPipeline run

If/else 조건은 보다 정교한 사용 사례를 구현하기 위해 다양한 방식으로 사용될 수 있습니다. 몇 가지 예를 들면 다음과 같습니다:

  • 매일 실행되도록 예약된 파이프라인에서 주말에는 추가 작업을 실행합니다.
  • 파이프라인의 이전 단계에서 처리된 새 데이터가 없는 경우 작업을 제외합니다.

Run if 종속성

Run if 종속성은 작업들 간의 종속 관계를 보다 유연하게 정의할 수 있도록 해주는 새로운 작업 수준 설정입니다. 한 작업에 여러 작업에 대한 여러 종속성이 있는 경우, 이제 사용자는 종속 작업의 실행을 결정할 조건을 정의할 수 있습니다. 이러한 조건을 "Run if 종속성"이라고 하며, 모든 종속 조건이 성공하거나, 하나 이상이 성공하거나, 상태 등에 관계없이 모두 완료된 경우 작업이 실행되도록 정의할 수 있습니다 (전체 목록과 각 옵션에 대한 자세한 내용은 설명서를 참조하세요).

사용자는 Workflows UI에서 작업 수준 필드 Run if dependencies 에서 종속성 유형을 아래와 같이 선택할 수 있습니다.

MyPipeline

Run if 종속성은 여러 사용 사례에서 유용하게 사용할 수 있습니다. 예를 들어, 글로벌 판매 데이터를 수집하여 각 국가별로 서로 다른 비즈니스 로직을 적용한 후 여러 국가의 데이터셋을 단일 테이블로 집계하는 파이프라인을 구현한다고 가정해 보겠습니다. 만약 특정 국가 데이터의 처리 작업이 실패하더라도 집계 작업을 계속 진행하여, 해당 국가 데이터를 제외한 결과 테이블을 생성하여 문제가 해결될 때까지 데이터 소비자들이 계속 사용할 수 있게 만들고자 할 수 있습니다. Databricks Workflows는 이런 경우 특정 국가 데이터 처리 작업의 장애를 해결한 후 의도한 대로 모든 데이터를 가져올 수 있도록 복구 실행(repair run)을 수행할 수 있는 기능을 제공합니다. 이 시나리오에서 복구 실행이 시작되면 실패한 국가 작업과 집계 작업만 다시 실행됩니다.

GlobalPipeline run

"If/else 조건부" 작업 유형과 "Run if 종속성" 모두 출시 완료(GA)되어 모든 사용자가 이용할 수 있습니다. 이러한 기능에 대해 자세히 알아보려면 이 문서를 참조하세요.

작업 매개변수 (Job parameters) 

워크플로에 더 많은 유연성과 제어 기능을 추가할 수 있도록 작업 매개변수를 도입했습니다. 작업 매개변수는 런타임에 작업 내 모든 태스크에서 사용할 수 있는 key/value 쌍입니다. 작업 매개변수를 사용하면 파이프라인에 세부적인 설정을 쉽게 추가할 수 있어, 다양한 사용 사례와 다른 입력값으로 작업을 재사용하거나 다른 환경(예: 개발 및 스테이징 환경)에서 동일한 작업을 실행하는 데 유용합니다.

작업 매개변수는 작업 설정 버튼의 매개변수 설정(Edit parameters)을 통해 정의할 수 있습니다. 단일 작업에 대해 여러 개의 매개변수를 정의할 수 있고, 시스템에서 제공하는 동적 값(dynamic values)을 활용할 수 있습니다. 이 문서에서 작업 매개변수에 대해 자세히 알아볼 수 있습니다.

Job parameters

작업을 수동으로 실행할 때 "지금 실행(Run now)" 드롭다운 메뉴에서 "다른 매개변수로 지금 실행(Run now with different parameters)"을 선택해 다른 매개변수를 제공할 수 있습니다. 이 기능은 문제를 해결하거나, 다른 테이블에서 동일한 워크플로를 실행하거나, 특정 객체를 처리할 때 유용할 수 있습니다.

Run now with different parameters

작업 매개변수는 작업의 흐름을 제어하기 위한 "If/else 조건" 작업의 입력으로 사용할 수 있습니다. 이를 통해 사용자 제공 값에 따라 특정 조건에서만 실행되도록 여러 개의 브랜치가 있는 워크플로를 작성할 수 있습니다. 이렇게 하면 특정 시나리오에서 파이프라인을 실행하려는 사용자가 작업을 건너뛰거나 특정 처리 단계를 활성화하는 등 해당 파이프라인의 흐름을 쉽게 제어할 수 있습니다.

시작하기

위와 같은 새로운 기능을 사용하여 워크플로우에 더 많은 제어 기능을 추가하고 새로운 사용 사례에 활용할 수 있습니다!

Databricks 무료로 시작하기

관련 포스트

모든 플랫폼 블로그 포스트 보기