메타데이터 및 데이터 메시지
이 토픽에서는 Kafka 대상 커넥터에서 생성되는 메타데이터 및 데이터 메시지의 구조와 내용을 설명합니다.
메타데이터 메시지
| 필드 | 유형 | 설명 |
|---|---|---|
| schemaId | 문자열 | Avro 스키마의 고유 식별자입니다. |
| 계보 | 구조 | 데이터 원본에 대한 정보 (Qlik Talend Data Integration 서버, 작업, 테이블 등) |
|
서버 |
문자열 | Qlik Talend Data Integration 서버의 이름입니다. |
|
작업 |
문자열 | 작업의 이름입니다. |
|
스키마 (스키마 이름) |
문자열 | 데이터베이스 스키마의 이름입니다. |
|
테이블 (테이블 이름) |
문자열 | 테이블의 이름입니다. |
|
테이블 버전 |
정수 | Qlik Talend Data Integration는 원본 테이블 구조의 버전 번호를 유지합니다. 소스에서 DDL이 변경되면 버전이 증가하고 새로운 메타데이터 메시지가 생성됩니다. |
|
타임스탬프 |
문자열 | 메타데이터 메시지의 날짜 및 시간. |
| tableStructure | 구조 | 테이블의 구조를 설명합니다. |
|
tableColumns |
구조 | 열 목록과 해당 속성을 포함합니다. |
|
{열} |
구조 | 각 열에 대해 아래 속성을 가진 레코드입니다. |
|
순서 |
정수 | 레코드의 열 위치입니다. |
|
유형 |
문자열 | 열 데이터 유형입니다. |
|
길이 |
정수 | 열에 허용되는 데이터의 최대 크기(바이트)입니다. |
|
정밀도 |
정수 | NUMERIC 데이터 유형의 경우, 값을 나타내는 데 필요한 최대 자릿수입니다. |
|
배율 |
정수 | NUMERIC 데이터 유형의 경우, 숫자에 허용되는 소수점 오른쪽의 최대 자릿수입니다. |
|
primaryKeyPosition |
정수 | 테이블의 기본 키 또는 고유 인덱스에 있는 열의 위치입니다. 열이 테이블의 기본 키의 일부가 아닌 경우 값은 0입니다. |
| dataSchema | 문자열 | 데이터 메시지를 역직렬화하기 위한 Avro 스키마입니다. |
데이터 메시지
| 필드 | 유형 | 설명 |
|---|---|---|
| 스키마 (이름) | 문자열 | 복제된 원본 테이블을 포함하는 원본 데이터베이스 스키마의 이름입니다. |
| 테이블 (이름) | 문자열 | 소스 테이블의 이름입니다. |
|
헤더 |
구조 | 현재 레코드에 대한 정보. |
|
작업 (작업) |
열거형 | 작업 유형입니다. 전체 로드 - 원본 데이터를 대상 토픽(들)으로 초기 로드 새로 고침 – 전체 로드 중 대상에 레코드 삽입 CDC - 원본 테이블 변경 사항을 관련 토픽에 적용 삽입 – 새 대상 레코드 삽입 업데이트 – 기존 대상 레코드 업데이트 삭제 – 대상 레코드 삭제 |
|
변경 시퀀스 (변경 시퀀스) |
문자열 |
작업의 모든 변경 테이블에 공통적으로 적용되는 단조롭게 증가하는 변경 시퀀스입니다. 이 필드를 사용하여 레코드를 시간 순서대로 정렬합니다. CDC 작업에만 적용됩니다. |
|
타임스탬프 (타임스탬프) |
문자열 |
원본 변경 UTC 타임스탬프. CDC 작업에만 적용됩니다. |
|
스트림위치 |
문자열 |
소스 CDC 스트림 위치입니다. CDC 작업에만 적용됩니다. |
|
트랜잭션ID (트랜잭션 ID) |
문자열 |
변경 레코드가 속한 트랜잭션의 ID입니다. 특정 트랜잭션의 모든 변경 사항을 수집하려면 이 필드를 사용하십시오. CDC 작업에만 적용됩니다. |
|
changeMask (변경 마스크) |
문자열 |
원본 테이블에서 변경된 데이터 열을 나타냅니다. 변경 마스크는 리틀 엔디언 순서로 데이터 열의 비트 마스크를 나타내는 16진수 문자열입니다. 변경 마스크의 비트 위치는 해당 테이블의 메타데이터 메시지에 있는 열 서수를 기반으로 합니다. 이는 10개의 데이터 열이 있는 경우 비트마스크에서 비트 0~9를 차지함을 의미합니다. UPDATE 마스크가 1011 이진수인 0B 16진수이면, 서수 1, 2, 4의 열이 변경되었음을 의미합니다. 다음은 비트 의미를 설명합니다.
정보 메모
LOB 열은 changeMask 비트에 포함되지 않습니다. |
|
columnMask (열 마스크) |
문자열 |
메시지에 어떤 데이터 열이 있는지 나타냅니다. 일반적으로 여기에는 모든 테이블 열이 포함됩니다. 정보 메모
전체 보충 로깅 없이 Oracle 소스에서 이동할 때, 일부 열은 이동됨될 수 없었기 때문에 데이터에 없을 수 있습니다. 열 마스크는 리틀 엔디언 순서로 데이터 열의 비트마스크를 나타내는 16진수 문자열입니다. 열 마스크의 비트 위치는 해당 테이블의 메타데이터 메시지에 있는 열의 서수를 기반으로 합니다. 이를 통해 적용자는 열의 실제 값인 null 값과 소스 데이터베이스에서 이동됨 수 없는 열을 나타내는 null 값을 구별할 수 있습니다. |
|
외부 스키마 ID |
문자열 |
스키마 ID. 이것은 외부 스키마 ID 포함 헤더 확인란이 선택된 경우에만 표시됩니다. 소스 테이블에서 DDL이 수행될 때마다 스키마 ID가 변경되므로, 소비자 앱은 이 정보를 사용하여 메시지 스키마가 변경되었는지 확인할 수 있습니다. |
|
transactionEventCounter (트랜잭션 이벤트 카운터) |
Long |
트랜잭션 내 현재 작업의 순서 번호입니다. 이는 트랜잭션 내 작업의 순서를 결정하는 데 사용될 수 있습니다. |
|
transactionLastEvent (트랜잭션 마지막 이벤트) |
부울 |
"True"는 트랜잭션의 최종 레코드임을 나타내며, "False"는 모든 레코드가 처리되지 않았음을 나타냅니다. |
|
데이터 |
구조 | 테이블 레코드의 데이터 |
|
{열} |
현재 레코드의 열 이름과 값. | |
|
beforeData |
구조 | 변경 전 테이블 레코드의 데이터 |
|
{열} |
변경 전 열 이름 및 값. UPDATE 작업에 적용됩니다. |