star vs. snowflake
dbt를 보다가 보니 이런 저런 내용이 나오는데, 누군가 star schema에 대한 언근이 있어 찾다가 MS의 Understand star schema라는 페이지를 찾았다.
좀더 구체적인 비교를 찾아 질의 해 본다.
1. 구조 (Structure)
Star Schema
- 중앙에 하나의 팩트 테이블이 있고, 이를 둘러싼 다수의 디멘션 테이블로 구성됩니다.
- 디멘션 테이블은 비정규화된(flat) 형태로 설계되며, 각 디멘션이 별도의 테이블로 저장됩니다.
- 단순한 구조를 가지며 별 모양을 띱니다.
Snowflake Schema
- 팩트 테이블은 동일하지만, 디멘션 테이블이 정규화된(normalized) 형태로 설계됩니다.
- 디멘션 테이블이 하위 디멘션으로 분할되어 복잡한 트리 구조를 형성합니다.
- 눈송이(snowflake) 모양을 닮은 구조입니다.
2. 정규화 수준 (Normalization)
Star Schema
- 디멘션 테이블이 비정규화(denormalized) 되어 있습니다.
- 하나의 디멘션 테이블에 모든 속성이 포함되며, 중복 데이터가 있을 수 있습니다.
Snowflake Schema
- 디멘션 테이블이 정규화(normalized) 되어 있습니다.
- 중복 데이터를 제거하고 디멘션 속성을 여러 테이블로 나눕니다.
3. 복잡도 (Complexity)
Star Schema
- 구조가 단순하여 이해 및 유지 관리가 용이합니다.
- 쿼리가 간단하고 빠르게 실행됩니다.
- 데이터 웨어하우스 설계 초보자나 소규모 프로젝트에 적합합니다.
Snowflake Schema
- 구조가 복잡하며, 이해 및 유지 관리가 어려울 수 있습니다.
- 정규화로 인해 테이블 간 조인(join)이 많아 쿼리 성능이 떨어질 수 - 있습니다.
- 대규모 데이터 웨어하우스나 복잡한 데이터 관계를 다룰 때 유리합니다.
4. 성능 (Performance)
Star Schema
- 조인이 적어 쿼리 성능이 일반적으로 더 우수합니다.
- 디스크 공간 사용량은 더 많을 수 있습니다(중복 데이터 때문).
Snowflake Schema
- 정규화로 인해 조인(join) 작업이 많아 쿼리 성능이 저하될 수 있습니다.
- 디스크 공간 사용은 더 적습니다(중복 데이터가 제거됨).
5. 사용 사례 (Use Cases)
Star Schema
- 단순한 데이터 분석과 빠른 응답 시간이 필요한 경우.
- BI 도구나 OLAP(Online Analytical Processing)에서 자주 사용됨.
Snowflake Schema
- 데이터 중복을 최소화하고 정규화를 통해 데이터 무결성을 유지하려는 경우.
- 복잡한 데이터 관계를 명확히 표현해야 하는 경우.
비교 요약
특성 | Star Schema | Snowflake Schema |
---|---|---|
구조 | 비정규화된 단순 구조 | 정규화된 복잡한 구조 |
데이터 중복 | 있음 | 없음 |
성능 | 쿼리 성능이 우수 | 조인으로 인해 성능 저하 가능 |
설계 복잡도 | 낮음 | 높음 |
디스크 공간 사용 | 더 많이 필요할 수 있음 | 더 적게 필요함 |
Enjoy Reading This Article?
Here are some more articles you might like to read next: