기본 콘텐츠로 건너뛰기

변경 처리를 사용하여 Snowflake 저장소 데이터 자산 만들기

탐색 막대에서 액세스할 수 있는 Data Services 홈에 저장소 데이터 자산을 만듭니다. 저장소 데이터 자산은 Snowflake 랜딩 영역에서 데이터를 선택하고 분석을 위해 데이터를 테이블로 변환합니다. 데이터는 CDC(Change Data Capture)를 사용하여 입력 데이터 자산의 변경 내용에서 테이블에 주기적으로 적용됩니다. 저장된 테이블의 데이터에 보다 다양한 액세스를 제공하기 위해 보기도 만들어집니다.

서론

Snowflake에서 데이터를 생성하면 저장소 테이블, 변경 테이블 및 보기가 생성됩니다. 데이터를 사용할 때 가장 좋은 방법은 보기를 사용하는 것입니다. 보기는 향상된 데이터 동시성을 포함하여 테이블에 비해 여러 이점을 제공합니다. 어떤 보기를 사용할지 확실하지 않은 경우 먼저 테이블에 대한 표준 보기를 시도하십시오.

변경 처리를 사용하여 랜딩 데이터 자산에서 읽는 저장소 데이터 자산에 의해 생성된 Snowflake 테이블 및 보기

다음 테이블과 보기는 항상 만들어집니다.

  • 테이블

    테이블에는 저장된 물리적 데이터가 포함됩니다.

  • 테이블의 표준 보기

    테이블에 대한 표준 보기에서는 테이블에 적용된 데이터만 볼 수 있습니다. 즉, 아직 적용되지 않은 가장 최근의 변경 테이블 데이터는 포함되지 않습니다. 일관성이 대기 시간보다 우선 순위가 높은 경우 표준 보기를 사용할 수 있습니다.

  • 테이블 보기 변경

    이는 랜딩 스키마의 변경 테이블 보기입니다.

다음 고급 보기를 만들도록 선택할 수도 있습니다.

  • 헤더가 있는 표준 보기

    이는 저장소 데이터 자산에 의해 생성되는 추가 헤더 필드가 있는 테이블에 대한 표준 보기입니다.

  • 라이브 보기

    라이브 보기에는 아직 적용되지 않은 변경 테이블에 대한 데이터가 포함됩니다. 이렇게 하면 변경된 데이터를 자주 적용하지 않고도 대기 시간이 짧은 데이터를 볼 수 있습니다. 라이브 보기는 표준 보기보다 효율성이 떨어지고 더 많은 리소스가 필요합니다.

생성된 테이블 및 보기에 대한 자세한 내용은 Snowflake에서 생성되는 테이블 및 보기의 구조를 참조하십시오.

