Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Data Lineage에서 빌드 스케줄 생성하기

스케줄을 만들려면 빌드할 대상 데이터셋, 실행 조건, 의존 관계를 따라갈 범위와 실행 권한을 정해야 합니다. Data Lineage의 스케줄 편집기는 선택한 설정이 어떤 데이터셋에 영향을 주는지 그래프에 표시합니다.

편집기 열기

  1. 대상 데이터셋의 Dataset Preview를 엽니다.
  2. Actions에서 Manage Schedules를 선택합니다.
  3. Data Lineage 오른쪽에 열린 스케줄 패널에서 Create schedule을 선택합니다.

스케줄은 그래프에 설정된 브랜치와 폴백 브랜치를 사용합니다. 같은 이름의 데이터셋이라도 참조하는 브랜치가 다르면 연결 빌드에 포함되는 경로가 달라질 수 있습니다.

대상과 제외 범위

Target datasets는 빌드가 도달해야 하는 대상입니다. 기본 설정에서는 대상 데이터셋만 빌드하고, 상위 의존성을 포함하는 설정에서는 대상이 처리 구간의 끝이 됩니다. 데이터셋을 그래프에 추가한 뒤 대상으로 지정합니다. 빌드 브랜치는 Data Lineage 오른쪽 위에서 확인합니다.

Excluded datasets는 빌드 대상을 찾는 그래프 탐색에서 제외하는 경계입니다. 제외한 데이터셋과 그 위쪽 의존 데이터셋은 빌드하지 않습니다. 제외 여부와 대상 여부에 따라 그래프 색상이 달라지므로 저장 전에 선택 결과를 확인합니다.

실행 조건

When to build에서 시간 또는 데이터 갱신 조건을 선택합니다. 시간 트리거는 지정한 시각에 충족되고, 이벤트 트리거는 지정한 갱신이 발생하면 충족됩니다.

결합 방식의미
Any of these triggers구성한 조건 중 하나라도 충족되면 실행합니다.
All of these triggers구성한 모든 조건이 충족되어야 실행합니다.
Advanced configuration조건 사이에 AND, OR를 넣고 괄호로 묶어 중첩합니다.

시간 조건은 해당 순간이 지나면 충족 상태가 사라집니다. 이벤트 조건은 전체 트리거가 충족되어 스케줄이 실행될 때까지 충족 상태를 유지합니다. 따라서 매일 09:00 조건과 데이터 갱신 조건을 AND로 결합하면, 갱신이 먼저 발생한 뒤 09:00이 되어야 실행합니다. cron과 각 이벤트의 정확한 의미는 트리거 참조에서 확인할 수 있습니다.

빌드 유형

유형포함 범위와 제약
Single build대상 데이터셋만 빌드합니다. 다른 의존 데이터셋은 빌드하지 않습니다.
Full build (include upstream)대상과 상위 의존 데이터셋을 빌드하되 제외한 데이터셋은 건너뜁니다. 상위 의존 관계가 바뀌면 포함 범위도 달라집니다.
Connecting build입력 경계와 대상 사이의 데이터셋을 빌드합니다. 시작 입력은 제외하고 대상은 포함합니다. 연결 구간 중간에 있는 데이터셋을 추가 입력으로도 지정한 경우에는 그 데이터셋이 여전히 빌드될 수 있습니다. 입력에서 대상까지의 빌드 경로가 없으면 그 대상은 빌드하지 않습니다.

연결 빌드는 스케줄이 실행되는 브랜치에서 실행 작업 명세(job spec)의 연결 경로가 존재해야 합니다. 데이터셋 이름만 이어져 보이는 것으로 충분하지 않습니다.

다른 브랜치의 입력을 사용하는 연결 빌드

가상 파이프라인에서 다음 두 경로가 있다고 가정합니다.

경로데이터셋과 브랜치
첫 번째 경로D1(master)에서 D2(master)를 거쳐 D4(master), D6(master)로 이어집니다.
두 번째 경로D3(master)는 D2(develop)를 입력으로 사용하고 D5(master)가 D3(master)를 읽습니다.

master에서 입력을 D1, 대상을 D5와 D6으로 지정한 연결 빌드는 D2, D4, D6을 선택합니다. D5 쪽은 D2의 develop 입력 때문에 master의 실행 작업 명세 경로가 끊겨 있습니다.

D3까지 포함하려면 전체 빌드로 바꿔 상위 의존성을 함께 해석할 수 있습니다. 이 경우 D3뿐 아니라 상위 입력 D1도 빌드 범위에 들어갑니다. 연결 빌드를 유지하는 구성에서는 D3의 변환에 D7(master) 같은 추가 입력을 두어 스케줄 브랜치에서 연결되는 실행 작업 명세를 구성할 수 있습니다. 이 경로가 연결되면 D2, D3, D4, D5, D6을 빌드할 수 있습니다. 추가 입력 자체가 업무 계산에 사용되지 않는 구성에서도 실제 브랜치별 연결 범위는 그래프의 강조 표시로 확인해야 합니다.

실행 권한 범위

