안녕하세요~ 준 Manager입니다.
이번 시간에는 Data Engineering에서 자주 쓰이는 Schema에 대해 설명을 하려고 합니다.
Schema란 데이터를 어떻게 엮고 어떻게 처리되고 어떻게 관계를 맺을지에 대한 설계도라고 보시면 좋을 것 같습니다.
Schema에도 여러가지의 종류가 있는데 그 중에서 제일 기초적인 Star Schema에 대해 설명드리도록 하겠습니다.
★ Star Schema
Schema 중에 제일 기본적이면서 데이터를 쉽게 분석할 수 있도록 효율적으로 설계된 Schema입니다. Star Schema는 중앙의 팩트 테이블(Fact Table)과 여러개의 디멘션 테이블(Dimension Table)로 구성이 되어있습니다.
1. 팩트 테이블(Fact Table)
팩트 테이블은 기본적으로 주요 측정값을 가지고 있으며 보통 외래 키(Foreign Key)를 사용하여 여러 디멘션 테이블과 연결이 됩니다.
2. 디멘션 테이블(Dimension Table)
디멘션 테이블은 각 외래 키에 대한 더 자세한 정보를 가지고 있다고 보시면 될것 같습니다.
★ Star Schema 예시
만약 건설 현장에 쓰인 품목들의 분석을 위한 스타 스키마를 설계 하려고 하면 아래와 같이 구성할 수 있습니다.
아래 테이블 예제를 보시면 팩트 테이블은 품명, 규격, 단위에 대한 정보를 가지고 있고 디멘션테이블은 외래키(품명, 단위)의 세부정보(자재단가, 노무단가, 소수자리수 등)를 가지고 있는 것을 보실 수 있습니다.
**외래 키(Foreign Key)에 대한 자세한 내용은 "ISTJ의 궁서체 DATA" 님의 "Key used for modeling in Database"를 참고하시면 좋을것 같습니다.
여러 테이블에 대한 설명을 드리자면,
*팩트 테이블(Fact Table): 각 품명, 규격, 단위에 따른 수량에 대한 정보를 가지고 있습니다.
품명 | 규격 | 단위 | Quantity |
A | AA | EA | 97.83357 |
B | BB | KG | 30.67878 |
C | CC | TON | 7.957302 |
D | DD | M | 81.64581 |
E | EE | KM | 8.533628 |
F | FF | CM | 80.64801 |
A | AA | EA | 46.93772 |
B | BB | KG | 21.68832 |
C | CC | TON | 99.46146 |
D | DD | M | 65.2672 |
*디멘션 테이블(품명-단가 Dimension): 각 품명에 따른 자재단가와 노무단가를 제공합니다.
품명 | 자재단가 | 노무단가 |
A | 106.7208 | 74609.72 |
B | 214.5808 | 78100.4 |
C | 180.3519 | 92614.36 |
D | 111.7938 | 78707.97 |
E | 817.4742 | 96433.72 |
F | 342.4826 | 77240.17 |
*디멘션 테이블(품명-할증 Dimension): 각 품명에 따른 할증정보를 제공합니다.
품명 | 할증정보 |
A | 0.1 |
B | 0.2 |
C | 0.5 |
D | 0.1 |
E | 0.14 |
F | 0.16 |
*디멘션 테이블(단위-소수자리수 Dimension): 각 단위에 따른 소수자리수를 제공합니다.
단위 | 소수자리수 |
EA | 0 |
KG | 1 |
TON | 1 |
M | 2 |
KM | 2 |
CM | 2 |
여기서 이제 팩트 테이블과 디멘션 테이블의 관계를 살펴보면
팩트 테이블의 품명과 디멘션 테이블(품명-단가) 테이블의 품명과 연결 (Foreign Key: 품명),
팩트 테이블의 품명과 디멘션 테이블(품명-할증) 테이블의 품명이 연결 (Foreign Key 품명),
팩트 테이블의 단위와 디멘션 테이블(단위-소수자리수) 테이블의 단위와 연결 (Foreign Key 단위)을 해야합니다.
*이 예제에서는 품명과 단위가 Foreign Key로 사용되었음을 알 수 있고 테이블들이 Power BI 모델링을 통해 연결을 하였습니다.
이런 식으로 Fact Table을 가운데에 두고 Dimension Table들을 Foreign Key를 활용하여 Fact Table에 연결하는 기법을 Star Schema라고 합니다.
그럼 이렇게 유명하고 자주 쓰이는 Star Schema의 장단점에는 무엇이 있을까요?
★ Star Schema 장단점
Star Schema의 장점을 살펴보자면
1. 설계가 간단하고 직관적이어서 모델링을 쉽게 이해할 수 있고 초보자들도 쉽게 데이터 엔지니어링을 할 수가 있습니다.
2. 팩트테이블과 디멘션테이블이 1:N 관계로 설정되어 있어서 쿼리를 쓸 때 복잡한 연산이나 로직이 필요가 없어서 다른 Shcema에 비해 가볍고 운영하기가 쉽습니다.
3. 비지니스 데이터 분석에 최적화 된 Schema입니다.
이렇게 장점이 많은 Star Schema도 단점이 존재합니다.
단점을 몇가지 살펴보자면
1. 중복 데이터가 존재할 수 있습니다. Fact Table에 있는 데이터들의 각 행이 여러 테이블들의 행을 참조함으로 데이터가 많아질수록 저장 공간 낭비와 데이터 일관성 문제가 일어날 수 있습니다.
2. 디멘션 테이블이 점점 커지거나 많아질수록 성능 저하가 일어 날 수 있습니다.
만약에 Star Schema 기법을 사용하시려면 장단점을 파악 후에 쓰면 더 효율적 일 것 같습니다.
오늘은 Schema 기법이란 무엇인가와 가장 기초적인 Schema 중 하나인 Star Schema에 대해 알아 보았습니다.
다음 시간에는 Machine Learning에 대해서 기초부터 설명하는 시간을 가져보도록 하겠습니다.
오늘도 좋은 하루 되세요~ :)
'Data & AI > Data 분석 입문' 카테고리의 다른 글
What is Data Architecture? (2) | 2025.01.24 |
---|---|
Data의 Key, 조금 더 쉽게 말해줄게! (0) | 2025.01.06 |
데이터의 정의 (0) | 2024.12.29 |