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

눈송이 스키마란 무엇입니까?
A 눈송이 스키마 데이터 웨어하우스는 다차원 데이터베이스에서 테이블을 논리적으로 배열한 것입니다. 엔티티 관계(ER) 다이어그램 눈송이 모양과 비슷합니다. 그것은 차원 모델 이 구조에서는 중앙 팩트 테이블이 차원 테이블과 연결되고, 이러한 차원 테이블은 다시 관련 하위 차원 테이블로 세분화됩니다.
스노우플레이크 스키마는 스타 스키마의 확장입니다. 스타 스키마가 각 차원을 단일 평면 테이블에 유지하는 반면, 스노우플레이크 스키마는 이러한 차원을 정규화하여 반복되는 데이터 그룹을 추가 조회 테이블로 분리합니다. 이러한 정규화를 통해 중복이 제거되고 스키마 이름의 유래가 된 분기형 계층 구조가 생성됩니다.
눈송이 스키마 예
다음 스노우플레이크 스키마 예시에서는 판매(Sales) 팩트 테이블이 중심에 있고, 제품(Product), 날짜(Date), 매장(Store) 등의 차원 테이블이 그 주변을 둘러싸고 있습니다. 모든 속성을 하나의 차원 테이블에 저장하는 대신, 지리 정보를 정규화하여 국가(Country)를 별도의 테이블로 이동시켰습니다.

여기서, 상점(Store) 차원은 도시(City) 테이블을 참조하고, 도시 테이블은 주(State) 테이블을 참조하며, 주 테이블은 국가(Country) 테이블을 참조합니다. 각 값은 한 번만 저장되고 외래 키로 연결되므로 수백만 개의 행에 걸쳐 국가 이름이 반복되는 일은 없습니다. 이러한 계층적 정규화는 스노우플레이크 스키마를 플랫 스타 스키마와 구분하는 특징입니다.
눈송이 스키마의 특성
눈송이 스키마는 다음과 같은 몇 가지 특징을 가지고 있습니다.
- 정규화된 차원 테이블은 중복 값을 저장하지 않으므로 디스크 공간을 덜 사용합니다.
- 새로운 차원을 스키마에 추가하는 것은 비교적 적은 노력으로 가능합니다.
- 데이터를 검색하려면 여러 테이블을 조인해야 하므로 쿼리 성능이 저하될 수 있습니다.
- 관리해야 할 조회 테이블 수가 많아지므로 유지 관리 노력이 더 많이 필요합니다.
스노우플레이크 스키마 설계 방법
스노우플레이크 스키마 설계는 일반적인 차원 모델 설계와 동일한 방식으로 시작하며, 여기에 정규화 단계를 추가합니다. 목표는 분석하고자 하는 비즈니스 프로세스를 식별하고, 이를 먼저 스타 스키마로 모델링한 다음, 깊은 계층 구조를 포함하는 차원을 정규화하는 것입니다. 다음 단계를 순서대로 진행하십시오.
- 비즈니스 프로세스와 그 구성 요소를 파악합니다. 팩트 테이블의 각 행이 무엇을 나타내는지(예: 단일 판매 거래) 결정하고 보고해야 하는 숫자 측정값(팩트)을 정의합니다.
- 핵심 정보 테이블을 구축합니다. 각 차원을 가리키는 외래 키와 함께 숫자 측정값을 추가합니다. 이러한 외래 키들은 일반적으로 함께 복합 기본 키를 구성합니다.
- 차원 테이블을 정의합니다. 제품, 고객, 날짜, 매장과 같은 각 설명 차원에 대해 하나의 테이블을 만들고 각 테이블에 대체 기본 키를 할당합니다.
- 계층 구조를 정규화합니다. 반복되는 속성을 포함하는 모든 차원을 하위 차원 테이블로 분할합니다. 예를 들어 제품 차원에서 카테고리를 분리하거나, 매장 차원에서 도시, 주, 국가를 분리하는 식입니다.
- 외래키를 사용하여 테이블을 연결하세요. 각 하위 차원을 상위 테이블에 연결하여 가지들이 눈송이 모양처럼 명확한 일대다 계층 구조를 형성하도록 합니다.
- 쿼리를 사용하여 유효성을 검사하고 테스트하십시오. 대표적인 보고 쿼리를 실행하여 조인이 올바른 결과를 반환하고 전반적인 성능이 허용 가능한 수준으로 유지되는지 확인합니다.
이 설계는 데이터를 제3정규형으로 정규화하므로, 분석가가 각 분기를 탐색하는 방법을 이해할 수 있도록 조인 경로를 명확하게 문서화해야 합니다. 구조가 정의되면 스키마의 이점과 비용을 비교 검토하는 것이 좋습니다.
스노우플레이크 스키마의 장점
스노우플레이크 스키마는 다음과 같은 여러 가지 이점을 제공합니다.
- 가장 큰 장점은 디스크 저장 공간을 줄일 수 있다는 것입니다. 크기가 작은 정규화된 조회 테이블을 결합하면 차원 데이터의 중복을 방지할 수 있기 때문입니다.
- 이는 구성 요소와 차원 수준 간의 관계에서 더 큰 확장성을 제공합니다.
- 이는 중복을 제거하여 데이터 무결성을 향상시키고 모델 유지 관리를 더 쉽게 만듭니다.
- 설명 속성은 한 곳에서만 업데이트되므로 데이터 불일치 위험이 줄어듭니다.
스노우플레이크 스키마의 단점
이 디자인에는 고려해야 할 절충점도 있습니다.
- 정규화된 구조는 관련된 여러 테이블을 관리하는 데 필요한 유지 관리 작업을 증가시킵니다.
- 여러 개의 조인을 포함하는 복잡한 쿼리는 작성하고 이해하기 어려울 수 있습니다.
- 테이블 수가 많아지면 조인 횟수가 늘어나 쿼리 실행 시간이 길어집니다.
- 비즈니스 사용자들은 분기형 모델이 단순한 스타 스키마보다 탐색하기 어렵다고 느끼는 경우가 많습니다.
눈송이 스키마 vs 별 스키마
눈송이 스키마와 스타 스키마 데이터 웨어하우징에서 가장 일반적인 다차원 설계 방식은 스타 스키마와 스노우플레이크 스키마 두 가지이며, 핵심적인 차이점은 정규화 방식입니다. 스타 스키마는 쿼리 속도를 극대화하기 위해 각 차원을 단일의 비정규화된 테이블에 저장하는 반면, 스노우플레이크 스키마는 저장 공간을 절약하고 데이터 무결성을 보호하기 위해 여러 개의 관련 테이블로 차원을 정규화합니다. 따라서 두 스키마는 서로 다른 우선순위에 적합합니다.
| 아래 | 스타 스키마 | 눈송이 스키마 |
|---|---|---|
| 치수표 | 비정규화, 차원당 하나의 테이블 | 하위 차원 테이블로 정규화됨 |
| 스토리지 | 중복으로 인해 더 많은 공간을 차지합니다. | 공간을 적게 차지하고 중복이 없습니다. |
| 쿼리 성능 | 더 빠르고, 참여 횟수가 더 적습니다. | 속도가 느리고, 연결 횟수가 더 많습니다. |
| 쿼리 복잡성 | 쓰기 쉽습니다 | 더 복잡한 |
| 적합한 | 빠른 보고 및 BI | 크고 계층적인 차원 |
요약하자면, 쿼리 속도와 보고서의 간편성이 가장 중요할 때는 스타 스키마를 선택하고, 저장 효율성, 깔끔한 계층 구조, 데이터 중복 최소화가 우선시될 때는 스노우플레이크 스키마를 선택하십시오. 실제 많은 데이터 웨어하우스는 각 차원의 크기와 깊이에 따라 두 가지 패턴을 모두 조합하여 사용합니다.
스노우플레이크 스키마는 언제 사용해야 할까요?
스노우플레이크 스키마가 항상 최적의 선택은 아니므로, 작업 부하 및 보고 요구 사항에 맞춰 설계하는 것이 좋습니다. 일반적으로 다음과 같은 상황에서 가장 효과적입니다.
- 차원이 매우 크고 반복되는 속성이 많아 비정규화될 때 저장 공간을 낭비합니다.
- 차원은 지역에서 국가, 주, 도시로 이어지는 깊고 명확한 계층 구조를 가지고 있으며, 이러한 계층 구조는 별도의 표에 자연스럽게 매핑됩니다.
- 데이터 무결성과 일관성은 단순한 쿼리 속도보다 프로젝트에 더 중요합니다.
- 스토리지 비용은 실질적인 문제이며, 대규모 차원 테이블에서 디스크 공간을 절약할 수 있다는 점은 매우 중요합니다.
- 모델 피드 올랩 정규화된 계층 구조를 효율적으로 탐색할 수 있는 도구.
반대로, 비즈니스 분석가를 위한 빠르고 간단한 보고가 우선시될 때는 스타 스키마 또는 하이브리드 스타 클러스터 설계가 일반적으로 더 적합합니다. 데이터 웨어하우스 아키텍처 속도와 저장 용량의 균형을 맞추기 위해 두 가지 접근 방식을 의도적으로 혼합했습니다.
갤럭시 스키마란 무엇입니까?
A Galaxy 스키마 팩트 테이블이 둘 이상 포함되어 있으며, 이 테이블들은 서로 차원 테이블을 공유합니다. 이를 팩트 별자리 스키마라고도 하며, 별들의 모음으로 볼 수 있기 때문에 은하계 스키마라는 이름도 붙었습니다.