빌드 대상은 트리거가 발생할 때마다 다시 계산됩니다. 실행 권한 범위는 파이프라인 구성이 바뀌어도 스케줄이 넘지 못하는 경계를 정합니다.

프로젝트 범위

By Projects는 선택한 프로젝트 안에서 빌드 가능한 데이터셋으로 범위를 제한합니다. 개인 사용자의 권한이 바뀌어도 스케줄 실행이 그 변경에 직접 의존하지 않으므로, 파이프라인이 같은 프로젝트 범위 안에서 유지될 때 적합합니다.

다음 경우에는 프로젝트 범위를 사용할 수 없습니다.

  • 프로젝트에서 스케줄을 생성할 권한이 없습니다.
  • 포함된 데이터셋을 빌드할 권한이 부족합니다.
  • 보안 표지를 제거하는 데이터셋이 포함됩니다. Data Lineage를 Permissions 기준으로 색칠하면 이 구간을 확인할 수 있습니다.
  • 사용자 계정으로 빌드해야 하는 데이터셋이 포함됩니다.
  • 빌드 범위를 명확한 프로젝트 집합으로 해석할 수 없습니다.

사용자 계정 범위

By user account는 스케줄을 마지막으로 생성하거나 수정한 사용자를 대신하여 빌드를 시작합니다. 해당 사용자가 빌드할 권한을 가진 데이터셋만 포함할 수 있습니다. 데이터셋의 프로젝트 이동이나 사용자 계정이 필요한 변환 추가 때문에 프로젝트 범위를 유지하기 어려운 파이프라인에 사용할 수 있습니다.

계정이 비활성화되거나 필수 데이터셋의 권한을 잃으면 빌드를 시작하지 못합니다. 계정을 비활성화하기 전에 소유자를 변경해야 하며, 다른 사용자가 스케줄을 수정하면 실행 주체도 바뀐다는 점을 운영 절차에 반영합니다.

고급 옵션

실패 시 중단과 재시도

Abort build on failure를 켜면 실행 작업 하나가 실패했을 때 나머지 작업을 취소하고 빌드를 종료합니다.

Customize the number of attempts for failed jobs는 실패한 작업의 총 시도 횟수를 정합니다. 재시도는 같은 빌드 안에서 수행하며, 허용한 시도를 모두 소진하거나 재시도할 수 없는 오류가 발생하면 작업을 실패로 처리합니다. 값을 1로 설정하면 한 번만 시도하므로 이 설정에 따른 재시도는 없습니다. 모든 오류가 재시도 대상은 아니며 관리자가 정한 최대 횟수가 실제 실행에 적용됩니다.

강제 빌드

Force build는 최신 상태 판단을 무시하고 선택한 데이터셋을 빌드합니다. 일반 변환에는 거의 필요하지 않습니다.

  • Data Connection 동기화는 외부 입력의 변경 여부를 Foundry가 알 수 없어 항상 최신 상태로 표시됩니다. 동기화 전용 스케줄에서 강제 빌드를 사용하고 후속 변환과 분리하는 구성이 권장됩니다.
  • Object Storage v1(Phonograph) 동기화에도 강제 빌드가 필요한 경우가 있습니다.
  • 외부 API를 호출하는 변환은 항상 갱신이 필요한 상태로 간주하므로, 실행을 시작하기 위해 강제 빌드를 켤 필요가 없습니다.

성공 후 다시 트리거

Re-trigger upon successful build는 입력을 모두 처리하여 대상이 최신 상태가 될 때까지 성공한 빌드 뒤에 스케줄을 다시 실행합니다. 다음 두 조건을 모두 충족해야 합니다.

  1. 대상 출력 중 하나 이상이 데이터셋의 증분 트랜잭션 한도 또는 미디어 집합의 증분 배치 한도를 사용합니다. 한 번의 빌드에서 처리량을 제한하여 아직 처리하지 않은 입력을 다음 빌드로 넘기는 구성입니다.
  2. Force build를 끕니다.

해당 출력이 없으면 No resources in this schedule require re-triggering 경고가 표시됩니다.

실행 겹침과 하위 작업의 실패 처리

기본적으로 같은 스케줄에서 앞선 실행이 진행 중이면 새 실행을 시작하지 않습니다. Allow overlapping runs를 켜면 이전 실행이 파이프라인 후반부를 처리하는 동안 다음 실행이 새 입력을 처리할 수 있습니다. 여러 데이터셋을 한 스케줄로 관리하면서 필요한 빌드를 각각 시작하는 용도로도 사용할 수 있습니다.

기본 실패 처리에서는 실패한 작업에 의존하는 하위 작업을 취소합니다. Customize behavior on job failure를 켜면 특정 데이터셋의 작업이 실패하더라도 그 하위 작업을 계속 실행하도록 예외를 지정할 수 있습니다. 이는 전체 빌드를 중단하는 옵션과 구분하여 설정해야 합니다.

저장

대상과 브랜치, 권한 범위, 트리거 및 고급 옵션을 확인한 뒤 Save schedule을 선택합니다. 스케줄 목록으로 돌아오면 저장한 스케줄을 확인할 수 있습니다. 이후 실행 건과 설정 변경은 스케줄 이력에서 확인합니다.