피드로 돌아가기
Dev.toBackend
원문 읽기
Power BI에서 조인과 관계의 차이를 구분하고 Star/Snowflake 스키마로 데이터 모델링하는 방식
Understanding Data Modelling in Power BI: Joins, Relationships and Schemas Explained.
AI 요약
Context
적절한 데이터 모델이 없으면 비즈니스가 데이터의 정확한 현황을 파악할 수 없다. 여러 테이블의 데이터를 결합할 때 조인과 관계의 구분 없이 사용하면 데이터 통합 방식이 불명확해진다. 차원 테이블과 팩트 테이블의 역할을 명확히 하지 않으면 스타 스키마나 스노우플레이크 스키마로 구조화된 데이터 웨어하우스를 구축할 수 없다.
Technical Solution
- 여러 테이블 결합 방식을 Inner Join, Left Join, Right Join, Full Outer Join, Left Anti, Right Anti로 구분: Query Editor의 merge queries 옵션으로 구현
- 테이블 간 관계를 설정할 때 카디널리티 3가지로 분류: Many to one(*:1), One to One(1:1), Many to Many로 정의
- Cross Filter Direction을 설정하여 Active/Inactive 관계 구분: 기본값은 Active, 필요시 DAX의 USERELATIONSHIP() 함수로 활성화
- 조인과 관계의 용도 분리: 조인은 단일 테이블로 병합, 관계는 테이블을 분리한 상태로 연결
- 차원 테이블(Dimension Table)에 속성 데이터 저장, 팩트 테이블(Fact Table)에 외래키와 수치 데이터 저장하여 Star Schema 구성
- Snowflake Schema로 확장: Star Schema와 달리 각 차원을 단일 테이블이 아닌 여러 조회 테이블로 분해
Key Takeaway
Business Intelligence 구현 시 조인으로 테이블을 병합하는 방식과 관계로 테이블을 연결하는 방식을 목적에 맞게 선택하는 것이 중요하다. 차원-팩트 테이블 구조와 Star/Snowflake 스키마 패턴은 데이터 웨어하우스에서 복잡한 쿼리를 빠르게 실행하는 기반이 된다.
실천 포인트
Power BI로 데이터 모델을 구축할 때, 두 테이블을 하나의 결과 집합으로 병합해야 하면 조인을, 두 테이블의 독립성을 유지하면서 연결해야 하면 관계(Relationship)를 사용해야 한다. 팩트 테이블이 중심이 되는 Star Schema 구조에서는 ETL 처리 시 차원 테이블을 먼저 로드하고 팩트 테이블을 나중에 로드해야 한다.