주요 컨텐츠로 이동

Databricks Lakehouse Platform에서 Matillion을 사용하여 데이터 웨어하우스 SCD(천천히 변경되는 차원) 유형 2 로드

Databricks에서 Matillion을 사용하여 SCD 2형 관리

Loading a Data Warehouse Slowly Changing Dimension Type 2 Using Matillion on Databricks Lakehouse Platform

발행일: 2023년 1월 25일

파트너Less than a minute

본 게시물은 Databricks와 Matillion의 협업 게시물입니다. 기고해 주신 Matillion의 제품 마케팅 담당 David Willmer에게 감사드립니다.

 

점점 더 많은 고객이 기존 엔터프라이즈 데이터 웨어하우스와 구형 ETL 플랫폼을 현대화함에 따라 Databricks Lakehouse Platform과 GUI 기반 ETL을 위한 Matillion을 사용하여 최신 클라우드 데이터 스택을 도입하고자 합니다. Matillion의 로우 코드, 시각적 ELT 플랫폼을 사용하면 누구나 모든 소스의 데이터를 Databricks SQL Warehouse로 쉽게 통합하여 분석 및 AI 데이터를 비즈니스에 즉시 활용할 수 있으며 속도도 향상됩니다.

이 블로그에서는 Matillion을 사용하여 SCD(천천히 변경되는 차원) 유형 2를 Databricks Lakehouse Platform으로 로드하는 ETL 파이프라인을 만드는 방법을 보여줍니다. Matillion은 푸시 다운 ETL/ELT 기능이 있는 최신 브라우저 기반 UI를 제공합니다. Databricks SQL 웨어하우스 또는 클러스터를 Matillion과 쉽게 통합할 수 있습니다. Databricks를 사용하여 Matillion에 연결하는 방법을 궁금해하는 경우 가장 쉬운 방법은 Partner Connect를 사용하는 것입니다. Partner Connect는 Databricks 작업 영역의 기존 SQL 웨어하우스 또는 클러스터를 Matillion에 연결하는 프로세스를 간소화합니다. 자세한 단계는 여기를 참조하세요.

SCD(천천히 변경되는 차원) 유형 2란 무엇인가요?

SCD 유형 2는 모든 데이터 웨어하우징/모델링 아키텍처에서 사용되는 차원 테이블의 기록을 보존하는 일반적인 기술입니다. 비활성 행에는 ACTIVE_RECORD 열이 'F'로 설정되거나 시작 및 종료 날짜와 같은 부울 플래그가 있습니다. 모든 활성 행은 종료 날짜가 null이거나 ACTIVE_RECORD가 'F'가 아닌 쿼리를 반환하여 표시됩니다.

SCD2 변경 전 차원 테이블 - 이 데이터 웨어하우스 테이블은 비활성 레코드에 "종료 날짜"를 태깅하는 일반적인 시나리오를 나타냅니다.
SCD2 변경 전 차원 테이블 - 이 데이터 웨어하우스 테이블은 비활성 레코드에 “종료 날짜”를 태깅하는 일반적인 시나리오를 나타냅니다.

Databricks의 Delta Lake용 Matillion ETL은 유형 2 천천히 변경되는 차원을 관리하기 위해 2단계 접근 방식을 사용합니다. 이 2단계 접근 방식은 먼저 들어오는 레코드의 변경 사항을 식별하고 임시 테이블 또는 뷰에서 플래그를 지정하는 것을 포함합니다. 모든 들어오는 레코드에 플래그가 지정되면 대상 차원 테이블에서 업데이트를 완료하기 위한 작업을 수행할 수 있습니다.

이제 Matillion을 사용하여 SCD 유형 2 변환을 구현하는 방법을 자세히 살펴보겠습니다. 여기서 대상은 Delta Lake 테이블이고 사용되는 기본 컴퓨팅 옵션은 Databricks SQL Warehouse입니다.

1단계: 차원 변경 스테이징

