변경 테이블
대상 종료 지점에 대한 도구를 사용하면 변경 테이블의 메타데이터를 사용하여 정보를 가져올 수 있습니다. 이 데이터는 변경 테이블 스키마에 추가된 헤더 열에 의해 정의됩니다. 이러한 헤더는 아래 표에 설명되어 있습니다.
복제 작업의 모든 대상 테이블에 대해 해당 이름의 변경 테이블이 대상 테이블과 함께 데이터베이스에 유지됩니다. 자세한 내용은 변경 테이블 작업을 참조하십시오. 변경 테이블에는 원본 테이블 열과 헤더 열이 포함됩니다. 헤더 열에는 이름이 소스 테이블 열 이름과 충돌하지 않도록 접두사가 포함됩니다. 기본 접두사는 header__
입니다. 이 접두사를 변경하는 방법에 대한 자세한 내용은 작업 설정의 메타데이터 아래에 나열된 변경 테이블을 참조하십시오. 다음 표에는 기본 변경 테이블 헤더 열이 나열되어 있습니다.
열 이름 | 유형 | 설명 |
---|---|---|
varchar(35) |
작업의 모든 변경 테이블에 공통적으로 적용되는 단조롭게 증가하는 변경 시퀀스입니다. 변경 시퀀스의 형식은 다음과 같습니다. YYYYMMDDHHmmSShhxxxxxxxxxxxxxxxxxxx 여기서:
시간 부분은 일반적으로 변경 레코드를 포함하는 트랜잭션의 커밋 시간을 나타냅니다. Qlik Talend Data Integration에는 시퀀스 번호의 단조성을 유지하는 논리가 포함되어 있으므로 종료 지점 시간을 수정하거나 조정하면 동일한 타임스탬프 내에 있지만 변경 번호가 증가하는 것처럼 여러 변경 내용이 발생할 수 있습니다. xxx...xxx는 일반적으로 BEFORE-IMAGE 레코드의 경우 일치하는 UPDATE 레코드의 변경 번호와 동일하다는 점을 제외하면 데이터 레코드의 내부 변경 번호입니다(예를 들어, BEFORE-IMAGE의 변경 번호가 1000이고 UPDATE의 변경 번호가 1001인 경우, 둘 다 1001이 포함됨). 이를 통해 테이블과 테이블 자체 사이의 간단한 왼쪽 외부 조인이 가능합니다. 여기서 왼쪽에서는 특정 시점까지 검색하지만 |
|
|
varchar(1) |
작업 유형입니다. 이는 다음 중 하나일 수 있습니다.
|
|
varbinary(128) |
변경 마스크는 변경 테이블의 어떤 데이터 열이 소스 테이블에서 변경된 열과 연결되어 있는지 나타냅니다. 변경 마스크의 비트 위치는 변경 테이블의 열 서수를 기반으로 합니다. 이는 5개의 헤더 열이 있는 경우 변경 마스크에서 비트 0~4를 차지하고 첫 번째 데이터 열이 비트 5임을 의미합니다. 변경 마스크는 Little-endian 순서로 변경 마스크를 나타내는 이진 열(바이트 배열)입니다. 바이트 0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 바이트 1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 이 예에서 다음은 비트 의미를 설명합니다.
공간 및 처리 효율성을 위해 변경 마스크에 저장된 실제 바이트 수는 Null이 잘릴 수 있습니다. 이는 후행 0을 저장할 필요가 없음을 의미합니다. 처리 논리에서는 이를 고려해야 합니다. |
|
varchar(128) |
소스 CDC 스트림 위치입니다. |
|
varchar(12) |
변경 레코드와 관련된 작업입니다. 다음 중 하나일 수 있습니다.
|
|
varchar(32) |
변경 레코드가 속한 트랜잭션의 ID입니다. 값은 128비트 트랜잭션 ID의 16진수 문자열입니다. |
|
타임스탬프 |
원본 변경 UTC 타임스탬프입니다(값은 대략적일 수 있음). 정보 메모 PostgreSQL 소스를 사용하면 타임스탬프는 커밋이 발생한 후에만 알려집니다. 따라서 변경 내용이 소스 테이블에 커밋될 때까지 기본 날짜가 표시됩니다(예: 1970-01-01).
|
[header__] |
문자열 |
데이터 파티션 변경이 활성화된 경우 대상에 만들어진 파티션의 이름입니다. 파티션 이름은 파티션 시작 및 종료 시간으로 구성됩니다. 예: 20170313T123000_20170313T170000 |