Snowflake 저장소 데이터 자산 만들기

  1. Data Integration 홈에서 새로 추가를 클릭한 다음 데이터 자산 만들기를 선택합니다.
  2. 데이터 자산 만들기 대화 상자에서 다음 필드를 채웁니다.

    • 이름: 데이터 자산의 이름입니다.

    • 공간: 데이터 자산의 대상 공간을 지정합니다.

    • 자산 유형: 저장소(Snowflake)를 선택합니다.

    • 데이터 자산이 생성될 때 열려면 열기를 선택합니다.

    준비가 되면 만들기를 클릭합니다.

  3. 소스 데이터 선택을 클릭합니다.

  4. 저장소 데이터 자산의 소스로 사용할 랜딩 데이터 자산을 선택한 다음 선택을 클릭합니다. 작업 유형이 전체 로드 + CDC인 랜딩 데이터 자산을 선택합니다. 작업 유형은 목록 보기에 표시됩니다.

    설정 대화 상자가 표시됩니다.

  5. 저장소에 대한 설정 구성

    • 연결

      저장소 Snowflake 데이터베이스에 대한 쓰기 권한과 랜딩 데이터 자산에서 사용하는 Snowflake 데이터베이스에 대한 읽기 권한이 있는 데이터 연결을 선택합니다. 데이터 연결이 없으면 만들어야 합니다.

      참고: 하이브리드 데이터 전달에는 OAuth 인증이 지원되지 않습니다.

      자세한 내용은 Snowflake 연결 만들기 (영어로만 제공)를 참조하십시오.

    • 내부 스키마

      테이블이 생성될 스키마의 이름입니다.

    • 데이터 자산 스키마

      보기가 생성될 스키마의 이름입니다.

    참고: 내부 스키마데이터 자산 스키마와 동일한 스키마를 사용할 수 있지만 분리된 상태로 유지하면 스키마에 대해 다른 액세스를 설정할 수 있습니다. 예를 들어 내부 스키마에 대한 액세스를 제한하고 모든 소비자에 대해 데이터 자산 스키마에 대한 액세스를 허용할 수 있습니다.
  6. 테이블 및 보기에 대한 설정 구성

    다음은 항상 생성됩니다.

    • 테이블

    • 테이블의 표준 보기

    • 변경 테이블에 대한 표준 보기

    다음 보기를 만들도록 선택할 수도 있습니다.

    • 헤더가 있는 표준 보기

    • 라이브 보기

  7. 접두사 및 접미사 설정 구성

    이 데이터 자산에 의해 생성된 리소스를 식별하기 위해 접두사를 설정할 수 있습니다. 또한 접두사로 테이블과 보기를 구분할 수 있으므로 여러 데이터 자산에서 동일한 스키마를 재사용할 수 있습니다.

    생성된 보기에 대한 접미사를 설정할 수도 있습니다.

  8. 런타임 설정 구성

    • 적용 간격을 분 단위로 설정할 수 있습니다.

      변경된 데이터가 저장소 테이블에 적용되는 빈도를 설정합니다. 간격 범위는 1분에서 1440분(7일)까지입니다.

      연결된 Qlik Replicate 작업의 업데이트 빈도보다 이 간격을 낮게 설정하지 않는 것이 좋습니다. 데이터를 더 자주 적용하면 더 많은 Snowflake 리소스 비용이 발생합니다.

      대안으로 가끔 짧은 대기 시간 데이터가 필요한 경우 적용 간격을 높게 유지하고 라이브 보기를 사용할 수 있습니다.

    • 병렬 실행에서 최대 데이터베이스 연결 수를 설정할 수 있습니다.

    런타임 매개 변수는 데이터 자산이 카탈로그화되고 실행된 후에 변경할 수 있습니다. 변경 사항은 다음 실제 처리에 영향을 미칩니다.

  9. 확인을 클릭하여 설정을 확인합니다. 이제 데이터 집합 생성을 시작하기 전에 테이블 구조를 미리 볼 수 있습니다.

  10. 저장을 클릭하여 데이터 자산을 저장합니다.

  11. 실행을 클릭하여 데이터 집합 생성을 시작합니다.

랜딩 데이터의 전체 로드를 이미 수행한 경우 이제 Snowflake 테이블이 생성되고 데이터로 채워집니다.

테이블 생성 모니터링

모니터링을 클릭하여 테이블 생성의 상태 및 진행 상황을 모니터링할 수 있습니다. 첫 번째 로드가 실행 중이면 전체 로드 상태에서 진행률을 볼 수 있습니다. 변경 사항이 처리되면 마지막 변경 일괄 처리의 상태 및 진행률도 볼 수 있습니다.

각 테이블 또는 변경에 대해 다음 세부 정보를 볼 수 있습니다.

  • 상태

    이 테이블 또는 변경의 현재 상태를 보여 줍니다.

    • 완료됨 - 로드 또는 변경이 성공적으로 완료되었습니다.

    • 로드 중 - 테이블 또는 변경 사항이 처리 중입니다.

    • 대기 중 - 테이블 또는 변경 사항이 처리되기를 기다리고 있습니다.

    • 오류 - 테이블을 처리하거나 변경하는 동안 오류가 발생했습니다.

  • 시작됨

    로드 또는 변경 처리가 시작된 시간입니다.

  • 종료됨

    로드 또는 변경 처리가 종료된 시간입니다.

  • 기간

    hh:mm:ss 형식의 로드 또는 변경 처리 기간입니다.

  • 처리된 레코드

    로드 또는 변경 시 처리된 레코드 수입니다.

  • 처리량(레코드/초)

    처리량은 로드가 완료될 때까지 업데이트되지 않습니다.

  • 메시지

    로드 또는 변경이 성공적으로 처리되지 않은 경우 오류 메시지를 표시합니다.

랜딩 영역이 복제 작업에 의해 업데이트됨에 따라 테이블은 새로운 데이터로 지속적으로 업데이트됩니다. 각 일괄 처리는 특정 시간 범위의 레코드와 관련됩니다. 마지막 변경 일괄 처리에서 가장 최근 일괄 처리의 시간 범위를 볼 수 있습니다.