아래 1단계를 살펴보면 ETL 파이프라인은 기존 Delta Lake 차원 테이블에서 데이터를 읽고 가장 최신 또는 활성 레코드만 식별합니다(이것이 하단 데이터 흐름임). 동시에 모든 새 데이터를 읽어 변경 감지 프로세스를 중단하지 않도록 의도된 기본 키가 고유한지 확인합니다(이것이 상단 데이터 흐름임). 그런 다음 이 두 경로는 변경 사항 감지 구성 요소로 수렴됩니다.

1단계: 변경 사항 감지 - 이 파이프라인은 새 데이터 레코드를 Lakehouse의 차원 테이블에 이미 있는 기존 데이터 레코드와 비교합니다. Matillion ETL 내에서 변경 사항 감지 구성 요소를 사용하여 레코드에 새 항목, 변경됨 또는 삭제됨 플래그가 지정되고 중간 뷰에 기록됩니다.
1단계: 변경 사항 감지 - 이 파이프라인은 새 데이터 레코드를 Lakehouse의 차원 테이블에 이미 있는 기존 데이터 레코드와 비교합니다. Matillion ETL 내에서 변경 사항 감지 구성 요소를 사용하여 레코드에 새 항목, 변경됨 또는 삭제됨 플래그가 지정되고 중간 뷰에 기록됩니다.

Matillion ETL 내에서 변경 사항 감지 구성 요소는 변경된 레코드에 대한 업데이트 및 삽입을 결정하는 핵심 메커니즘입니다. 들어오는 데이터 세트를 대상 데이터 세트와 비교하고 구성 요소 내에서 구성된 비교 열 목록을 사용하여 레코드가 동일한지, 변경되었는지, 새 항목인지 또는 삭제되었는지 확인합니다. 새 데이터 세트의 각 레코드는 평가되고 변경 사항 감지 구성 요소의 출력에서 지표 필드 - 'I'(동일), 'C'(변경됨), 'N'(새 항목) 및 'D'(삭제됨)이 할당됩니다.

데이터 웨어하우스 스테이징 테이블 - 이 테이블은 들어오는 데이터를 대상 테이블과 비교하고 레코드가 동일한지, 변경되었는지, 새 항목인지 또는 삭제되었는지 확인한 후 "변경 코드" 필드를 채우는 데이터 웨어하우스의 일반적인 스테이징 테이블을 나타냅니다.
데이터 웨어하우스 스테이징 테이블 - 이 테이블은 들어오는 데이터를 대상 테이블과 비교하고 레코드가 동일한지, 변경되었는지, 새 항목인지 또는 삭제되었는지 확인한 후 “변경 코드” 필드를 채우는 데이터 웨어하우스의 일반적인 스테이징 테이블을 나타냅니다.

이 2단계 접근 방식의 1단계에서 마지막 작업은 각 새 레코드를 쓰기 전에 각 레코드에 로드 날짜를 추가하는 것입니다. 이제 변경 지표로 플래그가 지정된 각 레코드는 임시 차원 Delta Lake 테이블에 추가됩니다. 이것이 2단계의 입력이 됩니다.

5X 리더

Gartner®: Databricks 클라우드 데이터베이스 리더

2단계: 차원 변경 완료

2단계로 이동하면서 레이크하우스에서 중간 또는 임시 차원 테이블을 읽는 것으로 시작합니다. 변경 사항 감지 구성 요소에서 파생된 지표 필드를 사용하고 간단한 필터 구성 요소를 사용하여 3개의 개별 경로를 만듭니다. 변경이 필요하지 않으므로 동일한 레코드('I'로 식별됨)에 대해서는 아무 작업도 수행하지 않으므로 이러한 레코드는 필터링됩니다. 이 블로그 내에서 명확하게 설명하기 위해 이 경로를 남겨 두었습니다. 그러나 이러한 레코드로 특정 작업을 수행해야 하는 경우가 아니면 실제로는 불필요합니다.

