Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

빌드와 실행 작업

빌드(Build)는 Foundry에서 데이터셋의 새 버전을 계산하는 실행 단위입니다. 필요한 연산을 조정하고, 적절한 입력 버전을 읽어 지정한 출력에 결과를 씁니다. 빌드 한 번은 출력 집합을 한 번 계산합니다. 정기적으로 데이터를 갱신하려면 스케줄을 사용합니다.

실행 작업과 명세

빌드는 실행 작업(Job)으로 구성됩니다. 실행 작업 하나는 같은 로직으로 하나 이상의 출력 데이터셋을 계산합니다. 하나의 실행 작업에 여러 출력이 있으면 함께 갱신되며, 그중 일부만 따로 빌드할 수 없습니다.

실행 작업 명세(JobSpec)는 입력 의존 관계와 실행 로직을 정의합니다. Code Repositories에서 변환 코드를 커밋하는 등 로직을 변경할 때 게시됩니다. 입력 명세(InputSpec)는 특정 입력 데이터셋과 그 뷰 중 읽을 범위를 지정합니다.

실행 작업은 코드 변환에만 해당하지 않습니다. 외부 데이터를 읽는 Data Connection 동기화, 데이터셋 특성을 검사하는 상태 검사, 분석 애플리케이션의 변환 로직, Foundry 밖으로 데이터를 보내는 내보내기도 실행 작업으로 표현할 수 있습니다.

실행 작업 상태

상태의미
WAITING아직 호출하지 않았으며 의존하는 실행 작업의 완료를 기다립니다.
RUN_PENDING실행을 기다리지만 실행 환경이 상태를 아직 확인하지 않았습니다.
RUNNING호출되어 연산을 수행하고 있습니다.
ABORT_PENDING중단을 요청했지만 실행 환경이 중단 상태를 아직 확인하지 않았습니다.
ABORTED사용자 요청이나 의존 작업 실패로 중단되었습니다.
FAILED호출 후 연산이 실패했습니다.
COMPLETED연산이 성공적으로 끝났습니다.

빌드 대상 결정과 잠금

빌드가 실행되기 전에 입력과 출력을 확인합니다.

  • 입력 의존 관계에 순환이 있으면 빌드가 실패합니다.
  • 모든 입력 데이터셋이 존재하는지 확인하고 각 입력의 적절한 스키마를 식별합니다.
  • 출력마다 새 트랜잭션을 열어 현재 빌드만 해당 출력에 쓸 수 있도록 잠급니다. 이를 빌드 잠금(Build locking)이라고 합니다.
  • 입력을 변경할 수 있는 다른 빌드가 진행 중인지 확인합니다. 필요하면 현재 빌드를 대기열에 넣고 앞선 빌드가 끝날 때까지 기다립니다.

실행과 실패 전파

서로 의존하지 않는 실행 작업은 병렬로 수행합니다. 한 실행 작업이 실패하면 그 작업에 직접 의존하는 작업과 해당 빌드의 관련 출력 트랜잭션이 종료됩니다. 의존하지 않는 실행 작업도 함께 중단하도록 선택적으로 구성할 수 있습니다.

모든 실행 작업이 완료되면 빌드가 완료됩니다. 빌드 중간에 실패하더라도 앞서 성공한 실행 작업이 이미 출력 데이터셋에 쓴 데이터는 남아 있을 수 있습니다. 빌드 전체의 실패를 모든 출력의 원상 복구로 해석하면 안 됩니다.

최신 상태 판단과 강제 빌드

이전 빌드 이후 입력 데이터와 JobSpec의 로직이 모두 바뀌지 않았으면 출력은 최신 상태(Fresh)로 간주합니다. 이 출력은 후속 빌드에서 다시 계산하지 않습니다.

최신 여부와 관계없이 빌드 대상 데이터셋을 모두 다시 계산하려면 강제 빌드(Force build)를 실행합니다. 이는 기본적인 변경 감지에 따른 생략을 무시하는 동작입니다.

개별 실행 작업 취소

전체 빌드를 취소하지 않고 실행 중인 작업 하나를 취소할 수 있습니다. Builds에서 빌드를 열고 Build progress의 작업을 선택한 뒤 Actions 메뉴에서 Cancel job을 선택합니다.

실시간 로그

실시간 로그(Live logs)는 실행 중인 작업의 진행 상황을 보여줍니다. 스트림이나 연산 모듈처럼 오래 실행되는 작업을 살펴볼 때 사용할 수 있습니다.

Builds에서 작업의 로그 뷰어를 열고 오른쪽 위의 View live를 선택합니다. 활성화한 뒤 로그가 나타나기까지 약 10초의 지연이 있을 수 있습니다.

로그 수준은 다음 색으로 구분합니다.

로그 수준색상
Info파란색
Fatal / Error빨간색
Warn주황색
Debug / Trace회색

로그의 safe parameters와 parameters는 JSON 블록으로 확인할 수 있습니다. Format as JSON 옵션을 사용하면 구조를 읽기 쉽게 표시합니다.

오른쪽 위의 Pause로 실시간 피드를 멈추고 같은 위치에서 다시 시작할 수 있습니다. 실시간 로그는 작업에서 바로 전달되므로 로그 뷰어의 시간 범위 선택이 적용되지 않습니다.