Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Python 변환의 입출력 명세

변환의 입출력 명세는 데이터셋의 RID 또는 Compass 절대 경로를 빌드의 입력과 출력에 연결합니다. compute 함수에는 명세에서 생성한 런타임 객체가 주입됩니다. 파일이나 표를 읽고 쓰는 작업은 그 런타임 객체에서 수행합니다.

참조용도
Input단일 데이터셋 입력과 브랜치, 갱신 실패 전략, 증분 트랜잭션 한도
InputSet여러 입력의 명세
Output단일 출력과 검사 연결
OutputSet여러 출력의 명세
FoundryInputParam입력 명세를 JobSpec과 빌드 그래프에 연결하는 기본 계약
FoundryOutputParam출력 명세의 기본 계약
LightweightInputParam경량 단일 노드 입력 구현의 계약
LightweightOutputParam경량 단일 노드 출력 구현의 계약
Check입력 또는 출력에 데이터 요구 조건 연결
Markings입력의 보안 표지 전파 중단 명세
OrgMarkings입력의 상속 조직 요구 제거 명세

바인딩

Input과 Output에서 alias를 생략하면 바인딩되지 않은 매개변수입니다. InputSet과 OutputSet은 aliases를 생략하면 바인딩되지 않은 상태이며 빈 목록은 허용하지 않습니다. 매개변수의 json_value가 None이면 바인딩되지 않은 것으로 간주하고, 그런 매개변수가 하나라도 있는 변환은 JobSpec을 게시하지 않습니다.

Input의 branch를 생략하면 입력 브랜치는 빌드 시점에 결정합니다. 이를 항상 master나 main으로 고정하는 설정으로 해석하지 않습니다. Pipeline 안에서 여러 변환이 같은 Output alias에 쓰도록 등록하면 ValueError가 발생하므로 출력 alias를 고유하게 구성합니다.

단일 입력과 출력

다음은 하나의 표를 읽어 다른 데이터셋에 기록하는 가상 변환입니다. Foundry Python 변환 저장소에서 입력과 출력 경로를 실제 데이터셋에 맞게 지정하고, meta.yml의 run 의존성에 polars를 추가합니다.

from transforms.api import (
    Input,
    LightweightInput,
    LightweightOutput,
    Output,
    transform,
)


@transform.using(
    output_dataset=Output("/path/to/output/dataset"),
    input_dataset=Input("/path/to/input/dataset"),
)
def compute(
    input_dataset: LightweightInput,
    output_dataset: LightweightOutput,
) -> None:
    output_dataset.write_table(input_dataset.polars(lazy=True))

Input과 Output은 선언용 명세이고 LightweightInput 및 LightweightOutput은 compute에서 사용하는 런타임 유형입니다. 설정값을 추가로 전달하려면 값 매개변수를 함께 선언합니다.

검사와 접근 요구 조건

입력의 checks는 데이터에 대한 전제 조건, 출력의 checks는 결과에 대한 사후 조건입니다. 안정적인 검사 이름과 WARN/FAIL 동작을 지정합니다. FAIL의 중단 범위는 검사를 실행하는 변환의 출력입니다.

보안 표지와 조직 제거는 Input.stop_propagating, Input.stop_requiring에 각각 지정합니다. 보호 브랜치, 필수 승인자와 제거 권한을 충족해야 합니다. 역할(Role) 권한을 변경하는 기능은 아닙니다. Output의 기존 sever_permissions는 3.85.0부터 사용 중단 권고 상태이며, 새 구성에는 목적별 입력 속성을 사용합니다.

InputSet의 description과 Output 및 OutputSet의 description 설정은 현재 기능이 구현되어 있지 않습니다. 생성자에 인자가 있다고 설명이 저장되거나 표시된다고 가정하지 않습니다.

입출력 명세를 compute 함수에 연결하고 Pipeline에 등록하는 방식은 변환 등록과 실행 방식을 따릅니다. 직접 쓰기 방식과 DataFrame 반환 방식, Spark 및 경량 실행의 차이를 구분하여 선택합니다.