데이터 웨어하우스 모델의 눈송이 스키마

⚡ 스마트 요약

데이터 웨어하우스 모델링에서 스노우플레이크 스키마는 중앙 팩트 테이블에서 가지처럼 뻗어 나가는 정규화된 차원 테이블 구조를 눈송이 모양으로 배열합니다. 이는 스타 스키마를 확장하고, 데이터 중복을 줄이며, 여러 관련 조회 테이블에 걸쳐 계층 구조를 구성합니다.

  • 🧩 핵심 구조: 중앙 팩트 테이블은 차원 테이블과 연결되며, 이 차원 테이블은 다시 하위 차원 테이블 및 조회 테이블로 정규화됩니다.
  • ❄️ 표준화: 각 차원을 관련 테이블로 분할하면 반복되는 속성이 제거되고 계층 구조가 제3정규형에 가까워집니다.
  • 🌟 스타 스키마와의 관계: 스노우플레이크 스키마는 스타 스키마의 평면적이고 비정규화된 차원 테이블을 정규화함으로써 스타 스키마를 확장합니다.
  • 💾 저장 공간의 이점: 크기가 작은 정규화된 조회 테이블은 디스크 사용량을 줄이고 중복 데이터를 제거하여 유지 관리를 용이하게 합니다.
  • 🔗 쿼리 절충안: 테이블 수가 많아질수록 조인 횟수가 늘어나 쿼리 성능이 저하되고 보고서 작성이 복잡해질 수 있습니다.
  • 🧭 사용시기 : 저장 공간 절약과 데이터 무결성이 가장 중요한 대규모 데이터 구조나 깊은 계층 구조에 적합합니다.
  • 🪐 관련 스키마: 은하와 성단 디자인은 별과 눈송이 개념을 바탕으로 더욱 복잡한 모델을 구축하는 데 활용됩니다.

중앙 팩트 테이블에서 분기되는 정규화된 차원 테이블을 사용하는 데이터 웨어하우스의 스노우플레이크 스키마

눈송이 스키마란 무엇입니까?

A 눈송이 스키마 데이터 웨어하우스는 다차원 데이터베이스에서 테이블을 논리적으로 배열한 것입니다. 엔티티 관계(ER) 다이어그램 눈송이 모양과 비슷합니다. 그것은 차원 모델 이 구조에서는 중앙 팩트 테이블이 차원 테이블과 연결되고, 이러한 차원 테이블은 다시 관련 하위 차원 테이블로 세분화됩니다.

스노우플레이크 스키마는 스타 스키마의 확장입니다. 스타 스키마가 각 차원을 단일 평면 테이블에 유지하는 반면, 스노우플레이크 스키마는 이러한 차원을 정규화하여 반복되는 데이터 그룹을 추가 조회 테이블로 분리합니다. 이러한 정규화를 통해 중복이 제거되고 스키마 이름의 유래가 된 분기형 계층 구조가 생성됩니다.

눈송이 스키마 예

다음 스노우플레이크 스키마 예시에서는 판매(Sales) 팩트 테이블이 중심에 있고, 제품(Product), 날짜(Date), 매장(Store) 등의 차원 테이블이 그 주변을 둘러싸고 있습니다. 모든 속성을 하나의 차원 테이블에 저장하는 대신, 지리 정보를 정규화하여 국가(Country)를 별도의 테이블로 이동시켰습니다.

중앙 팩트 테이블과 정규화된 국가 차원 테이블을 갖춘 스노우플레이크 스키마의 예
눈송이 스키마의 예

여기서, 상점(Store) 차원은 도시(City) 테이블을 참조하고, 도시 테이블은 주(State) 테이블을 참조하며, 주 테이블은 국가(Country) 테이블을 참조합니다. 각 값은 한 번만 저장되고 외래 키로 연결되므로 수백만 개의 행에 걸쳐 국가 이름이 반복되는 일은 없습니다. 이러한 계층적 정규화는 스노우플레이크 스키마를 플랫 스타 스키마와 구분하는 특징입니다.

눈송이 스키마의 특성