Data Services 홈에서 데이터 자산 카드를 확인할 수도 있습니다. 데이터가 다음으로 업데이트됩니다에서 마지막 업데이트 날짜 및 시간이 표시되면 Analytics Hub의 데이터에서 테이블을 사용할 수 있어야 합니다.

데이터 자산이 다음으로 업데이트됩니다에 표시된 시간까지의 모든 소스 트랜잭션의 데이터는 이 데이터 자산에서 사용할 수 있습니다. 이 정보는 모든 테이블이 로드되고 첫 번째 변경 사항 집합이 적용되면 데이터 자산에 사용할 수 있습니다. 라이브 보기 생성을 선택한 경우 라이브 보기가 업데이트될 때도 볼 수 있습니다.

초기 로드가 완료되기 전에 첫 번째 일괄 변경 사항이 있는 경우 초기 로드가 완료되고 변경 사항 일괄 처리가 적용될 때까지 자산 카드의 데이터가 다음으로 업데이트됩니다가 업데이트되지 않습니다. 예를 들어 백만 개의 주문이 포함된 주문 테이블과 천만 개의 주문 세부 정보가 포함된 주문 세부 정보 테이블이 포함된 데이터 자산을 로드한다고 가정합니다. 테이블이 전체 로드를 수행하는 데 각각 10분 및 20분이 걸립니다. 주문 테이블이 먼저 로드된 다음 주문 세부 정보 테이블이 로드됩니다. 주문 테이블을 로드하는 동안 새 주문이 삽입되었습니다. 따라서 주문 세부 정보가 로드되면 아직 주문 테이블에 존재하지 않는 새 주문의 세부 정보가 포함될 수 있습니다. 주문 및 주문 세부 정보 테이블은 변경 사항의 첫 번째 배치가 적용된 후 동일한 시간에 동기화되고 완전히 업데이트됩니다.

참고: 테이블 생성을 시작했을 때 설정이나 포함된 데이터 집합을 변경할 수 없습니다.

저장소 데이터 자산에 대한 작업

Data Services 홈의 자산 메뉴에서 저장소 데이터 자산에 대해 다음 작업을 수행할 수 있습니다.

  • 열기

    그러면 저장소 데이터 자산이 열립니다. 데이터 자산에 대한 테이블 구조 및 세부 정보를 보고 전체 로드 및 일괄 변경에 대한 상태를 모니터링할 수 있습니다.

  • 편집

    자산의 이름과 설명을 편집하고 태그를 추가할 수 있습니다.

  • 중지

    데이터 자산의 작동을 중지할 수 있습니다. 데이터 자산은 테이블을 계속 업데이트하지 않습니다.

  • 재개

    중지된 지점부터 데이터 자산의 작동을 재개할 수 있습니다.

  • 삭제

    데이터 자산을 삭제할 수 있습니다.

테이블 다시 로드

열려 있고 앱이 실행 중인 저장소 데이터 자산의 테이블을 다시 로드할 수 있습니다. 다음 변경 일괄 처리가 처리되면 다시 로드가 시작됩니다.

랜딩 데이터가 96시간보다 오래된 경우 이 데이터 자산을 실행하기 전에 이 데이터 자산을 공급하는 랜딩 데이터 자산의 테이블을 다시 로드해야 합니다.

  • 모든 테이블을 다시 로드하려면:

    을 클릭한 다음 다시 로드합니다.

  • 특정 테이블을 다시 로드하려면:

    1. 모니터 탭을 엽니다.

    2. 다시 로드할 테이블을 선택합니다.

    3. 테이블 다시 로드를 클릭합니다.

Replicate 작업에 오류가 있는 경우 저장소 데이터 자산에서 다시 로드를 수행하기 전에 Replicate 작업에서 랜딩 데이터 자산을 다시 로드해야 합니다.

Snowflake에서 생성되는 테이블 및 보기의 구조

이 섹션에서는 데이터 자산 스키마 및 내부 스키마에서 생성되는 테이블 및 보기의 구조에 대해 설명합니다.

모든 테이블과 보기는 Qlik Data Services로 관리됩니다. 다른 도구를 사용하여 데이터를 변경하지 마십시오.

테이블

테이블은 내부 스키마에서 생성됩니다.

명명: <INTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME><테이블 접미사>

다음 헤더 필드가 테이블 구조에 추가됩니다.

