Qlik 오픈 레이크하우스의 CDC 소스용 데이터 집합 아키텍처
Last updated: 2026. 9. 1.Qlik 오픈 레이크하우스에서 데이터 집합을 생성하면 저장소 테이블, 변경 테이블 및 뷰가 Qlik Talend Data Integration에 의해 자동으로 생성됩니다.이러한 뷰를 쿼리하여 Iceberg 오픈 테이블 형식으로 저장된 현재 및 기록 데이터에 액세스할 수 있습니다.
직관적이고 안내된 사용자 인터페이스를 통해 데이터 파이프라인을 구축, 모델링 및 실행할 수 있습니다.수동 코딩 없이 작업 데이터 저장소(ODS) 및 기록 데이터 저장소(HDS)에 대한 스키마를 자동으로 생성할 수 있습니다.
Qlik 오픈 레이크하우스를 사용하는 Qlik 데이터 게이트웨이 - 데이터 이동 데이터 파이프라인에 대한 아키텍처.데이터는 S3에 저장되고 Iceberg 오픈 레이크하우스에 랜딩됩니다.필요에 따라 아래에 표시된 대로 테이블을 데이터 웨어하우스로 미러링할 수 있습니다.

스키마
아티팩트는 내부 스키마 및 데이터 작업 스키마에서 생성됩니다.
-
내부 스키마에는 여러 개의 파티션이 있는 물리적 테이블이 포함되어 있습니다.
-
데이터 작업 스키마에는 데이터를 소비하는 데 사용할 수 있는 보기가 포함되어 있습니다.
스키마가 둘 이상의 데이터 작업과 연결된 경우 각 데이터 작업은 테이블 및 뷰에 대해 고유한 접두사를 사용해야 합니다.데이터 작업 설정에서 접두사를 설정할 수 있습니다.
이름 충돌에 대해 내부 스키마만 확인합니다.다른 스키마의 경우 테이블 이름에 명명 충돌이 없는지 확인해야 합니다.가장 좋은 방법은 내부 스키마 이름을 _internal이 추가된 데이터 작업 스키마와 동일한 이름으로 지정하는 것입니다.이렇게 하면 모든 스키마와 접두사 조합이 고유해집니다.
테이블
각 소스 테이블에 대해 다음 형식을 사용하여 접미사 _internal을 사용하여 내부 스키마에 테이블이 만들어집니다.
<INTERNAL_SCHEMA>.<TABLE_NAME>_internal
이 테이블은 5개의 파티션으로 구성되어 있으며, 각 파티션은 데이터가 처리되고 저장되는 방식에 있어 고유한 목적을 갖습니다.각 파티션은 데이터 수명 주기에서의 역할에 따라 테이블 열의 하위 집합을 활용합니다.
내부 데이터 집합은 소스 시스템에서 수신 데이터를 효율적으로 관리하도록 구성되어 실시간 수집 및 기록 추적을 지원합니다.데이터 흐름은 아래에 설명된 여러 개의 특수 파티션을 통해 관리됩니다.
-
변경 파티션 – 실시간 수집
소스 시스템의 모든 변경 내용(삽입, 업데이트, 삭제)은 먼저 Changes 파티션에 추가됩니다.
-
원시 변경 로그 역할을 하는 파티션은 변환이 발생하기 전에 소스 활동에 대한 완전한 피드를 제공합니다.
-
각 변경 내용에는 처리 방법을 나타내는 유형(I, U 또는 D)이 태그로 지정됩니다.
-
이벤트는 발생하는 대로 소스에서 캡처됩니다.파티션은 거의 실시간으로 업데이트됩니다.
-
Lake 랜딩 데이터 작업에서 다음 설정이 적용되는 경우 Changes 파티션을 사용할 수 있습니다.
-
일반 탭에서 업데이트 방법이 CDC로 설정됩니다.
-
최대 로드가 활성화되었습니다.
-
-
-
Asset_state 파티션 - 진행률 추적
변경 내용이 수집되면 Asset_state 파티션은 두 가지 주요 타임스탬프를 기록합니다.
-
변경 내용이 마지막으로 Changes 파티션에 추가된 시간.
-
변경 내용이 마지막으로 Current 파티션에 적용된 시간.
이를 통해 동기화 파이프라인에 대한 전체적인 가시성을 확보하고 지연을 모니터링하거나 문제를 해결하는 데 도움이 됩니다.
-
-
현재 파티션(ODS) – 소스의 최신 복제본
Changes 파티션의 변경 내용은 소스 데이터의 최신 쿼리 최적화 복사본을 유지하기 위해 주기적으로 Current 파티션에 적용됩니다.
-
업데이트를 적용하기 위해 백그라운드 작업이 자동으로 실행됩니다.이는 고정된 일정이 아닌 누적된 변경 내용의 볼륨을 기준으로 합니다.
-
초기 전체 로드는 Current 파티션에 직접 기록됩니다.
-
이 파티션은 데이터의 현재 상태를 반영하며 효율적인 쿼리를 위해 설계되었습니다.
-
-
이전 파티션(HDS) – 기록 데이터
레코드가 Current 파티션에서 업데이트되거나 삭제되면 이전 버전의 복사본이 Prior 파티션에 기록됩니다.
-
레코드에는 변경 내역과 데이터가 유효한 날짜 범위를 포함한 메타데이터가 포함되어 있습니다.
-
이는 유형 2 천천히 변화하는 차원(SCD2)을 지원합니다.
-
저장 데이터 작업 설정의 Prior일반 탭에서 레코드 저장소 및 변경 레코드 저장소가 활성화된 경우 파티션을 사용할 수 있습니다.
-
레코드의 업데이트된 버전이 Current 파티션에 들어가면 이전 레코드는 기록 추적을 위해 Prior 파티션으로 이동됩니다.
-
-
파티션 다시 로드
다시 로드 Reload 파티션은 수동 또는 예약된 전체 다시 로드 중에 임시 스테이징 영역 역할을 합니다:
-
새로운 데이터는 먼저 다시 로드 Reload 파티션에 기록됩니다.
-
정기적인 유지 관리 작업은 일시 중지되기 전에 보류 중인 변경 내용을 모두 지웁니다.
-
데이터는 현재 Current 파티션과 비교되고, 차이점만 현재 Current 파티션으로 이동됩니다.
-
다시 로드 Reload 파티션은 작업이 완료되면 지워집니다.
이 프로세스는 전체 다시 로드 작업 중에 기본 데이터 집합에 대한 중단을 최소화합니다.
-
Current 파티션
| 필드 | 유형 | 설명 |
|---|---|---|
| hdr__key_hash | VARBINARY(20) | 모든 레코드 기본 키의 해시해시 형식은 SHA1입니다.열은 백스페이스 문자로 구분됩니다. |
| hdr__from_timestamp | TIMESTAMP |
타임스탬프(UTC):
|
| hdr__operation | VARCHAR(1) |
이 레코드의 최신 작업입니다.
|
| hdr__inserted_timestamp | TIMESTAMP | 키가 처음 추가된 UTC 타임스탬프.전체 로드를 사용할 때의 전체 로드 시작 시간. |
| hdr__modified_timestamp | TIMESTAMP | 마지막 업데이트가 적용된 타임스탬프(UTC). |
Prior 파티션
| 필드 | 유형 | 설명 |
|---|---|---|
| hdr__key_hash | VARBINARY(20) | 모든 레코드 기본 키의 해시입니다. |
| hdr__from_timestamp | TIMESTAMP | 타임스탬프(UTC). |
| hdr__to_timestamp | TIMESTAMP | 타임스탬프(UTC). |
| hdr__operation | STRING(1) |
이 레코드의 최신 작업
|
| hdr__was_current_from_timestamp | TIMESTAMP | 최초 레코드가 현재인 타임스탬프(UTC). |
| hdr__was_current_to_timestamp | TIMESTAMP | 마지막으로 레코드가 현재인 타임스탬프(UTC). |
Changes 파티션
| 필드 | 유형 | 설명 |
|---|---|---|
| hdr__change_identifier | VARCHAR(50) |
변경 식별자는 두 부분으로 구성된 문자열입니다.
|
| hdr__operation | VARCHAR(1) |
이 레코드의 최신 작업입니다.
|
| hdr__timestamp | TIMESTAMP | 타임스탬프(UTC). |
| hdr__key_hash | BINARY(20) | 모든 레코드 기본 키의 해시입니다. |
| hdr__inserted_timestamp | TIMESTAMP | Qlik이 변경 내용을 처리한 시간의 타임스탬프(UTC). |
Asset_state 파티션
| 필드 | 유형 | 설명 |
|---|---|---|
| hdr__apply_change_identifier | VARCHAR(50) | Current 파티션에 적용된 최신 변경 내용의 변경 식별자. |
| hdr__copy_change_identifier | VARCHAR(50) | Changes 파티션에 추가된 최신 변경 내용의 변경 식별자. |
Reload 파티션
Reload 파티션에서 사용되는 열은 Current 파티션과 동일합니다.
보기
만들어진 모든 보기는 거의 실시간으로 업데이트됩니다.다음 보기는 쿼리 및 보고를 간소화하는 데 사용할 수 있습니다.
현재
현재 보기는 데이터의 가장 최신 상태를 반영합니다.이 보기는 거의 실시간으로 업데이트된 소스 테이블의 복제본을 나타냅니다.Current 및 Changes 파티션의 데이터를 병합합니다.
이름: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>
테이블 구조에 헤더 열이 추가되지 않습니다.
기록
데이터 작업 설정에서 기록이 활성화된 경우, 선택한 각 소스 테이블에 대한 기록 뷰가 데이터 자산 스키마에 생성됩니다.기록 보기는 Prior 및 Changes 파티션의 데이터를 병합합니다.변경 내용에 대한 완전한 타임라인을 제공하므로 감사나 기록 분석에 적합합니다.
이름: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_<Suffix for history views>
다음 헤더 필드가 기록 보기에 추가됩니다.
| 필드 | 유형 | 설명 |
|---|---|---|
| hdr__key_hash | BINARY(20) | 모든 레코드 기본 키의 해시입니다. |
| hdr__from_timestamp | TIMESTAMP | 소스 시스템에서 변경이 발생한 타임스탬프.이는 사용자가 처음 변경한 시점을 반영합니다. |
| hdr__to_timestamp | TIMESTAMP | 소스 시스템에서 변경 내용이 되돌려지거나 업데이트된 타임스탬프. |
| hdr__store | VARCHAR(10) |
이는 레코드가 있는 위치를 나타냅니다.
|
| hdr__operation | STRING(1) |
이 레코드의 최신 작업
|
| hdr__deleted | 비트 | hdr__operation이 D인지 d인지에 따라 레코드가 일시 삭제되었는지 여부를 나타냅니다. |
| hdr__was_current_from_timestamp | TIMESTAMP | 이 행이 Current 파티션에 들어온 시간(UTC)입니다.이는 일반적으로 저장 작업이 실행되고 변경 내용이 적용된 경우입니다. |
| hdr__was_current_to_timestamp | TIMESTAMP | 예를 들어, 최신 버전으로 인해 행이 Current 테이블에서 제거된 시간(UTC)입니다. |