JSON 파일에 필요한 구성을 추가하여 메인프레임 커넥터 트랜스코더를 구성할 수 있습니다.
이 파일을 트랜스코더 구성 파일이라고 합니다. 구성 섹션에 지정된 대로 구성을 정의해야 합니다.
qsam encode
및 qsam decode
명령어는 트랜스코더 구성 파일을 사용하여 데이터 트랜스코딩을 실행합니다.
이 페이지에서는 Mainframe Connector 트랜스코더를 구성하는 다양한 방법을 설명합니다.
구성
Configuration
객체는 트랜스코더 구성의 루트입니다.
여기에는 트랜스코더의 모든 구성 옵션이 포함되어 있습니다.
JSON 표현 |
---|
{ "defaults": object ( |
필드 | |
---|---|
defaults |
Cobol 아키타입의 기본 필드 수정자를 지정합니다. |
field_suffixes |
필드 접미사를 지정합니다. |
field_overrides |
필드 재정의를 지정합니다. |
transformations |
필드 변환을 지정합니다. |
schema_validation_mode |
스키마 유효성 검사 모드를 지정합니다. |
DefaultsSection
DefaultsSection
객체는 cobol 유형별로 기본 수정사항을 지정하는 데 사용할 수 있습니다.
이는 접미사 또는 재정의 수정 전에 적용됩니다.
JSON 표현 |
---|
{ "alpha_numeric_display": object ( |
필드 | |
---|---|
alpha_numeric_display |
영숫자 (PIC X) 필드의 기본값을 지정합니다. |
numeric_display |
숫자 표시 (지역화된 소수점) 필드의 기본값을 지정합니다. |
binary |
바이너리 숫자 (COMP) 필드의 기본값을 지정합니다. |
packed_decimal |
패킹된 소수점 (COMP-3) 필드의 기본값을 지정합니다. |
national |
국가 (PIC N) 필드의 기본값을 지정합니다. |
utf8 |
UTF-8 (PIC U) 필드의 기본값을 지정합니다. |
dbcs |
dbcs (DISPLAY-1) 필드의 기본값입니다. |
hexadecimal_floating_point |
16진수 부동 소수점 (COMP-1, COMP-2) 필드의 기본값입니다. |
FieldSuffix
필드 접미사는 접미사가 있는 모든 필드에 적용됩니다.
필드가 하이픈 (-
) 또는 밑줄 (_
)로 끝나고 그 뒤에 접미사가 오는 경우 필드가 일치합니다.
접미사는 대소문자를 구분하지 않습니다.
FieldSuffix
수정자는 FieldOverride
수정자 뒤에 적용됩니다.
예를 들어 NID
접미사에 정의된 수정자는 FLD-NID
라는 필드에는 적용되지만 FUNID
필드에는 적용되지 않습니다.
JSON 표현 |
---|
{ "suffix": string, "is_inverse": boolean, "modifier": object ( |
필드 | |
---|---|
suffix |
이 접미사가 있는 필드에는 수정자가 적용됩니다. |
is_inverse |
수정자가 역 필드 수정자인지 여부를 지정합니다.
역 필드 수정자는 수정자가 있는 필드와 이름이 동일한 다른 필드에 수정자를 적용합니다(수정자 없이). 예를 들어 동일한 레코드에 역 필드 수정자를 사용할 때는 필드 이름을 접미사가 있는 필드를 참조하는 데 전통적으로 사용할 수 있는 경우마다 특수 식별자 예를 들어 null 표시기 필드를 만들려면 |
modifier |
일치하는 필드에 적용할 수정자를 지정합니다. |
FieldOverride
지정된 필드의 디코딩 및 인코딩 체인을 재정의하거나 수정합니다.
JSON 표현 |
---|
{ "field": string, "modifier": object ( |
필드 | |
---|---|
field |
수정자를 적용할 필드의 이름을 지정합니다. |
modifier |
일치하는 필드에 적용할 수정자를 지정합니다. |
변환
뷰 변환은 테이블과 QSAM 파일 간의 관계를 수정하는 데 사용됩니다. 변환은 항상 데이터의 관점에서 표현됩니다. 개념은 BigQuery에서 테이블을 보는 것과 유사합니다.
JSON 표현 |
---|
{ "exclude": object ( |
필드 | |
---|---|
exclude |
|
unnest |
|
move |
|
rename |
|
FieldModifier
필드 수정자를 사용하면 특정 필드의 인코딩 또는 디코딩을 수정할 수 있습니다. 일부 수정자는 일부 필드에만 적용할 수 있습니다. 자세한 내용은 특정 수정자의 문서를 참고하세요.
JSON 표현 |
---|
{ "filler": object ( |
필드 | |
---|---|
filler |
필드를 무시하고 제외합니다. |
null_if |
조건에서 기본 필드의 값을 null로 설정합니다. |
format_date |
문자열 필드의 형식을 날짜로 지정합니다. |
chain |
여러 수정자를 함께 체이닝합니다. |
zoned_decimal |
영역화된 필드 소수점 구성 재정의 |
binary |
바이너리 필드 구성을 재정의합니다. |
packed_decimal |
패킹된 소수점 필드 구성을 재정의합니다. |
null_if_invalid |
오류가 발생할 때 선을 스필하는 대신 필드를 null로 설정합니다. |
bytes |
바이트 필드를 재정의합니다. |
varlen |
레코드를 가변 길이 필드로 설정합니다. |
string |
문자열 필드 구성 재정의 |
null_if_empty |
필드가 비어 있으면 기본 필드의 값을 null로 설정합니다. |
format_timestamp |
문자열 필드의 형식을 타임스탬프로 지정합니다. |
hfp |
이 필드를 16진수 부동 소수점으로 설정합니다. |
제외
결과 테이블에서 필드를 제외하지만 디코딩 또는 인코딩은 계속 진행합니다. 이 방법은 필드를 테이블로 전송할 필요는 없지만 트랜스코딩에 필수인 경우에 유용합니다. 예를 들어 null 표시기 또는 길이 필드는 테이블에서 생략할 수 있습니다.
트랜스코딩을 완전히 우회하려면 필러 수정자를 적용합니다.
JSON 표현 |
---|
{ "field": string |
필드 | |
---|---|
field |
제외할 필드를 지정합니다. |
Unnest
필드의 중첩을 해제합니다.
JSON 표현 |
---|
{ "field": string, "format": string |
필드 | |
---|---|
field |
중첩을 해제할 필드 지정 |
format |
새 필드 형식을 지정합니다.
중첩되지 않은 구조체의 경우 중첩되지 않은 배열과 목록의 경우 |
이동
레코드에서 필드를 이동합니다.
JSON 표현 |
---|
{ "field": string, "offset": int |
필드 | |
---|---|
field |
이동할 필드를 지정합니다. |
offset |
필드를 이동해야 하는 앞뒤 위치 수를 지정합니다. |
이름 바꾸기
정규 표현식 일치를 기반으로 하나 이상의 필드 이름을 바꿉니다.
예를 들어 모든 하이픈을 밑줄로 바꾸려면 다음 JSON 형식({"find": "\\-", "replace":"_"}
)을 사용합니다.
JSON 표현 |
---|
{ "find": string, "replace": string |
필드 | |
---|---|
find |
이름을 바꿀 필드를 식별하는 Java 정규 표현식 패턴을 지정합니다. 패턴은 전체 필드 이름과 일치합니다. 패턴이 필드 이름의 일부와 일치하면 필드가 일치하는 것으로 간주됩니다. 예:
|
replace |
일치하는 필드의 새 이름을 지정합니다.
예:
|
가축 영양제
필드를 디코딩하거나 인코딩하지 않도록 지정합니다. 또한 디코딩 프로세스 중에 결과 테이블에서 제외됩니다. 크기가 알려진 모든 필드에 이 수정자를 적용할 수 있습니다.
다음과 같이 빈 JSON 객체를 제공합니다.
JSON 표현 |
---|
{ |
NullIf
조건이 충족되면 필드를 null로 설정합니다. null_value
, non_null_value
또는 둘 다를 지정해야 합니다.
null 표시기 필드를 만들려면 null_if
필드 수정자를 사용하여 FieldSuffix
를 사용하고 다음 예와 같이 is_inverse
를 true
로 설정하면 됩니다.
예: Null-indicator
null 표시기 필드를 만들려면 다음과 같이null_if
필드 수정자를 사용하면 됩니다.
{ "field_suffixes": [ { "suffix": "NID", "is_inverse": true, "modifier": { "null_if": { "null_value": "?", "target_field": "$self" } } } ] }
NID
인 모든 필드가 사실상 null 표시기가 될 수 있습니다.
01 REC. 02 FIELD PIC X(10). 02 FIELD-NID PIC X(1).
예: 바이너리 null 표시기
binary
null 표시기 필드를 만들려면 다음과 같이 binary
및 null_if
필드 수정자를 사용하면 됩니다.
{ "field_suffixes": [ { "suffix": "NID", "modifier": { "binary": {} } }, { "suffix": "NID", "is_inverse": true, "modifier": { "null_if": { "null_value": "15", "target_field": "$self" } } } ] }
NID
인 모든 필드가 이전 예의 동일한 사본첩을 사용하여 binary
null 표시기가 될 수 있습니다.
예: 바이트 null 표시기
bytes
null 표시기 필드를 만들려면 다음과 같이 bytes
및 null_if
필드 수정자를 사용하면 됩니다. null 및 null이 아닌 값은 HEX
로 표현됩니다.
{ "field_suffixes": [ { "suffix": "NID", "modifier": { "bytes": {} } }, { "suffix": "NID", "is_inverse": true, "modifier": { "null_if": { "null_value": "FF", "target_field": "$self" } } } ] }
NID
인 모든 필드가 이전 예의 동일한 사본첩을 사용하여 효과적으로 bytes
null 표시기가 될 수 있습니다.
JSON 표현 |
---|
{ "target_field": string, "null_value": string, "non_null_value": string |
필드 | |
---|---|
target_field |
값을 확인하려는 필드를 지정합니다. 필드가 범위에 있어야 합니다. |
null_value |
지정된 경우 |
non_null_value |
지정된 경우 |
FormatDate
지원되는 형식 중 하나를 사용하여 문자열의 형식을 날짜로 지정합니다. 이 수정자는 크기가 지정된 필드에만 적용할 수 있습니다. 디코딩 프로세스 중에 형식 중 하나가 문자열과 일치할 때까지 형식이 순서대로 테스트됩니다. 인코딩 프로세스 중에 첫 번째 형식이 사용되고 나머지는 무시됩니다.
JSON 표현 |
---|
{ "formats": object ( |
필드 | |
---|---|
formats |
날짜 형식 목록입니다. |
ModifierChain
수정자 체인을 지정하여 여러 수정자를 연속으로 적용합니다. 수정자는 지정된 순서대로 적용됩니다.
JSON 표현 |
---|
{ "modifiers": object ( |
필드 | |
---|---|
modifiers |
적용할 수정자 목록을 지정합니다. |
ZonedDecimal
시간대 구분 소수점의 인코딩 및 디코딩과 관련된 다양한 옵션을 설정합니다. 이 수정자는 소수점 필드에만 적용할 수 있습니다.
JSON 표현 |
---|
{ "logical_type": enum ( |
필드 | |
---|---|
logical_type |
필드를 디코딩하거나 인코딩할 때 사용할 논리적 유형을 지정합니다. |
encoding |
필드가 인코딩되는 인코딩입니다. |
바이너리
이전의 모든 수정자를 무시하고 이 필드를 바이너리 숫자로 취급합니다.
JSON 표현 |
---|
{ "signedness": enum ( |
필드 | |
---|---|
signedness |
숫자의 부호입니다. |
PackedDecimal
이 필드를 PackedDecimal로 설정합니다.
JSON 표현 |
---|
{ "logical_type": enum ( |
필드 | |
---|---|
logical_type |
논리 유형을 재정의합니다. 기본적으로 Mainframe Connector는 정밀도와 확장을 기반으로 최적의 논리 유형을 사용합니다. |
NullIfInvalid
트랜스코딩에 실패하면 값을 null로 취급합니다. 이 수정자는 크기가 지정된 필드에만 적용할 수 있습니다. 이 오류는 무시되며 오버플로 데이터 세트에 로깅되지 않습니다. 디코딩 프로세스 중에 이 레코드의 이 필드 값은 null입니다. 인코딩 프로세스 중에 데이터를 쓸 수 없는 경우 전체 필드가 null 바이트로 채워집니다.
다음과 같이 빈 JSON 객체를 제공합니다.
JSON 표현 |
---|
{ |
바이트
수정자 체이닝을 무시하고 데이터를 원시 바이트로 취급합니다. 이 수정자는 크기에 관계없이 모든 필드에 적용할 수 있습니다.
다음과 같이 빈 JSON 객체를 제공합니다.
JSON 표현 |
---|
{ |
VarLen
가변 길이 필드를 나타냅니다.
가변 길이 필드에는 다음 세 부분이 포함됩니다.
- 하위 필드 2개가 포함된 그룹 항목입니다.
- 그룹 항목 내의 필드로, 트랜잭션 데이터의 길이가 포함됩니다.
- 데이터가 포함된 그룹 항목 내 필드입니다.
가변 길이 필드의 이름은 그룹 이름이 됩니다.
다음과 같이 빈 JSON 객체를 제공합니다.
JSON 표현 |
---|
{ |
문자열
문자열 디코딩 및 인코딩과 관련된 다양한 옵션을 설정합니다. 문자열 필드에만 적용할 수 있습니다.
JSON 표현 |
---|
{ "encoding": string, "trim_suffix": boolean, "pad_char": string |
필드 | |
---|---|
encoding |
필드가 인코딩되는 인코딩입니다. |
trim_suffix |
true로 설정하면 문자열 끝의 공백이 잘립니다. trim_suffix는 디코딩에만 영향을 미치며 인코딩은 trim_suffix를 무시합니다. 공백으로만 구성된 문자열은 빈 문자열이 됩니다. |
pad_char |
|
NullIfEmpty
필드의 모든 바이트가 0이면 필드를 null로 설정해야 합니다.
다음과 같이 빈 JSON 객체를 제공합니다.
JSON 표현 |
---|
{ |
FormatTimestamp
제공된 형식 중 하나를 사용하여 문자열을 타임스탬프로 형식 지정합니다. 크기 필드에만 적용할 수 있습니다. 디코딩 중에 형식 중 하나가 문자열과 일치할 때까지 형식이 순서대로 테스트됩니다. 인코딩 중에 첫 번째 형식이 사용되고 나머지는 무시됩니다.
JSON 표현 |
---|
{ "formats": object ( |
필드 | |
---|---|
formats |
타임스탬프 형식 목록입니다. |
HFP
이 필드를 16진수 부동 소수점으로 설정합니다.
다음과 같이 빈 JSON 객체를 제공합니다.
JSON 표현 |
---|
{ |
DateTimeFormat
필드를 날짜로 변환할 때 사용할 크기 및 패턴입니다.
JSON 표현 |
---|
{ "size": int, "pattern": string |
필드 | |
---|---|
size |
이 패턴이 적용되는 필드의 크기를 지정합니다. |
pattern |
날짜 형식 지정자 패턴입니다. 유효한 형식 지정자 패턴에 관한 자세한 내용은 DateTimeFormatter 클래스를 참고하세요. |
BinarySignedness
십진수 필드에 사용할 논리 유형입니다.
열거형 | |
---|---|
UNSPECIFIED |
규모와 정밀도에 따라 가장 최적의 유형을 사용합니다. |
SIGNED |
64비트를 사용하여 값을 저장합니다. 이 수정자는 정밀도가 18 이하이고 척도가 0인 숫자에만 작동합니다. |
UNSIGNED |
64비트를 사용하여 값을 저장합니다. 이 수정자는 정밀도가 18 이하인 숫자에만 작동합니다. |
DecimalLogicalType
십진수 필드에 사용할 논리 유형입니다.
열거형 | |
---|---|
AUTO |
규모와 정밀도에 따라 가장 최적의 유형을 사용합니다. |
LONG |
64비트를 사용하여 값을 저장합니다. 이 수정자는 정밀도가 18 이하이고 척도가 0인 숫자에만 작동합니다. |
DECIMAL64 |
64비트를 사용하여 값을 저장합니다. 이 수정자는 정밀도가 18 이하인 숫자에만 작동합니다. |
BIG_DECIMAL |
값을 무제한 십진수 값으로 저장합니다. 가장 느린 옵션이지만 모든 크기에서 모든 정밀도의 소수점을 지원합니다. |
BIG_INTEGER |
값을 제한되지 않은 정수 값으로 저장합니다. 가장 느린 옵션이지만 정밀도가 어떤 정수든지 지원합니다. |
ZonedDecimalEncoding
존 십진수 필드를 디코딩하거나 인코딩할 때 사용할 인코딩을 지정합니다.
열거형 | |
---|---|
UNSPECIFIED |
수정자 체인에 지정된 인코딩을 유지합니다.
수정자가 지정되지 않은 경우 EBCDIC 이 사용됩니다. |
EBCDIC |
EBCDIC 인코딩을 사용합니다. |
ASCII |
ASCII 인코딩을 사용합니다. |
SchemaValidationMode
Copybook 컴파일 중에 사용되는 스키마 유효성 검사 모드입니다. 이 모드를 사용하면 특정 대상 데이터 형식과의 호환성을 보장할 수 있습니다.
열거형 | |
---|---|
DEFAULT |
기본 스키마 유효성 검사 모드입니다. 이 모드를 사용하면 카피북 내에서 고유한 필드 이름을 보장할 수 있습니다. |
BIG_QUERY |
BigQuery 호환성을 위한 스키마 유효성 검사 모드입니다. 이 모드는 기본 유효성 검사를 확장하여 문서의 스키마가 BigQuery의 데이터 유형과 호환되도록 합니다. |