예를 들어, 파이프라인 코드 편집기에서 이러한 함수를 사용하여 사용자 변수를 정의하거나 고급 조건을 빌드하십시오.
DataStage에서 전송된 파이프라인 함수를 보려면 DataStage 파이프라인 표현식 빌더에서 사용되는 함수를 참조하십시오.
확장 빌더는 함수 코딩을 위해 다음과 같은 카테고리를 사용합니다.
변환 함수
하나의 데이터 요소 형식을 다른 형식으로 변환합니다.
기본 데이터 유형 변환에 대한 표
유형 | 승인 | 리턴 | 구문 |
---|---|---|---|
double |
int, uint, string |
double |
double(val) |
duration |
string |
duration |
duration(string) 지속 기간은 초를 나타내는 "s" 로 끝나야 합니다. |
int |
int, uint, double, string, timestamp |
int |
int(val) |
timestamp |
string |
timestamp |
timestamp(string) RFC3339에 따라 문자열을 시간소인으로 변환합니다 (즉, "1972-01-01T10:00:20.021-05:00"). |
uint |
int, double, string |
uint |
uint(val) |
예
예를 들어, double
을(를) 입력하여 값을 캐스트하려면 다음을 수행하십시오.
double(%val%)
int | uint
에 double을 캐스트하면 결과가 범위를 벗어나는 경우 0및 오류로 반올림됩니다.
표준 함수
IBM Orchestration Pipeline에 고유한 기능입니다.
sub
위치 오프셋에서 시작하는 지정된 정규식과 일치하는 문자열의 하위 문자열을 대체합니다.
구문
(string).sub(substring (string), replacement (string), [occurrence (int), [offset (int)]])
리턴: 하위 문자열이 업데이트된 문자열입니다.
예
'aaabbbcccbbb'.sub('[b]+','RE')
'aaaREcccRE'를 리턴합니다.
형식
형식 지정자에 따라 문자열 또는 시간소인을 형식화하고 결과 문자열을 리턴합니다.
구문
문자열의 메소드로 형식
(string).format(parameter 1 (string or bool or number)... parameter 10 (string or bool or number))
리턴: 형식화된 입력 값을 포함하는 문자열.
시간소인의 메소드로 형식
(timestamp).format(layout(string))
리턴: 문자열 형식의 형식화된 시간소인입니다.
예
'number=%d, text=%s'.format(1, 'str')
'number=1, text=str' 문자열을 리턴합니다.
timestamp('2020-07-24T09:07:29.000-00:00').format('%Y/%m/%d')
'2020/07/24' 문자열을 리턴합니다.
now
현재 시간소인을 리턴합니다.
구문
now()
리턴: 현재 시간소인입니다.
parseTimestamp
현재 시간소인을 문자열 형식으로 리턴합니다.
구문
parseTimestamp([timestamp_string(string)] [layout(string)])
리턴: 현재 시간소인을 문자열 유형의 문자열로 리턴합니다.
예
parseTimestamp('2020-07-24T09:07:29Z')
'2020-07-24T09:07:29.000-00:00'을 리턴합니다.
분
목록의 최소값을 리턴합니다.
구문
(list).min()
리턴: 목록의 최소값입니다.
예
[1,2,3].min()
정수 1을 리턴합니다.
최대
목록의 최대 값을 리턴합니다.
구문
(list).max()
리턴: 목록의 최대값입니다.
예
[1,2,3].max()
정수 3을 리턴합니다.
argmin
목록에서 최소값 인덱스를 리턴합니다.
구문
(list).argmin()
리턴: 목록의 최소값에 대한 인덱스입니다.
예
[1,2,3].argmin()
정수 0을 리턴합니다.
argmax
목록에서 최대 값의 인덱스를 리턴합니다.
구문
(list).argmax()
리턴: 목록의 최대값에 대한 인덱스입니다.
예
[1,2,3].argmax()
정수 2를 리턴합니다.
합계
목록에 있는 값의 합계를 리턴합니다.
구문
(list).sum()
리턴: 목록의 최대값에 대한 인덱스입니다.
예
[1,2,3].argmax()
정수 2를 리턴합니다.
base64.decode
base64-encoded 문자열을 바이트로 선언합니다. 이 함수는 문자열 입력이 base64-encoded가 아닌 경우 오류를 리턴합니다.
구문
base64.decode(base64_encoded_string(string))
리턴: 바이트 형식의 디코딩된 base64-encoded 문자열입니다.
예
base64.decode('aGVsbG8=')
'hello'를 바이트 단위로 리턴합니다.
base64.encode
바이트를 base64-encoded 문자열로 인코드합니다.
구문
base64.encode(bytes_to_encode (bytes))
리턴: 원래 바이트 값의 인코드된 base64-encoded 문자열입니다.
예
base64.decode(b'hello')
'aGVsbG8='을 바이트로 리턴합니다.
charAt
지정된 위치에 있는 문자를 리턴합니다. 위치가 음수이거나 문자열의 길이보다 큰 경우 함수는 오류를 생성합니다.
구문
(string).charAt(index (int))
리턴: 지정된 위치의 정수 형식 문자입니다.
예
'hello'.charAt(4)
'o' 문자를 리턴합니다.
indexOf
검색 문자열의 첫 번째 어커런스의 정수 인덱스를 리턴합니다. 검색 문자열을 찾을 수 없는 경우 함수는 -1을 리턴합니다.
구문
(string).indexOf(search_string (string), [offset (int)])
리턴: 오프셋 이후의 첫 번째 문자 어커런스의 인덱스입니다.
예
'hello mellow'.indexOf('ello', 2)
정수 7을 리턴합니다.
lowerAscii
ASCII 문자가 소문자로 바뀐 새 문자열을 리턴합니다.
구문
(string).lowerAscii()
리턴: 새 소문자 문자열.
예
'TacoCat'.lowerAscii()
문자열 'TACOCAT'를 리턴합니다.
replace
대상을 기반으로 새 문자열을 리턴합니다. 이 문자열은 검색 문자열의 어커런스를 대체 문자열로 대체합니다(있는 경우). 함수는 작성할 하위 문자열 대체 수에 대한 선택적 제한을 허용합니다.
구문
(string).replace(search_string (string), replacement (string), [offset (int)])
리턴: 검색 문자열의 어커런스를 갖는 새 문자열이 바뀝니다.
예
'hello hello'.replace('he', 'we')
문자열 'wello wello'를 리턴합니다.
split
구분 기호를 사용하여 입력에서 분할된 문자열 목록을 리턴합니다. 이 함수는 분할에 의해 생성되는 하위 문자열의 수에 대한 한계를 지정하는 선택적 인수를 허용합니다.
구문
(string).split(separator (string), [limit (int)])
리턴: 문자열 목록으로서 분할 문자열입니다.
예
'hello hello hello'.split(' ')
문자열 목록 ['hello', 'hello', 'hello'] 를 리턴합니다.
substring
문자 위치에 해당하는 숫자 범위가 주어진 하위 문자열을 리턴합니다. 선택적으로 문자열의 끝까지 문자 위치에서 하위 문자열의 후미 범위를 생략할 수 있습니다.
구문
(string).substring(start (int), [end (int)])
리턴: 문자열의 지정된 인덱스에서 하위 문자열입니다.
예
'tacocat'.substring(4)
'cat' 문자열을 리턴합니다.
trim
대상 문자열에서 선행 및 후행 공백을 제거하는 새 문자열을 리턴합니다. trim 함수는 0너비 공백을 포함하지 않는 공백의 유니코드 정의를 사용합니다.
구문
(string).trim()
리턴: 공백이 제거된 새 문자열.
예
' \ttrim\n '.trim()
문자열 'trim'을 리턴합니다.
upperAscii
모든 ASCII 문자가 대문자로 된 새 문자열을 리턴합니다.
구문
(string).upperAscii()
리턴: 모든 문자가 있는 새 문자열이 대문자로 변환됩니다.
예
'TacoCat'.upperAscii()
문자열 'TACOCAT'를 리턴합니다.
크기
문자열, 바이트, 목록 또는 맵의 길이를 리턴합니다.
구문
(string | bytes | list | map).size()
리턴: 문자열, 바이트, 목록 또는 맵 배열의 길이입니다.
예
'hello'.size()
정수 5를 리턴합니다.
'hello'.size()
정수 5를 리턴합니다.
['a','b','c'].size()
정수 3을 리턴합니다.
{'key': 'value'}.size()
정수 1을 리턴합니다.
contains
문자열 피연산자에 하위 문자열이 포함되어 있는지 테스트합니다.
구문
(string).contains(substring (string))
리턴: 문자열 피연산자에 하위 문자열이 존재하는지 여부에 대한 부울 값입니다.
예
'hello'.contains('ll')
true를 리턴합니다.
endsWith
문자열 피연산자가 지정된 접미어로 끝나는지 여부를 테스트합니다.
구문
(string).endsWith(suffix (string))
리턴: 문자열이 문자열 피연산자에 지정된 접미부로 끝나는지 여부에 대한 부울 값입니다.
예
'hello'.endsWith('llo')
true를 리턴합니다.
startsWith
문자열 피연산자가 접두부 인수로 시작하는지 여부를 테스트합니다.
구문
(string).startsWith(prefix (string))
리턴: 문자열이 문자열 피연산자에서 지정된 접두부로 시작하는지 여부에 대한 부울 값입니다.
예
'hello'.startsWith('he')
true를 리턴합니다.
matches
문자열 피연산자가 정규식과 일치하는지 여부를 테스트합니다.
구문
(string).matches(prefix (string))
리턴: 문자열이 지정된 정규식과 일치하는지의 부울 값입니다.
예
'Hello'.matches('[Hh]ello')
true를 리턴합니다.
getDate
시간대가 있는 날짜 (기본 협정 세계시 (UTC)) 에서 날짜를 가져오십시오 (1기반 색인화).
구문
(timestamp).getDate([time_zone (string)])
리턴: 1기반 색인화가 있는 월의 일.
예
timestamp('2020-07-24T09:07:29.000-00:00').getDate()
24를 리턴합니다.
getDayOfMonth
시간대 (기본 협정 세계시 (UTC)) 를 사용하여 날짜에서 날짜를 가져오십시오. 0기반 색인 작성입니다.
구문
(timestamp).getDayOfMonth([time_zone (string)])
리턴: 0기반 색인이 있는 월의 일.
예
timestamp('2020-07-24T09:07:29.000-00:00').getDayOfMonth()
23을 리턴합니다.
getDayOfWeek
시간대 (기본 협정 세계시 (UTC)) 를 사용하여 날짜에서 요일을 가져오고 일요일에는 0을 사용하여 색인화합니다.
구문
(timestamp).getDayOfWeek([time_zone (string)])
리턴: 0기반 색인이 있는 요일.
예
timestamp('2020-07-24T09:07:29.000-00:00').getDayOfWeek()
5를 리턴합니다.
getDayOfYear
시간대가 있는 날짜 (기본 협정 세계시 (UTC)), 0기반 색인화에서 해당 연도의 일을 가져옵니다.
구문
(timestamp).getDayOfYear([time_zone (string)])
리턴: 0기반 색인 작성을 사용하는 연도의 일.
예
timestamp('2020-07-24T09:07:29.000-00:00').getDayOfYear()
205를 리턴합니다.
getFullYear
시간대가 있는 날짜에서 연도를 가져옵니다 (기본 협정 세계시 (UTC)).
구문
(timestamp).getFullYear([time_zone (string)])
리턴: 날짜로부터의 연도입니다.
예
timestamp('2020-07-24T09:07:29.000-00:00').getFullYear()
2020을 리턴합니다.
getMonth
시간대가 0-11인날짜에서 월을 가져옵니다.
구문
(timestamp).getMonth([time_zone (string)])
리턴: 날짜로부터의 월입니다.
예
timestamp('2020-07-24T09:07:29.000-00:00').getMonth()
6을 리턴합니다.
getHours
시간대가 0-23인날짜에서 시간을 가져옵니다.
구문
(timestamp).getHours([time_zone (string)])
리턴: 날짜로부터의 시간입니다.
예
timestamp('2020-07-24T09:07:29.000-00:00').getHours()
9를 리턴합니다.
getMinutes
시간대가 0-59인날짜에서 분을 가져옵니다.
구문
(timestamp).getMinutes([time_zone (string)])
리턴: 날짜로부터 분입니다.
예
timestamp('2020-07-24T09:07:29.000-00:00').getMinutes()
7을 리턴합니다.
getSeconds
시간대가 0-59인날짜에서 초를 가져옵니다.
구문
(timestamp).getSeconds([time_zone (string)])
리턴: 날짜로부터 두 번째입니다.
예
timestamp('2020-07-24T09:07:29.000-00:00').getSeconds()
29를 리턴합니다.
getMilliseconds
시간대가 0-999인날짜에서 밀리초를 가져옵니다.
구문
(timestamp).getMilliseconds([time_zone (string)])
리턴: 날짜의 밀리초입니다.
예
timestamp('2020-07-24T09:07:29.021-00:00').getMilliseconds()
21을 리턴합니다.
고급 글로벌 오브젝트에 대한 액세스
다음 파이프라인 코드를 사용하여 노드 출력, 사용자 변수 및 파이프라인 매개변수를 가져오십시오.
사용자 변수 가져오기
사용자 변수의 최신 값을 가져옵니다.
구문
vars.<var name>
예
예 | 출력 |
---|---|
vars.my_user_var |
사용자 변수 my_user_var 의 값을 가져옵니다. |
매개변수 가져오기
플로우 매개변수를 가져옵니다.
구문
params.<param name>
예
예 | 출력 |
---|---|
params.a |
a 매개변수의 값을 가져옵니다. |
매개변수 세트 가져오기
플로우 매개변수 세트를 가져옵니다.
구문
param_set.<param_set_name>.<param_name>
예
예 | 출력 |
---|---|
param_set.ps.a |
매개변수 세트 ps 에서 매개변수 a 의 값을 가져옵니다. |
param_sets.config |
파이프라인 구성 값을 가져옵니다. |
param_sets.config.deadline |
구성 매개변수 세트에서 날짜 오브젝트를 가져옵니다. |
param_sets.ps["$PARAM"] |
매개변수 세트 ps 에서 매개변수 $PARAM 의 값을 가져옵니다. |
태스크 결과 가져오기
파이프라인 태스크가 실행을 완료한 후 파이프라인 태스크에서 파이프라인 태스크의 결과 출력 및 기타 메트릭을 가져옵니다.
구문
tasks.<node id>.<output name>
예
예 | 출력 |
---|---|
tasks.run_datastage_job |
작업 출력의 결과 사전을 가져옵니다. |
tasks.run_datastage_job.results.score |
작업 출력의 score 값을 가져옵니다. |
tasks.run_datastage_job.results.timestamp |
작업 실행의 종료 시간소인을 가져옵니다. |
tasks.run_datastage_job.results.error |
작업 실행에서 오류 수를 가져옵니다. |
tasks.loop_task.loop.counter |
작업 실행의 현재 루프 반복 카운터를 가져옵니다. |
tasks.loop_task.loop.item |
작업 실행의 현재 루프 반복 항목을 가져옵니다. |
tasks.run_datastage_job.results.status |
작업 실행의 성공 또는 실패 상태를 가져옵니다. |
tasks.run_datastage_job.results.status_message |
작업 실행의 상태 메시지를 가져옵니다. |
tasks.run_datastage_job.results.job_name |
작업 이름을 가져옵니다. |
tasks.run_datastage_job.results.job |
작업의 Cloud Pak for Data 경로를 가져옵니다. |
tasks.run_datastage_job.results.job_run |
작업 실행의 Cloud Pak for Data 실행 경로를 가져옵니다. |
파이프라인 컨텍스트 오브젝트 가져오기
범위 (프로젝트, 공간, 카탈로그) 에서 실행되는 파이프라인의 컨텍스트에서 평가되는 값을 가져옵니다.
예
예 | 출력 |
---|---|
ctx.scope.id |
범위 ID 가져오기 |
ctx.scope.type |
"project", "space" 또는 "catalog" 를 리턴합니다. |
ctx.scope.name |
범위 이름 가져오기 |
ctx.pipeline.id |
파이프라인 ID 가져오기 |
ctx.pipeline.name |
파이프라인 이름 가져오기 |
ctx.job.id |
작업 ID 가져오기 |
ctx.run_datastage_job.id |
작업 실행 ID 가져오기 |
ctx.run_datastage_job.started_at |
작업 실행 시작 시간 가져오기 |
ctx.user.id |
사용자 ID를 가져옵니다. |
오류 상태 가져오기
예외 핸들러가 트리거되면 오류 오브젝트가 작성되고 예외 핸들러 내에서만 액세스할 수 있게 됩니다.
예
예 | 출력 |
---|---|
error.status |
작업 실행의 성공 또는 실패 상태 (일반적으로 실패) 를 가져옵니다. |
error.status_message |
오류 상태 메시지를 가져옵니다. |
error.job |
작업의 Cloud Pak for Data 경로를 가져옵니다. |
error.run_datastage_job |
작업의 Cloud Pak for Data 실행 경로를 가져옵니다 ( watsonx에서 사용할 수 없음). |
상위 주제: 파이프라인에 조건 추가