2단계: 차원 테이블에 쓰기 - Matillion은 중간 테이블에서 읽어 각 변경 플래그를 기반으로 레코드를 필터링하고 적절한 작업을 수행하여 새 데이터를 차원 테이블에 씁니다.
2단계: 차원 테이블에 쓰기 - Matillion은 중간 테이블에서 읽어 각 변경 플래그를 기반으로 레코드를 필터링하고 적절한 작업을 수행하여 새 데이터를 차원 테이블에 씁니다.

다음 경로는 새 항목 또는 변경된 레코드에 대해 식별된 각 새 항목 또는 변경된 레코드에 대해 하나의 새로운 현재 레코드를 생성합니다. 필터 구성 요소는 변경 사항 감지 구성 요소에서 식별된 대로 'N'(새 항목) 또는 'C'(변경됨)가 있는 레코드만 처리합니다. 이름 바꾸기 구성 요소는 새 레코드 필드(compare_ 접두사로 식별됨)에서 Delta Lake 대상 차원 테이블에서 정의한 실제 열 이름으로 변경된 데이터를 매핑하는 열 매퍼 역할을 합니다. 마지막으로 "새 필드" 구성 요소는 활성 레코드의 만료 타임스탬프를 "무한대"로 설정하여 가장 최신 레코드로 식별하도록 구성된 계산기 구성 요소입니다.

이름 바꾸기 구성 요소 - 이름 바꾸기 구성 요소는 새 레코드 필드(compare_ 접두사로 식별됨)에서 Lakehouse 내의 대상 차원 테이블의 실제 열 이름으로 변경된 데이터를 매핑하는 열 매퍼 역할을 합니다.
이름 바꾸기 구성 요소 - 이름 바꾸기 구성 요소는 새 레코드 필드(compare_ 접두사로 식별됨)에서 Lakehouse 내의 대상 차원 테이블의 실제 열 이름으로 변경된 데이터를 매핑하는 열 매퍼 역할을 합니다.

마지막 경로는 변경되거나 삭제된 것으로 식별된 기존 레코드를 닫거나 만료하는 것입니다. SCD2에서는 변경 사항이 새 레코드로 추가되므로(위의 새 항목 또는 변경된 경로에 설명됨) 각 이전 레코드를 만료되었거나 비활성으로 표시해야 합니다. 마찬가지로 삭제된 레코드에는 더 이상 활성 상태로 식별되지 않도록 만료 날짜가 필요합니다. 여기서 변경되거나 삭제된 경로는 만료를 위해 레코드를 고유하게 식별하는 적절한 열을 매핑하여 각 'C'(변경됨) 또는 'D'(삭제됨)를 처리합니다. 식별되면 만료 날짜가 현재 타임스탬프로 설정되고 업데이트가 Delta Lake 대상 차원 테이블 내에서 수행됩니다.

SCD2 업데이트 후 차원 테이블 - 이 테이블은 스테이징 테이블의 모든 트랜잭션이 적용된 후 최종 데이터 웨어하우스 차원 테이블을 나타냅니다.
SCD2 업데이트 후 차원 테이블 - 이 테이블은 스테이징 테이블의 모든 트랜잭션이 적용된 후 최종 데이터 웨어하우스 차원 테이블을 나타냅니다.

결론

Matillion의 로우 코드/노 코드 데이터 통합을 사용하여 Databricks Lakehouse 플랫폼에서 천천히 변경되는 차원을 구현하는 방법을 보여드렸습니다. Matillion과 같은 GUI 기반 ETL 도구를 선호하는 모든 조직이 클라우드에서 데이터 엔지니어링, 데이터 과학 및 머신 러닝 파이프라인을 구현하고 유지 관리하는 데 탁월한 옵션입니다. Databricks에서 Delta Lake의 기능을 진정으로 활용하고 데이터 생산성을 향상시켜 클라우드 데이터 분석을 강화하는 데 필요한 성능, 속도 및 확장성을 제공합니다.

Matillion과 Databricks 통합에 대해 자세히 알아보려면 자세한 설명서 여기를 확인하세요.

Databricks를 14일 동안 무료로 사용해 보세요.

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요