Microsoft Fabric에서 팩트 테이블과 차원 테이블은 데이터 웨어하우스의 핵심 구성 요소이며, 서로 밀접하게 협력하여 분석에 유용한 정보를 제공합니다. 마치 이야기의 '사건'과 '배경'과 같다고 생각하시면 이해하기 쉬울 것 같습니다.
팩트 테이블 (Fact Table): 이야기 속 '사건' 기록
팩트 테이블은 비즈니스 프로세스에서 발생하는 **측정 가능하고 정량적인 데이터 (facts)**를 기록하는 테이블입니다. 핵심적인 비즈니스 이벤트가 발생할 때마다 새로운 행이 추가되며, 주로 다음과 같은 정보들을 포함합니다.
- 측정값 (Measures): 실제로 분석하고 싶어 하는 숫자 데이터입니다. 예를 들어, 판매량, 매출액, 주문 수량, 방문 횟수 등이 있습니다.
- 외래 키 (Foreign Keys): 차원 테이블을 참조하는 키 값입니다. 이 외래 키를 통해 팩트 데이터가 어떤 차원과 관련 있는지 연결됩니다.
- 날짜/시간 키 (Date/Time Key): 이벤트가 발생한 날짜와 시간을 나타내는 키입니다. 시간 차원을 분석하는 데 중요하게 사용됩니다.
예시: 온라인 쇼핑몰의 '주문' 팩트 테이블
주문 ID | 고객 ID (FK) | 상품 ID (FK) | 주문 일시 (FK) | 결제 금액 | 주문 수량 | 배송비 | 프로모션 할인액 |
1001 | CUST001 | PROD101 | 2025-05-01 | 55000 | 1 | 2500 | 0 |
1002 | CUST002 | PROD205 | 2025-05-01 | 120000 | 2 | 0 | 10000 |
1003 | CUST001 | PROD101 | 2025-05-02 | 55000 | 1 | 2500 | 0 |
1004 | CUST003 | PROD310 | 2025-05-02 | 30000 | 1 | 2500 | 5000 |
... | ... | ... | ... | ... | ... | ... | ... |
위 예시에서 각 행은 하나의 주문이라는 '사건'을 나타냅니다. '결제 금액', '주문 수량', '배송비', '프로모션 할인액'은 분석 대상이 되는 측정값입니다. '고객 ID', '상품 ID', '주문 일시'는 각각 고객, 상품, 시간 차원 테이블을 연결하는 외래 키 역할을 합니다.
차원 테이블 (Dimension Table): 이야기 속 '배경' 정보
차원 테이블은 팩트 테이블의 측정값을 설명하는 **맥락 정보 (contextual attributes)**를 제공하는 테이블입니다. 팩트 데이터가 '누구', '무엇', '언제', '어디서', '어떻게' 발생했는지에 대한 질문에 답을 제공하며, 분석의 기준이 됩니다. 일반적으로 다음과 같은 정보들을 포함합니다.
- 속성 (Attributes): 팩트 데이터를 분류하고 필터링하는 데 사용되는 설명적인 정보입니다. 예를 들어, 고객 이름, 상품 카테고리, 주문 날짜, 지역 등이 있습니다.
- 기본 키 (Primary Key): 각 차원 테이블의 고유한 레코드를 식별하는 키입니다.
- 대체 키 (Surrogate Key): 데이터 웨어하우스 내에서 차원 레코드를 고유하게 관리하기 위해 생성되는 인공적인 키입니다.
예시 1: '고객' 차원 테이블
고객 ID (PK) | 고객 이름 | 성별 | 연령대 | 거주 지역 | 가입일 |
CUST001 | 김철수 | 남 | 30대 | 서울 | 2023-11-15 |
CUST002 | 이영희 | 여 | 20대 | 경기 | 2024-03-20 |
CUST003 | 박지성 | 남 | 40대 | 부산 | 2024-07-01 |
... | ... | ... | ... | ... | ... |
예시 2: '상품' 차원 테이블
상품 ID (PK) | 상품명 | 카테고리 | 브랜드 | 판매 가격 | 출시일 |
PROD101 | 노트북 A | 전자제품 | ABC | 550000 | 2024-12-01 |
PROD205 | 티셔츠 B | 의류 | XYZ | 60000 | 2025-01-15 |
PROD310 | 커피 머신 C | 가전제품 | DEF | 300000 | 2025-03-01 |
... | ... | ... | ... | ... | ... |
예시 3: '시간' 차원 테이블
주문 일시 (PK) | 년도 | 분기 | 월 | 일 | 요일 |
2025-05-01 | 2025 | 2 | 5 | 1 | 목 |
2025-05-02 | 2025 | 2 | 5 | 2 | 금 |
... | ... | ... | .. | .. | ... |
팩트 테이블과 차원 테이블의 관계:
팩트 테이블은 하나 이상의 차원 테이블과 외래 키를 통해 연결됩니다. 이를 통해 사용자는 팩트 데이터 (예: 주문 정보)를 다양한 차원의 속성 (예: 고객의 연령대별, 상품 카테고리별, 월별)으로 분석할 수 있습니다.
예를 들어, 위에서 제시된 테이블들을 이용하여 다음과 같은 분석을 수행할 수 있습니다.
- 어떤 연령대의 고객이 어떤 카테고리의 상품을 가장 많이 구매했을까? (팩트 테이블의 '주문 수량'을 '고객' 차원 테이블의 '연령대'와 '상품' 차원 테이블의 '카테고리'로 그룹화하여 분석)
- 특정 월의 총 매출액은 얼마이며, 가장 많이 팔린 상품은 무엇일까? (팩트 테이블의 '결제 금액'을 '시간' 차원 테이블의 '월'로 필터링하고, '상품' 차원 테이블의 '상품명'별 '주문 수량'을 집계하여 분석)
요약:
특징 | 팩트 테이블 (Fact Table) | 차원 테이블 (Dimension Table) |
주요 내용 | 측정 가능한 숫자 데이터 (사건 기록) | 측정값을 설명하는 맥락 정보 (배경 정보) |
포함 정보 | 측정값, 외래 키 (차원 테이블 참조), 날짜/시간 키 | 속성, 기본 키, 대체 키 |
데이터 유형 | 정량적 데이터, 트랜잭션 데이터 | 설명적 데이터, 마스터 데이터 |
데이터 변경 | 자주 발생 (새로운 이벤트 발생 시마다 행 추가) | 상대적으로 드물게 발생 (속성 변경 시) |
테이블 구조 | 넓고 얇은 경향 (많은 컬럼과 적은 수의 주요 키) | 좁고 깊은 경향 (적은 수의 컬럼과 상세한 속성) |
주요 목적 | 분석 및 집계의 대상 | 분석의 기준 및 필터링 조건 제공 |
Microsoft Fabric 환경에서 팩트 테이블과 차원 테이블을 효과적으로 설계하고 모델링하는 것은 데이터 분석의 효율성과 정확성을 높이는 데 매우 중요합니다.
'Microsoft Fabric' 카테고리의 다른 글
MIcrosoft Fabric과 Microsoft Power BI의 기능별 차이점 (2) | 2025.05.03 |
---|