눈송이 스키마는 다음과 같은 몇 가지 특징을 가지고 있습니다.

  • 정규화된 차원 테이블은 중복 값을 저장하지 않으므로 디스크 공간을 덜 사용합니다.
  • 새로운 차원을 스키마에 추가하는 것은 비교적 적은 노력으로 가능합니다.
  • 데이터를 검색하려면 여러 테이블을 조인해야 하므로 쿼리 성능이 저하될 수 있습니다.
  • 관리해야 할 조회 테이블 수가 많아지므로 유지 관리 노력이 더 많이 필요합니다.

스노우플레이크 스키마 설계 방법

스노우플레이크 스키마 설계는 일반적인 차원 모델 설계와 동일한 방식으로 시작하며, 여기에 정규화 단계를 추가합니다. 목표는 분석하고자 하는 비즈니스 프로세스를 식별하고, 이를 먼저 스타 스키마로 모델링한 다음, 깊은 계층 구조를 포함하는 차원을 정규화하는 것입니다. 다음 단계를 순서대로 진행하십시오.

  1. 비즈니스 프로세스와 그 구성 요소를 파악합니다. 팩트 테이블의 각 행이 무엇을 나타내는지(예: 단일 판매 거래) 결정하고 보고해야 하는 숫자 측정값(팩트)을 정의합니다.
  2. 핵심 정보 테이블을 구축합니다. 각 차원을 가리키는 외래 키와 함께 숫자 측정값을 추가합니다. 이러한 외래 키들은 일반적으로 함께 복합 기본 키를 구성합니다.
  3. 차원 테이블을 정의합니다. 제품, 고객, 날짜, 매장과 같은 각 설명 차원에 대해 하나의 테이블을 만들고 각 테이블에 대체 기본 키를 할당합니다.
  4. 계층 구조를 정규화합니다. 반복되는 속성을 포함하는 모든 차원을 하위 차원 테이블로 분할합니다. 예를 들어 제품 차원에서 카테고리를 분리하거나, 매장 차원에서 도시, 주, 국가를 분리하는 식입니다.
  5. 외래키를 사용하여 테이블을 연결하세요. 각 하위 차원을 상위 테이블에 연결하여 가지들이 눈송이 모양처럼 명확한 일대다 계층 구조를 형성하도록 합니다.
  6. 쿼리를 사용하여 유효성을 검사하고 테스트하십시오. 대표적인 보고 쿼리를 실행하여 조인이 올바른 결과를 반환하고 전반적인 성능이 허용 가능한 수준으로 유지되는지 확인합니다.

이 설계는 데이터를 제3정규형으로 정규화하므로, 분석가가 각 분기를 탐색하는 방법을 이해할 수 있도록 조인 경로를 명확하게 문서화해야 합니다. 구조가 정의되면 스키마의 이점과 비용을 비교 검토하는 것이 좋습니다.

스노우플레이크 스키마의 장점

스노우플레이크 스키마는 다음과 같은 여러 가지 이점을 제공합니다.

  • 가장 큰 장점은 디스크 저장 공간을 줄일 수 있다는 것입니다. 크기가 작은 정규화된 조회 테이블을 결합하면 차원 데이터의 중복을 방지할 수 있기 때문입니다.
  • 이는 구성 요소와 차원 수준 간의 관계에서 더 큰 확장성을 제공합니다.
  • 이는 중복을 제거하여 데이터 무결성을 향상시키고 모델 유지 관리를 더 쉽게 만듭니다.
  • 설명 속성은 한 곳에서만 업데이트되므로 데이터 불일치 위험이 줄어듭니다.

스노우플레이크 스키마의 단점

이 디자인에는 고려해야 할 절충점도 있습니다.

  • 정규화된 구조는 관련된 여러 테이블을 관리하는 데 필요한 유지 관리 작업을 증가시킵니다.
  • 여러 개의 조인을 포함하는 복잡한 쿼리는 작성하고 이해하기 어려울 수 있습니다.
  • 테이블 수가 많아지면 조인 횟수가 늘어나 쿼리 실행 시간이 길어집니다.
  • 비즈니스 사용자들은 분기형 모델이 단순한 스타 스키마보다 탐색하기 어렵다고 느끼는 경우가 많습니다.

눈송이 스키마 vs 별 스키마

