DW&BI

[DW&BI] 제 2장 : 다차원 모델링 기법(Dimension&Fact)

Jerry Jun 2022. 7. 2. 11:27
728x90

 다차원 모델링을 시작하기 전, 설계를 맡은 개발자는 비즈니스 요구사항과 원천 데이터를 이해해야 한다.

현업 담당자와 회의를 통해 핵심성과지표(KPI), 비즈니스 이슈, 의사결정 프로세스, 분석 요건을 들을 수 있고 이에 대한 비즈니스 목표를 이해할 수 있다. 

 

 다차원 모델링을 시작할 때, 다차원 모델은 현업 담당자가 참여하여 설계하여야 한다. 모델링은 1차적으로 데이터 모델러의 책임이지만, 현업 담당자들과 긴밀한 협업을 통해 진행되어야 한다. 다차원 모델링에서 네 가지 핵심 의사결정은 다음과 같다. 

 

# 4단계 다차원 설계 프로세스

  1. 비즈니스 프로세스를 선택한다.
  2. 그레인을 확정한다.
  3. 디멘션을 식별한다.
  4. 팩트를 식별한다.

팩트까지 확정이 된다면, 그 후에는 테이블의 컬럼명, 등의 규칙을 결정하게 된다.

이번 게시물에서 프로세스에 대해 자세히 알아보자.

 

 

1. 비즈니스 프로세스

 비즈니스 프로세스란 주문을 받거나, 학생 정보를 등록하는 등 조직에 의해 수행되는 가장 작은 단위의 활동을 말한다. 이 단계에서 발생하는 이벤트는 팩트 테이블에 실적 수치를 생성하고 기록한다. 팩트 테이블은 하나의 비즈니스 프로세스 결과에 초점을 두게 된다. 각 비즈니스 프로세스는 전사 데이터 웨어하우스 버스 매트릭스에서 하나의 행에 해당된다.

 

2. 그레인

 본 단계는 다차원 설계에서 가장 중요한 단계이다. "그레인"은 팩트 테이블의 row 하나가 정확히 무엇을 나타내는지 정의한다. 모든 후보 디멘션과 팩트 테이블이 그레인에 일관성을 가져야 하기 때문에 설계 전 그레인이 확정되어야 한다. 

 

3. 디멘션

 디멘션은 "누가, 언제, 어디서, 무엇을, 어떻게, 왜"의 이벤트를 설명한다. 또한 BI에서 GroupBy 의 기준, 필터링의 조건이 될 수 있다. 디멘션 테이블은 DW 의 영혼이라고 불리기도 하는데, DW/BI 시스템이 비즈니스 분석을 가능하게 하는 설명 레이블과 시작점을 포함하기 때문이다. 

 

4. 팩트

 비즈니스 업무 처리에서 숫자는 빼 놓을 수 없는 부분이다. 팩트 테이블은 물리적으로 관찰 가능한 이벤트와 연관되며, 그 안에는 확정된 그레인과 부합하는 팩트들만이 허용된다. 

 


FACT TABLE

 팩트 테이블의 Null 값은 어떻게 처리해야 할까.

측정값(숫자) 컬럼에 null 값은 아무 문제가 없다. 집계 함수(sum, count, max, etc...)도 영향이 없다. 하지만 참조 키 컬럼에서 null 값은 참조 무결성에 위배된다. 연관 디멘션에서 unknown 등으로 인식되기 때문이다. 

 

 "팩트 없는 팩트 테이블". 이는 숫자 값으로 기록되지 않고 그 시점과 관련된 디멘션 집합만으로 기록되는 테이블이다. 예를 들면, 학생의 출석 처리를 숫자로 기록하지 않고 로우에 일자, 학생, 강사, 장소, 강좌의 참조 키 만으로 잘 정의될 수 있다. 이러한 테이블은 발생하지 않은 부분을 분석하는데 사용할 수 있다. 

 

 "집계 팩트 테이블". 오직 쿼리 성능을 향상시키기 위해서, 최소 단위 팩트 테이블 데이터의 수치 값 만을 롤업한 것이다. BI 애플리케이션에서 이용되며, BI 툴은 쿼리 수행 시 자연스럽게 적절한 집계 레벨을 선택할 수 있다. 집계 팩트 테이블은 축소 디멘션의 참조 키를 포함하며, 최저 팩트 테이블의 측정값 합산을 통해 집계된 팩트들을 가진다. 개인적으로 요약하자면 BI 툴에서 계산할 수도 있지만 미리 팩트 테이블에서 계산하여 BI 툴에서의 부담을 줄여주는 역할을 하는 테이블인 것 같다.

 


 DIMENSION TABLE

 모든 디멘션 테이블은 기본 키(PK) 하나를 가진다. 이 기본 키는 관련 팩트 테이블에 외래 키(FK)로 삽입되어 디멘션 로우를 설명함으로써 팩트 테이블 로우의 의미를 분명하게 해준다. 디멘션 테이블은 주로 속성 컬럼이 많은 반정규화 테이블이다. 운영 코드와 분류 갑이 속성이긴 하지만 텍스트 형태의 풍부한 설명을 포함해야 최상의 디멘션 속성이 된다.

 

 여러분은 모든 디멘션의 기본 키를 의미 없는 정수로 만들어야 한다. 이 디멘션 대체 키는 1부터 시작하고 새로운 키가 필요할 때마다 순차적으로 할당되는 작은 정수이다. 단, 일자 디멘션은 이 대체 키 규칙에서 예외이다. 예측 가능하고 고정된 디멘션은 의미 있는 기본 키를 가질 수 있다. 

 

 다차원 설계자는 정규화에 대한 유혹을 참아야 한다. 대신 다대일 관계의 고정 레벨 계층을 한 개의 로우에 여러 속성으로 반정규화 해야 한다. 디멘션 반정규화는 다차원 모델링에 있어 간단하면서도 쿼리 속도가 빨라야 한다는 두 가지 목표를 달성하도록 해준다. 

300x250