본문 바로가기
Microsoft Fabric

Microsoft Fabric에서 Fact Table과 Dimension Table 이해

by edupicker(체르니) 2025. 5. 4.

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 환경에서 팩트 테이블과 차원 테이블을 효과적으로 설계하고 모델링하는 것은 데이터 분석의 효율성과 정확성을 높이는 데 매우 중요합니다.