눈송이 스키마와 스타 스키마 데이터 웨어하우징에서 가장 일반적인 다차원 설계 방식은 스타 스키마와 스노우플레이크 스키마 두 가지이며, 핵심적인 차이점은 정규화 방식입니다. 스타 스키마는 쿼리 속도를 극대화하기 위해 각 차원을 단일의 비정규화된 테이블에 저장하는 반면, 스노우플레이크 스키마는 저장 공간을 절약하고 데이터 무결성을 보호하기 위해 여러 개의 관련 테이블로 차원을 정규화합니다. 따라서 두 스키마는 서로 다른 우선순위에 적합합니다.

아래스타 스키마눈송이 스키마
치수표비정규화, 차원당 하나의 테이블하위 차원 테이블로 정규화됨
스토리지중복으로 인해 더 많은 공간을 차지합니다.공간을 적게 차지하고 중복이 없습니다.
쿼리 성능더 빠르고, 참여 횟수가 더 적습니다.속도가 느리고, 연결 횟수가 더 많습니다.
쿼리 복잡성쓰기 쉽습니다더 복잡한
적합한빠른 보고 및 BI크고 계층적인 차원

요약하자면, 쿼리 속도와 보고서의 간편성이 가장 중요할 때는 스타 스키마를 선택하고, 저장 효율성, 깔끔한 계층 구조, 데이터 중복 최소화가 우선시될 때는 스노우플레이크 스키마를 선택하십시오. 실제 많은 데이터 웨어하우스는 각 차원의 크기와 깊이에 따라 두 가지 패턴을 모두 조합하여 사용합니다.

스노우플레이크 스키마는 언제 사용해야 할까요?

스노우플레이크 스키마가 항상 최적의 선택은 아니므로, 작업 부하 및 보고 요구 사항에 맞춰 설계하는 것이 좋습니다. 일반적으로 다음과 같은 상황에서 가장 효과적입니다.

  • 차원이 매우 크고 반복되는 속성이 많아 비정규화될 때 저장 공간을 낭비합니다.
  • 차원은 지역에서 국가, 주, 도시로 이어지는 깊고 명확한 계층 구조를 가지고 있으며, 이러한 계층 구조는 별도의 표에 자연스럽게 매핑됩니다.
  • 데이터 무결성과 일관성은 단순한 쿼리 속도보다 프로젝트에 더 중요합니다.
  • 스토리지 비용은 실질적인 문제이며, 대규모 차원 테이블에서 디스크 공간을 절약할 수 있다는 점은 매우 중요합니다.
  • 모델 피드 올랩 정규화된 계층 구조를 효율적으로 탐색할 수 있는 도구.

반대로, 비즈니스 분석가를 위한 빠르고 간단한 보고가 우선시될 때는 스타 스키마 또는 하이브리드 스타 클러스터 설계가 일반적으로 더 적합합니다. 데이터 웨어하우스 아키텍처 속도와 저장 용량의 균형을 맞추기 위해 두 가지 접근 방식을 의도적으로 혼합했습니다.

갤럭시 스키마란 무엇입니까?

A Galaxy 스키마 팩트 테이블이 둘 이상 포함되어 있으며, 이 테이블들은 서로 차원 테이블을 공유합니다. 이를 팩트 별자리 스키마라고도 하며, 별들의 모음으로 볼 수 있기 때문에 은하계 스키마라는 이름도 붙었습니다.

두 개의 팩트 테이블이 동일한 차원 테이블을 공유하는 갤럭시 스키마의 예
갤럭시 스키마의 예

위 예시에서 보시는 것처럼 팩트 테이블은 두 개입니다.

  1. Revenue
  2. 프로덕트

갤럭시 스키마에서 팩트 테이블 간에 공유되는 차원을 일치 차원이라고 합니다.

갤럭시 스키마의 특징

은하계 모형은 다음과 같은 특징을 가지고 있습니다.

  • 차원은 계층 구조의 다양한 수준에 따라 서로 다른 차원으로 구분됩니다.
  • 예를 들어, 지리학이 지역, 국가, 주, 도시와 같은 4단계 계층 구조를 가지고 있다면, 은하계 도식도 4차원을 가져야 합니다.
  • 하나의 스타 스키마를 여러 개의 스타 스키마로 분할함으로써 이러한 유형의 스키마를 구축할 수 있습니다.
  • 이 도면의 치수는 방대하므로 계층 구조의 각 단계에 따라 구축해야 합니다.
  • 이 스키마는 팩트 테이블을 통합하여 더 나은 분석과 이해를 돕는 데 유용합니다.

