# 메타데이터 및 데이터 메시지

이 토픽에서는 Kafka 대상 커넥터에서 생성되는 메타데이터 및 데이터 메시지의 구조와 내용을 설명합니다.

## 메타데이터 메시지

메타데이터 메시지

| 필드 | 유형 | 설명 |
| --- | --- | --- |
| schemaId | 문자열 | Avro 스키마의 고유 식별자입니다. |
| 계보 | 구조 | 데이터 원본에 대한 정보 (Qlik Talend Data Integration 서버, 작업, 테이블 등) |
| 서버 | 문자열 | Qlik Talend Data Integration 서버의 이름입니다. |
| 작업 | 문자열 | 작업의 이름입니다. |
| 스키마 (스키마 이름) | 문자열 | 데이터베이스 스키마의 이름입니다. |
| 테이블 (테이블 이름) | 문자열 | 테이블의 이름입니다. |
| 테이블 버전 | 정수 | Qlik Talend Data Integration는 원본 테이블 구조의 버전 번호를 유지합니다. 소스에서 DDL이 변경되면 버전이 증가하고 새로운 메타데이터 메시지가 생성됩니다. |
| 타임스탬프 | 문자열 | 메타데이터 메시지의 날짜 및 시간. |
| tableStructure | 구조 | 테이블의 구조를 설명합니다. |
| tableColumns | 구조 | 열 목록과 해당 속성을 포함합니다. |
| {열} | 구조 | 각 열에 대해 아래 속성을 가진 레코드입니다. |
| 순서 | 정수 | 레코드의 열 위치입니다. |
| 유형 | 문자열 | 열 데이터 유형입니다. |
| 길이 | 정수 | 열에 허용되는 데이터의 최대 크기(바이트)입니다. |
| 정밀도 | 정수 | NUMERIC 데이터 유형의 경우, 값을 나타내는 데 필요한 최대 자릿수입니다. |
| 배율 | 정수 | NUMERIC 데이터 유형의 경우, 숫자에 허용되는 소수점 오른쪽의 최대 자릿수입니다. |
| primaryKeyPosition | 정수 | 테이블의 기본 키 또는 고유 인덱스에 있는 열의 위치입니다. 열이 테이블의 기본 키의 일부가 아닌 경우 값은 0입니다. |
| dataSchema | 문자열 | 데이터 메시지를 역직렬화하기 위한 Avro 스키마입니다. |

## 데이터 메시지

데이터 메시지

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