JSON 출력 구성
다음 표는 operation 및 row 모델을 보여줍니다.
| 모델 | 구성 | 지도 |
|---|---|---|
op |
레코드 레벨의 메타데이터 및 before 및 after 객체 아래의 열 값 |
CDC는 명시적 이미지 의미를 보존하기 때문에 권장됩니다. |
row |
중첩된 이미지 객체가 아닌 레코드 레벨의 열 값입니다. | 다운스트림 계약에 플랫 행이 필요한 경우에만 사용합니다. 테이블별 런타임 스키마는 각 작업에 대해 표시되는 이미지를 정의합니다. |
op 및 flatten=true |
중첩된 이미지 이름은 열 이름과 연결됩니다(예: 구분자가 .인 경우 before.STATUS 및 after.STATUS). |
구별 전후에 여전히 필요한 평평한 싱크대에 유용합니다. |
핵심 JSON 속성
| 속성 | 기본값/제한 | 설명 |
|---|---|---|
$schema |
ogg:outputFormatJson |
JSON 출력 구성 스키마 식별자입니다. |
model |
op, op 또는 row |
모델 기록 |
beforeImageName |
before, 1-32자 |
공정 모델에서 이전 이미지 객체의 이름입니다. |
afterImageName |
after, 1-32자 |
공정 모델에서 후 이미지 객체의 이름입니다. |
omitNullColumnValues |
false |
값이 null인 열을 생략합니다. 이렇게 하면 생략된 필드에 대해 누락되거나 널을 구분할 수 없습니다. |
treatAllColumnsAsStrings |
false |
모든 열 값을 고유 JSON 기본 데이터 유형 대신 문자열로 기록합니다. |
flatten |
false |
공정 모델에서 이미지 열 앞과 뒤를 평평하게 합니다. |
flattenDelimiter |
0-32 문자 | 단순화 시 이미지 이름과 열 이름 사이의 구분자입니다. |
delimiter |
0-32 문자 | 포맷터 레코드 구분자입니다. WebSocket 소비자는 일반적으로 AsyncAPI YAML에 설명된 기본 어레이 계약을 유지해야 합니다. |
staticFields |
객체/없음 | 상수 값이 있는 필드를 출력 레코드에 추가합니다. |
operationStrings |
삽입, 갱신, 삭제, 자르기, 갱신, DDL | 작업 레이블을 사용자정의합니다. 변경하기 전에 모든 소비자와 조정합니다. |
스키마 및 메타데이터 배출
| 속성 | 기본값 | 효과 |
|---|---|---|
includeJSONSchemaRecord |
true |
스트림 메타데이터, 객체 메타데이터, DML 및 DDL 레코드에 대한 JSON 스키마 레코드를 내보냅니다. |
includeObjectMetadataRecords |
true |
테이블 열 메타데이터를 내보냅니다. |
includeStreamMetadataRecord |
true |
생산자 및 소스 데이터베이스 메타데이터를 내보냅니다. |
권장 사항: 관리되는 외부 스키마 레지스트리가 이 설정을 대체하지 않는 한 세 가지 설정을 모두 사용으로 설정하십시오. 스키마 또는 메타데이터 레코드를 사용 안함으로 설정하면 네트워크 볼륨이 줄어들지만 버전 지정 및 검색 권한이 소비자 플랫폼으로 이전됩니다.
크기 및 큰 값 제어
| 속성 | 기본값 | 최소값 | 최대값 | 동작 |
|---|---|---|---|---|
maxLobSize |
64,000 | 1 | 18,446,744,073,709,552,000 | LOB 데이터는 이 크기를 초과하여 바이트 단위로 잘립니다. |
maxDDLTextSize |
1,000,000 | 1 | 4,294,967,295 | DDL 문 텍스트는 이 크기를 초과하여 바이트 단위로 잘립니다. |
maxRecordSize |
1,048,576 | 131,072 | 10,485,760 | 크기를 초과하는 레코드는 잘리거나 조각화됩니다. |
truncateOrChunk |
truncate |
- | truncate 또는 chunk |
대형 레코드 처리를 선택합니다. |
truncateOrChunk가 chunk인 경우 런타임 스키마에 정의된 대로 조각 메타데이터를 소비합니다. 재조립 계약을 발명하지 마십시오. WebSocket 라이브러리, 프록시 및 다운스트림 플랫폼에서 추가 프레임 또는 메시지 제한을 적용할 수 있으므로 테스트 최대 LOB 및 DDL 크기를 로드합니다.
메타데이터 필드
대부분의 metaFields 항목은 부울 또는 문자열을 수락합니다. true에는 기본 출력 이름이 있는 필드가 포함되고, false는 필드를 생략하며, 문자열은 해당 사용자정의 이름 아래에 포함됩니다. env, sys 및 tokens는 REST 스키마에 정의된 특수 객체 또는 값을 수락합니다.
| 속성 | 기본값 | 의미 |
|---|---|---|
qualifiedTable |
true |
전체 객체 이름에 적용됩니다. [기본 데이터 스트림] 필드는 일반적으로 qual_table입니다. |
opType |
true |
작업 유형. 기본 필드는 일반적으로 op_type입니다. |
opTs |
true |
작업 시간 기록입니다. 기본 필드는 일반적으로 op_ts입니다. |
pos |
true |
불투명 복구 위치입니다. 복구 가능한 소비자에 대해 사용 안함으로 설정하지 마십시오. |
xid |
true |
출처 거래 식별자입니다. |
table |
false |
부적합한 테이블 이름입니다. |
schema |
false |
스키마 또는 소유자 이름입니다. |
catalog |
false |
사용 가능한 경우 카탈로그 이름입니다. |
csn |
false |
출처 커밋 순번입니다. |
opSeqno |
false |
트랜잭션 내의 레코드 순번입니다. |
transInd |
false |
트랜잭션 표시기 B, M, E 또는 W입니다. |
primaryKeys |
false |
구성된 포맷터 계약에 따른 기본 키 열 이름 또는 값입니다. |
opTsMicroSecs |
false |
작업 시간 기록(시대 이후 마이크로초)입니다. |
currentTs |
false |
현재 처리 시간 기록입니다. |
currentTsMicroSecs |
false |
현재 처리 시간 기록(시대 이후 마이크로초)입니다. |
tokens |
null |
사용자 토큰, GoldenGate 토큰, 모든 토큰 또는 구성된 하위 세트입니다. |
env |
null |
GoldenGate 환경 값을 선택했습니다. |
sys |
null |
선택된 시스템 환경 값입니다. 비밀을 노출하지 마십시오. |
권장되는 엔터프라이즈 메타데이터 구성
"metaFields": {
"qualifiedTable": true,
"opType": true,
"opTs": true,
"pos": true,
"xid": true,
"csn": "csn",
"opSeqno": "op_seqno",
"transInd": "trans_ind",
"primaryKeys": "primary_keys"
}
명시적 문자열 이름을 사용하면 공용 페이로드 계약이 명확해지고 선택적 메타데이터에 대해 형식 작성기 기본 이름에 의존하지 않습니다.