(번역: Youngkyong Ko) Original Blog Post
여러 단계의 데이터 및 AI 프로세스와 파이프라인을 오케스트레이션하는 데 있어 핵심 요소는 제어 흐름 관리입니다. 이 때문에 우리는 고객이 복잡한 워크플로우를 더 잘 제어하고 고급 오케스트레이션 시나리오를 구현할 수 있도록 Databricks Workflows의 제어 흐름 기능에 지속적으로 투자하고 있습니다. 몇 달 전에는 워크플로우에서 모듈식 오케스트레이션을 정의하는 기능을 도입하여 고객이 복잡한 DAG를 세분화하여 워크플로우 관리, 재사용성을 개선하고 여러 팀 사이에 파이프라인을 연결할 수 있도록 했습니다. 이제 레이크하우스 오케스트레이션의 다음 혁신인 조건부 작업 실행을 구현하고 작업 매개변수를 정의할 수 있는 기능을 발표하게 되어 기쁘게 생각합니다.
조건부 실행은 "If/else 조건부 작업 유형"과 "Run if 종속성"의 두 가지 기능으로 나눌 수 있으며, 이 두 가지 기능을 함께 사용하면 워크플로우에서 분기 로직을 생성하고 파이프라인에서 작업들 사이에 보다 정교한 종속 관계를 생성하여 더욱 유연한 워크플로우를 만들 수 있습니다.
이 기능에는 If/else 조건이라는 새로운 작업 유형이 추가되었습니다. 이 작업 유형을 사용하면 제어 흐름에서 분기 조건을 생성하여 조건이 참이면 특정 분기가 실행되고 조건이 거짓이면 다른 분기가 실행되도록 할 수 있습니다. 사용자는 다양한 조건을 정의하고 런타임에 설정되는 동적 값을 사용할 수 있습니다. 다음 예제에서는 예측을 진행하기 전에 머신 모델의 점수를 확인하여 분기합니다:
작업 실행(task run) 화면에서 조건 결과가 무엇이었는지, 어떤 브랜치가 실행되었는지 쉽게 확인할 수 있습니다.
If/else 조건은 보다 정교한 사용 사례를 구현하기 위해 다양한 방식으로 사용될 수 있습니다. 몇 가지 예를 들면 다음과 같습니다:
Run if 종속성은 작업들 간의 종속 관계를 보다 유연하게 정의할 수 있도록 해주는 새로운 작업 수준 설정입니다. 한 작업에 여러 작업에 대한 여러 종속성이 있는 경우, 이제 사용자는 종속 작업의 실행을 결정할 조건을 정의할 수 있습니다. 이러한 조건을 "Run if 종속성"이라고 하며, 모든 종속 조건이 성공하거나, 하나 이상이 성공하거나, 상태 등에 관계없이 모두 완료된 경우 작업이 실행되도록 정의할 수 있습니다 (전체 목록과 각 옵션에 대한 자세한 내용은 설명서를 참조하세요).
사용자는 Workflows UI에서 작업 수준 필드 Run if dependencies 에서 종속성 유형을 아래와 같이 선택할 수 있습니다.
Run if 종속성은 여러 사용 사례에서 유용하게 사용할 수 있습니다. 예를 들어, 글로벌 판매 데이터를 수집하여 각 국가별로 서로 다른 비즈니스 로직을 적용한 후 여러 국가의 데이터셋을 단일 테이블로 집계하는 파이프라인을 구현한다고 가정해 보겠습니다. 만약 특정 국가 데이터의 처리 작업이 실패하더라도 집계 작업 을 계속 진행하여, 해당 국가 데이터를 제외한 결과 테이블을 생성하여 문제가 해결될 때까지 데이터 소비자들이 계속 사용할 수 있게 만들고자 할 수 있습니다. Databricks Workflows는 이런 경우 특정 국가 데이터 처리 작업의 장애를 해결한 후 의도한 대로 모든 데이터를 가져올 수 있도록 복구 실행(repair run)을 수행할 수 있는 기능을 제공합니다. 이 시나리오에서 복구 실행이 시작되면 실패한 국가 작업과 집계 작업만 다시 실행됩니다.
"If/else 조건부" 작업 유형과 "Run if 종속성" 모두 출시 완료(GA)되어 모든 사용자가 이용할 수 있습니다. 이러한 기능에 대해 자세히 알아보려면 이 문서를 참조하세요.
워크플로에 더 많은 유연성과 제어 기능을 추가할 수 있도록 작업 매개변수를 도입했습니다. 작업 매개변수는 런타임에 작업 내 모든 태스크에서 사용할 수 있는 key/value 쌍입니다. 작업 매개변수를 사용하면 파이프라인에 세부적인 설정을 쉽게 추가할 수 있어, 다양한 사용 사례와 다른 입력값으로 작업을 재사용하거나 다른 환경(예: 개발 및 스테이징 환경)에서 동일한 작업을 실행하는 데 유용합니다.
작업 매개변수는 작업 설정 버튼의 매개변수 설정(Edit parameters)을 통해 정의할 수 있습니다. 단일 작업에 대해 여러 개의 매개변수를 정의할 수 있고, 시스템에서 제공하는 동적 값(dynamic values)을 활용할 수 있습니다. 이 문서에서 작업 매개변수에 대해 자세히 알아볼 수 있습니다.
작업을 수동으로 실행할 때 "지금 실행(Run now)" 드롭다운 메뉴에서 "다른 매개변수로 지금 실행(Run now with different parameters)"을 선택해 다른 매개변수를 제공할 수 있습니다. 이 기능은 문제를 해결하거나, 다른 테이블에서 동일한 워크플로를 실행하거나, 특정 객체를 처리할 때 유용할 수 있습니다.
작업 매개변수는 작업의 흐름을 제어하기 위한 "If/else 조건" 작업의 입력으로 사용할 수 있습니다. 이를 통해 사용자 제공 값에 따라 특정 조건에서만 실행되도록 여러 개의 브랜치가 있는 워크플로를 작성할 수 있습니다. 이렇게 하면 특정 시나리오에서 파이프라인을 실행하려는 사용자가 작업을 건너뛰거나 특정 처리 단계를 활성화하는 등 해당 파이프라인의 흐름을 쉽게 제어할 수 있습니다.
위와 같은 새로운 기능을 사용하여 워크플로우에 더 많은 제어 기능을 추가하고 새로운 사용 사례에 활용할 수 있습니다!