위 예시에서 보시는 것처럼 팩트 테이블은 두 개입니다.
- Revenue
- 프로덕트
갤럭시 스키마에서 팩트 테이블 간에 공유되는 차원을 일치 차원이라고 합니다.
갤럭시 스키마의 특징
은하계 모형은 다음과 같은 특징을 가지고 있습니다.
- 차원은 계층 구조의 다양한 수준에 따라 서로 다른 차원으로 구분됩니다.
- 예를 들어, 지리학이 지역, 국가, 주, 도시와 같은 4단계 계층 구조를 가지고 있다면, 은하계 도식도 4차원을 가져야 합니다.
- 하나의 스타 스키마를 여러 개의 스타 스키마로 분할함으로써 이러한 유형의 스키마를 구축할 수 있습니다.
- 이 도면의 치수는 방대하므로 계층 구조의 각 단계에 따라 구축해야 합니다.
- 이 스키마는 팩트 테이블을 통합하여 더 나은 분석과 이해를 돕는 데 유용합니다.
스타란 무엇인가 Cluster 개요?
스노우플레이크 스키마는 계층 구조가 완전히 확장된 형태로 구성되어 있어 복잡성을 증가시키고 추가적인 조인을 필요로 할 수 있습니다. 반면 스타 스키마는 계층 구조가 완전히 축소된 형태로 구성되어 있어 중복이 발생할 수 있습니다. 최적의 솔루션은 이 두 가지 설계 방식의 균형을 맞춘 스타 스키마인 경우가 많습니다. Cluster 개요.

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