데이터 집합 저장
Qlik 오픈 레이크하우스 프로젝트에서 저장소 작업은 효율적인 저장 및 쿼리를 위해 저장된 데이터를 Iceberg 테이블에 기록합니다. 저장소 데이터 작업은 랜딩 데이터 작업에 의해 클라우드 랜딩 영역에 랜딩된 데이터를 소비합니다. 예를 들어, 분석 앱에서 테이블을 사용할 수 있습니다.
다음 설정 및 동작은 Iceberg 테이블에 쓰는 Qlik 오픈 레이크하우스 프로젝트의 저장소 작업에 적용됩니다.
-
저장소 데이터 작업은 지속적으로 실행되며 예약할 수 없습니다.
-
Qlik은 Iceberg 테이블에 저장된 데이터를 자동으로 최적화합니다. 최적화 프로세스에 대한 자세한 내용은 Qlik 오픈 레이크하우스 아키텍처 를 참조하십시오.
-
랜딩 데이터 작업의 상태가 최소한 준비됨인 경우 저장소 데이터 작업을 설계할 수 있습니다.
-
랜딩 데이터 작업의 상태가 최소한 즉시 실행 가능인 경우 저장소 데이터 작업을 준비할 수 있습니다.
저장소 데이터 작업은 소비된 랜딩 데이터 작업과 동일한 작동 모드(전체 로드 또는 전체 로드 및 CDC)를 사용합니다. 구성 속성은 두 가지 작동 모드와 모니터 및 제어 옵션 간에 다릅니다. 전체 로드 전용과 함께 클라우드 대상 랜딩 데이터 작업을 사용하는 경우 저장소 데이터 작업은 물리적 테이블을 생성하는 대신 랜딩 테이블에 대한 보기를 만듭니다.
저장소 데이터 작업 만들기
세 가지 방법으로 저장소 데이터 작업을 만들 수 있습니다.
-
랜딩 데이터 작업에서 ...을 클릭하고 데이터 저장을 선택하여 이 랜딩 데이터 자산을 기반으로 저장소 데이터 작업을 만듭니다.
-
프로젝트에서 만들기를 클릭한 다음 데이터 저장을 클릭합니다. 이 경우 사용할 랜딩 데이터 작업을 지정해야 합니다.
-
데이터를 온보딩하면 저장소 데이터 작업이 만들어집니다. 이는 데이터 온보딩 시 만들어지는 랜딩 데이터 작업에 연결됩니다.
자세한 내용은 Qlik 오픈 레이크하우스에 데이터 온보딩을 참조하십시오.
저장소 데이터 작업을 만든 경우:
-
...을 클릭하고 열기를 선택하여 저장소 데이터 작업을 엽니다.
저장소 데이터 작업이 열리고 랜딩 데이터 자산의 테이블을 기반으로 출력 데이터 집합을 미리 볼 수 있습니다. -
변환, 데이터 필터링 또는 열 추가와 같이 포함된 데이터 집합에 필요한 모든 변경을 수행합니다.
자세한 내용은 데이터 집합 관리을 참조하십시오.
-
원하는 변환을 추가했으면 데이터 집합 유효성 검사를 클릭하여 데이터 집합의 유효성을 검사할 수 있습니다. 유효성 검사에서 오류가 발견되면 계속하기 전에 오류를 수정합니다.
자세한 내용은 데이터 집합 유효성 검사 및 조정을 참조하십시오.
-
준비를 클릭하여 데이터 작업 및 모든 필수 아티팩트를 준비합니다. 시간이 조금 걸릴 수 있습니다.
화면 하단의 준비 진행률에서 진행률을 확인할 수 있습니다.
-
상태가 즉시 실행 가능으로 표시되면 데이터 작업을 실행할 수 있습니다.
실행을 클릭합니다.
이제 데이터 작업이 데이터를 저장할 데이터 집합을 만들기 시작합니다.
기록 데이터 유지
유형 2의 기록 변경 데이터를 보관하면 특정 시점의 데이터를 쉽게 다시 만들 수 있습니다. 이렇게 하면 전체 HDS(기록 데이터 저장소)가 만들어집니다.
-
유형 2 천천히 변경되는 차원이 지원됩니다.
-
변경된 레코드가 병합되면 변경된 데이터를 저장하기 위해 새 레코드를 만들고 이전 레코드는 그대로 둡니다.
-
새 HDS 레코드에는 자동으로 타임스탬프가 지정되므로 추세 분석 및 기타 시간 지향 분석 데이터 마트를 만들 수 있습니다.
다음을 클릭하여 기록 데이터를 활성화할 수 있습니다.
-
데이터를 온보딩할 때 설정에서 현재 데이터와 이전 데이터 기록을 모두 사용하여 복제합니다.
-
저장소 작업의 설정 대화 상자에서 기록 변경 레코드를 유지하고 레코드 보관 파일을 변경합니다.
저장소 작업 예약
Qlik 오픈 레이크하우스 프로젝트의 저장소 작업은 1분 단위의 미니 배치로 지속적으로 실행되며 예약할 수 없습니다.
저장소 작업 모니터링
모니터링을 클릭하여 저장소 작업의 상태와 진행률을 모니터링할 수 있습니다.
자세한 내용은 저장소 Qlik 오픈 레이크하우스 작업 모니터링을 참조하십시오.
저장소 데이터 작업 문제 해결
저장소 데이터 작업에서 하나 이상의 테이블에 문제가 있는 경우 데이터를 다시 로드하거나 다시 만들어야 할 수 있습니다. 이를 수행하는 데 사용할 수 있는 몇 가지 옵션이 있습니다. 다음 순서로 사용할 옵션을 고려합니다.
-
랜딩 시 데이터 집합을 다시 로드할 수 있습니다. 랜딩 시 데이터 집합을 다시 로드하면 유형 2 기록을 유지하는 동안 저장소의 비교 프로세스가 시작되고 데이터가 수정됩니다. 이 옵션은 다음과 같은 경우에도 고려해야 합니다.
-
전체 로드가 오래전에 수행되어 변경된 부분이 많습니다.
-
처리된 전체 로드 및 변경 테이블 레코드가 랜딩 영역 유지 관리의 일부이므로 삭제된 경우.
-
-
테이블을 다시 만들 수 있습니다. 그러면 소스에서 데이터 집합이 다시 만들어집니다.
-
...을 클릭한 다음 테이블 다시 만들기를 클릭합니다. 테이블을 다시 만들 때 다운스트림 작업은 소스 데이터 집합에서 자르기 및 다시 로드 작업이 발생한 것처럼 반응합니다.
정보 메모개별 테이블에 문제가 있는 경우 테이블을 다시 만드는 대신 먼저 테이블을 다시 로드해 보는 것이 좋습니다. 테이블을 다시 만들면 기록 데이터가 손실될 수 있습니다. 주요 변경 내용이 있는 경우 데이터를 다시 로드하기 위해 다시 만들어진 데이터 작업을 사용하는 다운스트림 데이터 작업도 준비해야 합니다.
-
스키마 진화
스키마 진화를 사용하면 여러 데이터 소스의 구조적 변경 내용을 쉽게 감지하고 해당 변경 내용을 작업에 적용하는 방법을 제어할 수 있습니다. 스키마 진화는 소스 데이터 스키마에 대한 DDL 변경 내용을 감지하는 데 사용할 수 있습니다. 일부 변경 내용을 자동으로 적용할 수도 있습니다.
각 변경 유형에 대해 작업 설정의 스키마 진화 섹션에서 변경 내용을 처리하는 방법을 선택할 수 있습니다. 변경 내용을 적용하거나, 변경 내용을 무시하거나, 테이블을 일시 중단하거나, 작업 처리를 중지할 수 있습니다.
각 변경 유형에 대해 DDL 변경을 처리하는 데 사용할 작업을 설정할 수 있습니다. 일부 작업은 모든 변경 유형에 사용할 수 없습니다.
-
대상에 적용
변경 내용을 자동으로 적용합니다.
-
무시
변경 내용을 무시합니다.
-
일시 중단 테이블
테이블을 일시 중단합니다. 모니터에 표가 오류로 표시됩니다.
-
작업 중지
작업 처리를 중지합니다. 이 기능은 모든 스키마 변경 내용을 수동으로 처리하려는 경우에 유용합니다. 이렇게 하면 일정 예약도 중지되어 예약된 실행이 수행되지 않습니다.
다음과 같은 변경 내용이 지원됩니다.
-
열 추가
-
선택 패턴과 일치하는 테이블 만들기
선택 규칙을 사용하여 패턴과 일치하는 데이터 집합을 추가한 경우 패턴을 충족하는 새 테이블이 감지되어 추가됩니다.
작업 설정에 대한 자세한 내용은 스키마 진화를 참조하십시오.
스키마 진화에 대한 제한 사항
스키마 진화에는 다음과 같은 제한이 적용됩니다.
-
스키마 진화는 CDC를 업데이트 방법으로 사용하는 경우에만 지원됩니다.
-
스키마 진화 설정을 변경한 경우 작업을 다시 준비해야 합니다.
-
테이블 이름을 바꾸면 스키마 진화가 지원되지 않습니다. 이 경우 작업을 준비하기 전에 메타데이터를 새로 고쳐야 합니다.
-
작업을 디자인하는 경우 스키마 진화 변경 사항을 적용하려면 브라우저를 새로 고쳐야 합니다. 변경 내용에 대해 알림을 받도록 설정할 수 있습니다.
-
랜딩 작업에서는 열을 삭제하는 것이 지원되지 않습니다. 열을 삭제하고 추가하면 테이블 오류가 발생합니다.
-
랜딩 작업에서 테이블 삭제 작업을 수행해도 테이블이 삭제되지 않습니다. 테이블을 삭제한 다음 다시 테이블을 추가하면 기존 테이블만 잘리고, 새 테이블이 추가되지 않습니다.
-
대상 데이터베이스의 지원 여부에 따라, 일부 대상에서는 열 길이를 변경할 수 없습니다.
-
열 이름이 변경되는 경우, 해당 열을 사용하여 정의된 명시적 변환은 열 이름을 기반으로 하므로 적용되지 않습니다.
-
메타데이터 새로 고침에 대한 제한은 스키마 진화에도 적용됩니다.
DDL 변경 사항을 캡처할 때 다음과 같은 제한이 적용됩니다.
-
소스 데이터베이스에서 빠른 일련의 작업(예: DDL>DML>DDL)이 발생하는 경우 Qlik Talend Data Integration이 잘못된 순서로 로그를 구문 분석하여 데이터가 누락되거나 예측할 수 없는 동작이 발생할 수 있습니다. 이러한 동작이 발생할 가능성을 최소화하려면 다음 작업을 수행하기 전에 대상에 변경 사항이 적용될 때까지 기다리는 것이 가장 좋습니다.
예를 들어, 변경 사항을 캡처하는 동안 원본 테이블 이름이 빠르게 여러 번 연속해서 바뀌고 두 번째 작업에서 원래 이름으로 다시 바뀌는 경우, 해당 테이블이 대상 데이터베이스에 이미 존재한다는 오류가 발생할 수 있습니다.
- 작업에서 사용된 테이블의 이름을 변경한 다음 작업을 중지하면 Qlik Talend Data Integration은 작업이 다시 시작된 후에 해당 테이블에 적용된 변경 사항을 캡처하지 않습니다.
-
작업이 중지된 동안에는 소스 테이블의 이름을 바꾸는 것이 지원되지 않습니다.
- 테이블의 기본 키 열 재할당은 지원되지 않습니다(따라서 DDL 기록 제어 테이블에 기록되지 않음).
- 열의 데이터 유형이 변경되고 작업이 중지된 상태에서 (동일한) 열의 이름이 변경되면, DDL 변경 사항은 DDL 기록 제어 테이블에 "열 삭제"로 표시되고 작업이 다시 시작되면 "열 추가"로 표시됩니다. 장시간 지연으로 인해 동일한 동작이 발생할 수도 있습니다.
- 작업이 중지된 동안 소스에서 수행된 CREATE TABLE 작업은 작업이 다시 시작될 때 대상에 적용되지만 DDL 기록 제어 테이블에 DDL로 기록되지 않습니다.
-
메타데이터 변경 사항과 관련된 작업(ALTER TABLE, reorg, 클러스터링된 인덱스 다시 빌드 등)은 다음 중 하나에서 수행되는 경우 예측할 수 없는 동작이 발생할 수 있습니다.
-
전체 로드 중
-또는-
-
변경 내용 처리 시작 타임스탬프와 현재 시간(즉, 사용자가 고급 실행 옵션 대화 상자에서 확인을 클릭하는 순간) 사이.
예:
IF:
지정된 변경 사항 처리 시작 시간은 오전 10시입니다.
AND:
Age라는 열이 오전 10시 10분에 Employees 테이블에 추가되었습니다.
AND:
사용자가 오전 10시 15분에 고급 실행 옵션 대화 상자에서 확인을 클릭합니다.
THEN:
10:00과 10:10 사이에 발생한 변경 사항으로 인해 CDC 오류가 발생할 수 있습니다.
정보 메모위의 어떤 경우든 영향을 가져오는 테이블을 다시 로드하여 데이터가 대상에 제대로 이동됨되도록 해야 합니다.
-
- DDL 문
ALTER TABLE ADD/MODIFY <column> <data_type> DEFAULT <>는 기본값을 대상에 복제하지 않으며 새 열 또는 수정된 열이 NULL로 설정됩니다. 과거에 열을 추가하거나 수정한 DDL이 실행된 경우에도 이런 동작이 발생할 수 있습니다. 새 열 또는 수정된 열이 Null 허용인 경우 소스 엔드포인트는 DDL 자체를 로깅하기 전에 모든 테이블 행을 업데이트합니다. 결과적으로 Qlik Talend Data Integration은 변경 사항을 캡처하지만 대상을 업데이트하지 않습니다. 새 열 또는 수정된 열이 NULL로 설정되어 대상 테이블에 기본 키 또는 고유 인덱스가 없는 경우, 후속 업데이트에서 "영향 받는 행 없음"이라는 메시지가 생성됩니다. -
TIMESTAMP 및 DATE 정밀도 열에 대한 수정 사항은 캡처되지 않습니다.
저장소 설정
데이터 플랫폼이 Qlik 오픈 레이크하우스인 경우 저장소 데이터 작업에 대한 속성을 설정할 수 있습니다.
-
설정을 클릭합니다.
일반 설정
-
데이터베이스
데이터 소스에서 사용할 데이터베이스입니다.
-
작업 스키마
저장소 데이터 작업 스키마의 이름을 변경할 수 있습니다. 기본 이름은 저장소 작업의 이름입니다.
-
내부 스키마
내부 저장소 데이터 자산 스키마의 이름을 변경할 수 있습니다. 기본 이름은 _internal이 추가된 저장소 작업의 이름입니다.
-
스키마 이름의 기본 대문자
모든 스키마 이름에 대한 기본 대문자 사용을 설정할 수 있습니다. 데이터베이스가 대문자를 강제 사용하도록 구성된 경우 이 옵션은 효과가 없습니다.
- 모든 테이블 및 보기에 대한 접두사
이 작업으로 만들어진 모든 테이블 및 뷰에 대한 접두사를 설정할 수 있습니다.
정보 메모여러 데이터 작업에서 데이터베이스 스키마를 사용하려는 경우 고유한 접두사를 사용해야 합니다. -
기록
기록 변경 데이터를 유지하여 특정 시점에서 본 데이터를 쉽게 다시 만들 수 있습니다. 기록 보기 및 라이브 기록 보기를 사용하여 기록 데이터를 볼 수 있습니다. 기록 변경 데이터를 활성화하려면 기록 레코드 및 변경 레코드 보관 파일 유지를 선택합니다.
-
랜딩과 저장소를 비교할 때 랜딩에 존재하지 않는 레코드를 관리하는 방법을 선택할 수 있습니다.
-
삭제된 것으로 표시
이는 랜딩에 존재하지 않는 레코드의 일시 삭제를 수행합니다.
-
유지
이는 랜딩에 존재하지 않는 모든 레코드를 유지합니다.
정보 메모저장소 데이터 작업의 데이터 집합에는 기본 키 집합이 있어야 합니다. 그렇지 않은 경우 랜딩 데이터가 다시 로드될 때마다 저장소 데이터 작업에서 초기 로드가 수행됩니다. -
런타임 설정
-
병렬 실행
전체 로드에 대한 최대 연결 수를 1에서 5까지 설정할 수 있습니다.
-
웨어하우스
클라우드 데이터 웨어하우스의 이름입니다. 이 설정은 Snowflake에만 적용됩니다.
카탈로그 설정
-
카탈로그에 게시
이 버전의 데이터를 카탈로그에 데이터 집합으로 게시하려면 이 옵션을 선택합니다. 다음에 이 작업을 준비하면 카탈로그 콘텐츠가 업데이트됩니다.
카탈로그에 대한 자세한 내용은 카탈로그 도구를 사용하여 데이터 이해를 참조하십시오.
스키마 진화
스키마에서 다음 유형의 DDL 변경을 처리하는 방법을 선택합니다. 스키마 진화 설정을 변경한 경우 작업을 다시 준비해야 합니다. 아래 표에서는 지원되는 DDL 변경에 대해 사용할 수 있는 작업을 설명합니다.
| DDL 변경 | 대상에 적용 | 무시 | 작업 중지 |
|---|---|---|---|
| 열 추가 | 예 | 예 | 예 |
| 테이블 만들기
선택 규칙을 사용하여 패턴과 일치하는 데이터 집합을 추가한 경우 패턴을 충족하는 새 테이블이 감지되어 추가됩니다. |
예 | 예 | 예 |
저장소 데이터 작업에 대한 작업
작업 메뉴에서 저장소 데이터 작업에 대해 다음 작업을 수행할 수 있습니다.
-
열기
이렇게 하면 저장소 데이터 작업이 열립니다. 데이터 작업에 대한 테이블 구조 및 세부 정보를 보고 전체 로드 및 일괄 변경에 대한 상태를 모니터링할 수 있습니다.
-
편집
작업의 이름과 설명을 편집하고 태그를 추가할 수 있습니다.
-
삭제
데이터 작업을 삭제할 수 있습니다.
-
준비
이는 실행을 위한 작업을 준비합니다. 여기에는 다음이 포함됩니다.
-
설계가 유효한지 유효성을 검사합니다.
-
설계와 일치하도록 물리적 테이블과 뷰를 만들거나 변경합니다.
-
데이터 작업을 위한 SQL 코드 생성
-
작업 출력 데이터 집합에 대한 카탈로그 항목 만들기 또는 변경.
화면 하단의 준비 진행률에서 진행률을 확인할 수 있습니다.
-
-
데이터 집합 유효성 검사
이렇게 하면 데이터 작업에 포함된 모든 데이터 집합의 유효성을 검사합니다.
모든 유효성 검사 오류와 설계 변경 내용을 보려면 유효성 검사 및 조정을 확장합니다.
-
테이블 다시 만들기
그러면 소스에서 데이터 집합이 다시 만들어집니다. 테이블을 다시 만들 때 다운스트림 작업은 소스 데이터 집합에서 자르기 및 다시 로드 작업이 발생한 것처럼 반응합니다. 자세한 내용은 저장소 데이터 작업 문제 해결을 참조하십시오.
-
중지
데이터 작업의 작동을 중지할 수 있습니다. 데이터 작업은 테이블 업데이트를 계속하지 않습니다.
정보 메모이 옵션은 데이터 작업이 실행 중일 때 사용할 수 있습니다. -
재개
중지된 지점에서 데이터 작업의 작업을 재개할 수 있습니다.
정보 메모이 옵션은 데이터 작업이 중지되었을 때 사용할 수 있습니다. -
데이터 미러링
Qlik 오픈 레이크하우스 테이블을 다른 데이터 플랫폼으로 미러링합니다. 이렇게 하면 데이터 미러링 작업이 만들어집니다.
제한 사항
-
데이터 작업에 데이터 집합이 포함되어 있고 연결의 매개 변수(예: 사용자 이름, 데이터베이스 또는 스키마)를 변경하는 경우 데이터가 새 위치에 있다고 가정합니다. 그렇지 않은 경우 다음 중 하나를 수행할 수 있습니다.
-
소스의 데이터를 새 위치로 이동합니다.
-
동일한 설정으로 새 데이터 작업을 만듭니다.
-