매개변수화
이 절에서는 매개변수와 이러한 매개변수가 작업 및 작업에 사용되는 방법을 다룹니다.
매개변수 정보
작업, 작업 또는 작업 실행의 동작을 변경하는 파라미터를 전달하여 작업 실행을 커스터마이즈할 수 있습니다.
워크플로우의 세 가지 레벨(작업 레벨, 작업 레벨 및 작업 실행 레벨)에서 매개변수를 제공할 수 있습니다. 매개변수는 충돌의 경우 작업 실행 > 작업 > 작업 우선 순위를 갖습니다.
- 작업 실행 레벨 매개변수: 작업 실행 페이로드에 지정된 작업 실행 레벨 매개변수는 작업 구성에 정의된 작업 레벨 매개변수보다 우선합니다. 즉, 작업 실행 중에 지정된 모든 매개변수가 작업별 기본값을 대체합니다.
- 태스크 레벨 매개변수: 특정 태스크에 대한 작업 실행 매개변수가 제공되지 않은 경우 태스크는 작업 구성에서 태스크 레벨에 정의된 매개변수를 사용합니다. 동일한 이름의 작업 레벨 매개변수는 해당 특정 태스크에 대한 태스크 레벨 매개변수를 대체합니다. 따라서 작업 특정 파라미터의 이름을 작업 파라미터와 다르게 지정해야 합니다.
- 작업 레벨 매개변수: 작업 레벨 및 런타임 매개변수가 제공되지 않으면 작업 레벨에서 설정된 기본값이 적용됩니다. 작업 레벨 파라미터는 더 이상 사용할 수 있는 특정 파라미터가 없을 경우 사용할 수 있는 기본값으로 간주됩니다.
주:
작업 매개변수는 작업 컨텍스트에서 변경할 수 없습니다. 즉, 분석된 값이 JobParamRuntimeValueA인 JobParamA 매개변수를 사용하는 작업이 있을 경우 TaskA 실행에서 JobParamA 값을 변경할 수 없습니다. JobParamA 값은 모든 작업 및 전체 작업 실행에 대해 JobParamRuntimeValueA로 유지됩니다. 따라서 작업 간에 정보를 공유하려는 경우 중간 저장 영역 또는 출력 매개변수를 사용하여 이를 수행할 수 있습니다.작업 이름, 작업 값 키 또는 작업 매개변수 이름에 특수 문자(예: !@$%)가 포함된 경우 이러한 식별자를 백틱(``)으로 묶어야 합니다. 백틱에서 식별자를 둘러싸지 않고 영숫자 및 밑줄 문자만 사용할 수 있습니다.
예:
{
"VariableWithSpecialChars": "{{job.parameters.`param$@`}}"
}시스템 매개변수는 워크플로우 실행 및 후속 태스크 실행의 일부로 시스템에서 값을 제공하는 템플리트 매개변수입니다. 이러한 템플리트 매개변수에 대해 기본값 또는 기타 값을 제공할 필요가 없습니다. AI 데이터 플랫폼 워크벤치에는 워크플로우에서 지원되는 적합한 템플리트 매개변수/동적 값 참조의 고정 목록이 있습니다. 시스템 매개변수는 두 개의 중괄호로 묶어 입력됩니다. 예를 들어, {{job.id}}입니다.
표 12-1 지원되는 시스템 매개변수
| 매개변수 | 설명 |
|---|---|
| 오시는 길 | 허브에 지정된 고유 식별자입니다. |
| 오시는 길 | 허브의 영역입니다. |
| 사이트맵 | 작업 영역에 지정된 고유 식별자입니다. |
| 회사소개 | 작업 영역의 URL입니다. |
| 사이트맵 | 작업에 지정된 고유 식별자입니다. |
| 회사 소개 | 작업 실행 시 작업 이름 |
| 회사소개 | 작업 실행에 지정된 고유 식별자 |
| 회사소개 | 현재 작업 실행에 대한 복구 시도 횟수 |
| 이용 후기 로딩중 | 작업 실행이 시작된 시간(UTC 시간대)을 기반으로 하는 값입니다. 반환 값은 인수 옵션을 기반으로 합니다. 날짜 및 시간 값은 옵션을 참조하십시오. |
| 인기 카테고리 | [name] 키가 있는 작업 레벨 매개변수의 값 |
| 한국어 (ko) | 작업 실행의 트리거 유형입니다. 가능한 값은 Manual 및 Scheduled입니다. |
| 오시는 길 | 이 작업에 대해 파일 도착 트리거가 구성된 경우 저장 영역 위치 값 |
| 더 많은 정보 보기 | 작업 실행이 트리거된 시간(UTC 시간대)을 기반으로 하는 값으로, cron 일정이 있는 작업에 대해 가장 가까운 시간(분)으로 내림됩니다. 반환 값은 인수 옵션을 기반으로 합니다. 날짜 및 시간 값은 옵션을 참조하십시오. |
| {{태스크이름}} | 현재 태스크의 이름 |
| 회사소개 | 현재 태스크 실행의 고유 식별자 |
| 회사소개 | 현재 작업이 실행된 횟수(재시도 및 복구 포함) |
| 오시는 길 | 현재 노트북 작업의 노트북 경로 |
| 이용 후기 로딩중 | [task_name]에 대한 태스크 실행에 지정된 고유 식별자입니다. |
| 이용 후기 로딩중 | [task_name] 작업의 결과 상태입니다. 가능한 값은 success, failed, excluded, canceled, skipped, timed out, upstream_canceled 및 upstream_failed입니다. |
| 오키나와 오키나와 | 태스크 실행 중 오류가 발생한 경우 [task_name] 태스크에 대한 오류 코드입니다. 가능한 값의 예로는 RunExecutionError, ResourceNotFound 및 UnauthorizedError가 있습니다. 성공한 작업의 경우 빈 문자열로 평가됩니다. |
| 이용약관 개인정보처리방침 | [task_name] 작업이 실행된 횟수(재시도 및 복구 포함) |
| 이용약관 _ 개인정보 취급방침 | 노트북 작업 [task_name]의 노트북 경로 |
| [공지사항] [공지사항] | [task_name] 태스크에 의해 설정된 [value_name] 키가 있는 태스크 값 |
표 12-2 날짜 및 시간 옵션
| 인수 | 설명 |
|---|---|
| 요일_weekday | 시간 기록의 요일을 나타내는 1에서 7까지의 숫자를 반환합니다. |
| is_weekday | 시간 기록이 평일에 있는 경우 true를 반환합니다.
|
| 현재 위치 | ISO 형식으로 날짜를 반환합니다. |
| iso_datetime | ISO 형식의 날짜 및 시간을 반환합니다. |
| 연도 | 시간 기록의 연도 부분을 반환합니다. |
| 월 | 시간 기록의 월 부분을 반환합니다. |
| 권장합니다. | 시간기록의 일 부분을 반환합니다. |
| 시간 | 시간 기록의 시간 부분을 반환합니다. |
| 분 | 시간 기록의 분 부분을 반환합니다. |
| 두 번째 | 시간 기록의 두번째 부분을 반환합니다. |
| 시간 기록_ms | 시간기록을 밀리초로 반환합니다. |
태스크와 노트북 사이에 매개변수 전달
작업에서 노트북으로 또는 그 반대로 매개변수를 전달할 수 있습니다. 이렇게 하면 동적 워크플로우 동작이 가능하므로 노트북에서 런타임 값에 따라 처리를 조정할 수 있습니다.
oidlUtils.parameters 패키지는 이러한 파라미터 작업을 처리하는 데 필요한 기능을 제공합니다. oidlUtils 패키지는 매개변수 관리, 작업 값 전달 및 기타 워크플로우 작업과 같은 작업을 단순화하는 AI Data Platform Workbench의 유틸리티 라이브러리입니다. 일반적으로 노트북 및 작업에서 워크플로우 단계 전반에 걸쳐 매개변수를 가져오고 설정하는 데 사용됩니다.
oidlUtils.parameters.setTaskValue(key="payload", value="abc", "defaultValue")oidlUtils.parameters.setTaskValue(key="payload", value=json.dumps(payload), "defaultValue")워크플로우 예: 매개변수 전달
이 시나리오에서는 워크플로우에 두 개의 노트북이 있습니다. 노트북 1은 태스크에서 매개변수를 수신하고 처리하며 다음 태스크에서 노트북 2로 전달되는 출력 매개변수를 설정합니다.
노트북 1: 매개변수 가져오기 및 설정# Get parameter if already set in the task
param_key = "param1"
param_value = oidlUtils.parameters.getParameter(param_key, "defaultValue")
print(param_value)
print("Param {} value is {}".format(param_key, param_value))
# Set parameter value in the task
output_parameter_key = "output_parameter"
output_param_value = oidlUtils.parameters.getParameter(output_parameter_key, "defaultValue2")
print("Param {} value is {}".format(output_parameter_key, output_param_value))
oidlUtils.parameters.setTaskValue(output_parameter_key, "1234")첫번째 노트북은 작업에서 전달된 파라미터(param1)를 검색한 다음 새 파라미터(output_param_2)를 설정합니다. 이 파라미터는 다음 작업에서 사용됩니다.
노트북 2: 출력 매개변수 읽기output_param_2= "output_parameter"
param_value = oidlUtils.parameters.getTaskValue("GetSetParameter", output_param_2, "defaultValue")
print("Param {} value is {}".format(output_param_2, param_value))두 번째 노트북은 워크플로 작업을 통해 노트북 1에서 output_param_2를 수신하고 처리합니다.
- 태스크 1: 노트북 1
- 첫 번째 작업에서는 작업 또는 작업 자체에서 메모장 1로 매개변수를 전달할 수 있습니다.
- 노트북 1은 매개변수를 입력 매개변수 param1로 처리하고 새 출력 매개변수(예: output_param_2)를 설정합니다.
- 태스크 2: 노트북 2
- 두 번째 작업에서 노트북 2는 워크플로에 설정된 첫 번째 작업 "GetSetParameter"의 이름을 전달하여 위에 표시된 것처럼 노트북 코드에서 직접 참조하여 작업 1에서 출력 매개변수를 수신합니다.
- output_param_2의 값은 추가 처리에 사용할 수 있는 노트북 2로 전달됩니다.
이 접근 방식을 사용하면 작업과 노트북 간에 동적으로 값을 전달할 수 있으므로 워크플로우가 보다 유연하고 적응력이 뛰어납니다.