테이블 헤더 필드
필드 유형 설명
hdr__key_hash varbinary(20)

모든 레코드 기본 키의 해시입니다.

해시 형식은 SHA1입니다. 필드는 백스페이스 문자로 구분됩니다.

hdr__timestamp 타임스탬프

타임스탬프(UTC)

  • 전체 로드에서 가져온 데이터의 경우 전체 로드 시작 시간이 됩니다.

  • 변경 테이블에서 발생한 변경의 경우 레코드의 타임스탬프 필드가 됩니다.

hdr__operation varchar(1)

이 레코드의 최신 작업입니다.

  • U - 변경 테이블에서 업데이트되었습니다.

  • I - 변경 테이블에서 삽입되었습니다.

  • L - 전체 로드 작업에 의해 삽입되었습니다.

랜딩 데이터의 삭제는 영구 삭제로 변환됩니다.

자산 상태 테이블

자산 상태 테이블은 내부 스키마에서 생성됩니다. 트랜잭션 일관성을 위해 Qlik Replicate에서 보고된 마지막 적용 시퀀스 및 마지막 시퀀스를 유지하는 데 사용됩니다. 데이터 자산의 모든 개체는 동일한 자산 상태 테이블을 사용합니다.

명명: <INTERNAL_SCHEMA>.[<PREFIX>]ASSET_STATE__<DATA_ASSET_ID>

자산 상태 테이블 필드
필드 유형 설명
hdr__dataset_id varbinary(20)

데이터 집합 ID입니다.

hdr__change_seq varchar(35)

마지막 변경 시퀀스가 적용되었습니다.

hdr__timestamp 타임스탬프

적용된 마지막 커밋 트랜잭션 시간(UTC)입니다.

테이블의 표준 보기

헤더가 있는 표준 보기는 선택한 각 소스 테이블에 대한 데이터 자산 스키마에서 생성됩니다. 이 보기에는 테이블 구조의 모든 원래 필드가 포함되지만 내부 스키마의 테이블에 추가된 헤더 필드는 포함되지 않습니다.

명명: <DATA_ASSET_SCHEMA>.[<PREFIX>]<TABLE_NAME>< 테이블의 표준 보기에 대한 접미사>

헤더가 있는 표준 보기

헤더가 있는 표준 보기는 선택한 각 소스 테이블에 대한 데이터 자산 스키마에서 선택적으로 생성됩니다. 이 보기에는 테이블에 추가된 헤더 필드가 포함됩니다.

명명: <DATA_ASSET_SCHEMA>.[<PREFIX>]<TABLE_NAME>< 헤더가 있는 표준 보기의 접미사>

라이브 보기

라이브 보기는 테이블을 변경 테이블의 변경 사항과 병합하는 선택된 각 소스 테이블에 대한 보기를 보여 줍니다. 이렇게 하면 다음 적용 주기를 기다릴 필요 없이 쿼리에 데이터의 라이브 보기가 제공됩니다. 변경 테이블 보기에서 병합된 변경 사항은 복제의 이벤트를 사용하는 테이블 간에 일관된 트랜잭션입니다. 라이브 보기는 데이터 자산 스키마에서 생성됩니다.

라이브 보기 데이터 자산은 변경 사항이 있는 경우 기본적으로 1분마다 Snowflake 작업을 수행합니다. 이는 Qlik Replicate에서 변경할 수 있습니다.

명명: <DATA_ASSET_SCHEMA>.[<PREFIX>]<TABLE_NAME>< 라이브 보기에 대한 접미사>

테이블 보기 변경

선택한 각 소스 테이블에 대한 랜딩 스키마의 변경 테이블 보기입니다.

명명: <DATA_ASSET_SCHEMA>.[<PREFIX>]<TABLE_NAME>< 변경 테이블 보기에 대한 접미사>

다음 헤더 필드가 테이블 구조에 추가됩니다.

테이블 헤더 필드 변경
필드 유형 설명
hdr__change_seq varchar(35) Qlik Replicate에서 시퀀스를 변경합니다.
hdr__operation varchar(1)

이 레코드의 최신 작업입니다.

  • U - 업데이트되었습니다.

  • I - 삽입했습니다.

  • D - 삭제되었습니다.

hdr__timestamp 타임스탬프

Qlik Replicate의 타임스탬프(UTC)입니다.

hdr__key_hash varbinary(20)

Qlik Replicate 변경 테이블의 모든 레코드 기본 키의 해시입니다.