피드로 돌아가기
Dev.toBackend
원문 읽기
Power BI에서 Fact/Dimension 테이블 분리와 Star Schema 설계로 조인 오류와 성능 저하 문제 해결
TAMING DATA CHAOS IN POWER BI: A Guide to Joins, Relationships, and Schemas
AI 요약
Context
부적절한 데이터 모델링은 정확하지 않은 합계, 중복 계산, 느린 성능을 초래한다. 조인 방식을 명확히 이해하지 못하거나 테이블 간 관계를 부정확하게 설정하면 시각화 필터링이 예상과 다르게 동작한다.
Technical Solution
- SQL 조인 6가지 유형을 Power Query의 Merge Queries로 구현: INNER JOIN(매칭되는 행만), LEFT JOIN(좌측 테이블 전체 유지), RIGHT JOIN(우측 테이블 전체 유지), FULL OUTER JOIN(양쪽 전체), LEFT ANTI JOIN(좌측만 매칭 없는 행), RIGHT ANTI JOIN(우측만 매칭 없는 행)
- Fact 테이블(거래, 지표)과 Dimension 테이블(설명 속성)을 명확히 분리하여 모델 구조 단순화
- Star Schema 도입: 중앙의 단일 Fact 테이블을 Dimension 테이블들과 연결하는 구조로 설계
- Power BI Model View에서 관계 설정 시 카디널리티(일대다, 다대다, 일대일) 명시하고 능동/비능동 관계 구분
- Role-Playing Dimension 기법으로 동일 Dimension을 여러 용도(주문일, 배송일, 배달일)로 중복 생성하여 필터링 모호성 제거
- DAX에서 USERELATIONSHIP() 함수로 비능동 관계 활성화하여 특정 시나리오별 정확한 계산 수행
Key Takeaway
Data Modeling은 조인 전략(데이터 준비 단계)과 관계 설정(모델링 단계)을 모두 고려해야 한다. 명확한 Fact/Dimension 구분과 Star Schema 설계는 필터링 동작의 신뢰성과 대시보드 성능을 동시에 보장하는 핵심 원칙이다.
실천 포인트
Power BI를 사용하는 분석 팀에서 고객 트랜잭션 데이터를 모델링할 때, 고객 테이블과 주문 테이블 간 일대다 관계를 명시하고 Star Schema로 조직하면 지역별 총매출 같은 기본 쿼리는 물론 '최근 구매 없는 고객 식별' 같은 LEFT ANTI JOIN 시나리오도 정확하게 구현할 수 있다.