의 매개 변수 Synthetic Data Generator
매개변수는 스크립트에서 직접 값을 하드 코딩하는 대신 런타임에 값을 전달하는 유용한 방법을 제공합니다. 그런 다음 스크립트를 실행할 때마다 이러한 매개 변수를 변경할 수 있습니다.
플로우는 종종 몇 가지 매개변수가 정의된 상태로 미리 구축되어 있습니다. 그런 다음 이러한 매개변수는 흐름이 실행되기 전에 수정됩니다. 예를 들어 Synthetic Data Generator 플로우를 만들고 매개 변수를 사용하여 데이터 소스를 정의할 수 있습니다. 그런 다음 매개 변수를 사용하여 흐름 스크립트를 실행할 때마다 다른 데이터 소스를 빠르게 선택할 수 있습니다. Synthetic Data Generator 런타임이 시작될 때마다 사용자가 값을 입력하도록 매개변수를 설정할 수도 있습니다.
'플로우 속성' 대화상자를 사용하거나 스크립팅을 통해 매개변수와 해당 값을 정의할 수 있습니다. 스크립팅을 통해 생성한 매개변수는 '흐름 속성' 대화 상자에서도 볼 수 있습니다.
플로우 속성에서 매개변수 추가하기
'플로우 속성' 대화 상자를 사용하여 매개변수를 추가할 수 있습니다:
- 도구 모음에서 플로우 속성 아이콘
을 클릭합니다.
- 매개변수 탭에서 값 추가를 클릭합니다.
- 테이블 행을 작성하여 매개변수를 정의합니다.
- 선택 사항 : Synthetic Data Generator 런타임이 시작될 때마다 사용자가 매개변수 값을 입력하도록 하려면 프롬프트? 를 선택합니다.
매개 변수를 사용한 스크립팅
스크립트를 사용하여 매개변수를 수정하는 작업에는 다음 작업이 포함됩니다:
- 매개변수 생성 또는 수정
- 관련 흐름에서 노드 찾기
- 매개변수를 사용하여 노드 또는 플로우 설정(또는 둘 다) 변경하기
예를 들어 다음 스크립트는 DataSource 및 DataSourceID 이라는 두 개의 매개 변수를 생성하고 bank_customer_sample_data.csv 및 94akc75b-1fef-4h98-8445-6dfb68741484 이라는 값을 제공합니다. 이러한 매개변수는 프로젝트에서 데이터 자산을 정의하는 데 사용할 수 있습니다.
import sdg.api
stream = sdg.script.stream()
stream.setParameterStorage("DataSource", sdg.api.ParameterStorage.STRING)
stream.setParameterValue("DataSource", "bank_customer_sample_data.csv")
stream.setParameterLabel("DataSource", "datasourcetable")
stream.setParameterType("DataSource", sdg.api.ParameterType.TYPELESS)
stream.setParameterStorage("DataSourceID", sdg.api.ParameterStorage.STRING)
stream.setParameterValue("DataSourceID", "94edc75b-1fef-4c98-8445-6dfa69741484")
stream.setParameterLabel("DataSourceID", "datasourceid")
stream.setParameterType("DataSourceID", sdg.api.ParameterType.TYPELESS)
그러면 스크립트는 특정 데이터 소스를 사용하도록 하드코딩하는 대신 두 매개변수를 사용하도록 가져오기 노드를 변경할 수 있습니다. 다음 스크립트에서는 매개변수로 정의된 데이터 자산을 사용합니다.
import sdg.api
importnode = stream.findByType("dataassetimport", None)
importnode.setPropertyValue("asset_type", "DataAsset")
sourcename = stream.getParameterValue("DataSource")
sourceid = stream.getParameterValue("DataSourceID")
importnode.setPropertyValue("asset_name", sourcename)
importnode.setPropertyValue("asset_id", sourceid)
연결을 매개변수로 정의할 수도 있습니다. 다음 스크립트는 매개변수로 정의된 연결을 사용하도록 가져오기 노드를 변경합니다.
import sdg.api
importnode = stream.findByType("dataassetimport", None)
importnode.setPropertyValue("asset_type", "Connection")
sourcename = stream.getParameterValue("DataSource")
sourceid = stream.getParameterValue("DataSourceID")
importnode.setPropertyValue("connection_name", sourcename)
importnode.setPropertyValue("connection_id", sourceid)
매개변수 함수
Stream 클래스는 ParameterProvider 객체에 의해 정의된 함수 집합을 구현합니다. 이러한 함수는 스크립트에서 호출할 수 있습니다. Session 해당 함수들을 정의하는 객체를 반환하는 getParameters() 메서드를 제공합니다.
| 방법 | 리턴 유형 | 설명 |
|---|---|---|
p.parameterIterator() |
이테레이터 | 이 객체의 매개변수 이름을 포함하는 반복자를 반환합니다. |
p.getParameterDefinition(parameterName) |
ParameterDefinition | 지정된 이름의 매개변수에 대한 매개변수 정의를 반환하거나, 해당 매개변수가 이 None 제공자에 존재하지 않는 경우 결과는 메서드가 호출된 시점의 정의 스냅샷이며, 이 공급자를 통해 매개변수에 대한 후속 수정 사항이 반드시 반영되지는 않습니다. |
p.getParameterLabel(parameterName) |
문자열 | 지정된 매개변수의 레이블을 반환하며, 해당 매개변수가 존재하지 않으면 None 를 반환합니다. |
p.getParameterType(parameterName) |
ParameterType | 지정된 매개변수의 유형을 반환하며, 해당 매개변수가 존재하지 않으면 None 를 반환합니다. |
p.getParameterStorage(parameterName) |
ParameterStorage | 지정된 매개변수의 저장소를 반환하거나, 해당 매개변수가 None 존재하지 않으면 null을 반환합니다. |
p.getParameterValue(parameterName) |
오브젝트 | 지정된 매개변수의 값을 반환하거나, 해당 매개변수가 None 존재하지 않으면 를 반환합니다. |
p.setParameterLabel(parameterName, label) |
적용할 수 없습니다. | 지정된 매개변수의 레이블을 설정합니다. |
p.setParameterStorage(parameterName, storage) |
적용할 수 없습니다. | 지정된 매개변수의 저장 위치를 설정합니다. |
p.setParameterType(parameterName, type) |
적용할 수 없습니다. | 지정된 매개변수의 유형을 설정합니다. |
p.setParameterValue(parameterName, value) |
적용할 수 없습니다. | 지정된 매개변수의 값을 설정합니다. |