스타란 무엇인가 Cluster 개요?

스노우플레이크 스키마는 계층 구조가 완전히 확장된 형태로 구성되어 있어 복잡성을 증가시키고 추가적인 조인을 필요로 할 수 있습니다. 반면 스타 스키마는 계층 구조가 완전히 축소된 형태로 구성되어 있어 중복이 발생할 수 있습니다. 최적의 솔루션은 이 두 가지 설계 방식의 균형을 맞춘 스타 스키마인 경우가 많습니다. Cluster 개요.

별 모양과 눈송이 모양 디자인의 균형을 맞춘 성단 스키마의 예
별의 예 Cluster 개요

중복ping 차원은 계층 구조에서 분기점으로 나타납니다. 분기점은 하나의 엔티티가 서로 다른 두 개의 차원 계층 구조에서 부모 역할을 할 때 발생합니다. 이러한 분기 엔티티는 일대다 관계를 가진 분류로 식별되므로 설계 시 생성되는 추가 테이블의 수를 제한할 수 있습니다.

자주 묻는 질문

이 스키마는 엔티티 관계 다이어그램이 눈송이처럼 바깥쪽으로 뻗어나가는 모양 때문에 이러한 이름이 붙었습니다. 각 차원을 하위 차원과 조회 테이블로 정규화하면 중앙 팩트 테이블에서 방사형으로 뻗어나가는 여러 연결된 레벨이 생성되어 눈송이 결정과 유사한 모양을 형성합니다.

정규화는 중복 데이터를 제거하기 위해 차원 테이블을 더 작고 관련된 테이블로 분할합니다. 스노우플레이크 스키마에서는 범주나 국가와 같은 속성이 별도의 테이블로 이동하며, 일반적으로 제3정규형을 달성하여 중복을 줄이고 각 값이 한 번만 저장되도록 합니다.

팩트 테이블은 매출액과 같은 측정 가능한 수치형 비즈니스 이벤트와 차원 테이블에 대한 외래 키를 저장합니다. 차원 테이블은 제품명이나 지역과 같이 팩트 테이블에 맥락을 부여하는 설명 속성을 저장합니다. 일반적으로 팩트 테이블은 차원 테이블보다 훨씬 큽니다.

하위 차원(때로는 아웃리거 테이블이라고도 함)은 기본 차원에서 분기되는 정규화된 테이블입니다. 예를 들어, 제품 차원은 별도의 카테고리 테이블에 연결될 수 있습니다. 이러한 추가 테이블은 스노우플레이크 특유의 다단계 계층 구조를 만듭니다.

네. 많은 창고에서는 두 가지 패턴을 모두 사용하며, 이러한 패턴의 이점을 활용하는 대형 치수만 표준화하고 소형 치수는 유지합니다.ping 더 작은 크기의 평면형 스키마입니다. 스타 클러스터 스키마라고도 불리는 이 하이브리드 스키마는 스타 스키마의 쿼리 속도와 스노우플레이크 스키마의 저장 공간 절약 효과를 균형 있게 제공합니다.

예. 스노우플레이크 스키마 피드 올랩 스타 스키마는 정규화된 계층 구조가 국가, 주, 도시와 같은 드릴다운 레벨에 깔끔하게 매핑되기 때문에 시스템에 적합합니다. 그러나 추가적인 조인으로 인해 큐브 처리 속도가 느려질 수 있으므로 쿼리량이 많은 OLAP 워크로드에는 스타 스키마가 더 적합할 수 있습니다.

AI 어시스턴트는 정규화할 차원을 제안하고, 비즈니스 설명으로부터 테이블 구조를 생성하며, 성능을 향상시키는 인덱스 또는 조인 경로를 추천할 수 있습니다. 또한 중복 및 일관성 없는 키를 감지할 수 있지만, 데이터 엔지니어는 모든 권장 사항을 적용하기 전에 검토해야 합니다.

예. ChatGPT GitHub 부조종사 간단한 프롬프트만으로 스노우플레이크 스키마에 대한 CREATE TABLE 문과 조인 쿼리를 작성할 수 있습니다. 생성된 키, 데이터 유형 및 관계는 프로덕션 환경에서 실행하기 전에 항상 검토하십시오.

이 게시물을 요약하면 다음과 같습니다.