본문 바로가기
Book & Lesson

[책정리]빅데이터를 지탱하는 기술 2.4 데이터마트의 기본구조

by 카프리썬_ 2021. 6. 19.
728x90

6월 선정도서 - 빅데이터를 지탱하는 기술

선정계기 - 데이터가 쌓이고 흐르는 전체적인 구조를 깊이 있게 이해할 수 있고,

미래의 데이터엔지니어로써 해야하는 업무들의 전반적인 흐름을 파악할 수 있을 것 같아 선정(기대가 된다

 

목차 

챕터2. 빅데이터의 탐색

2-1. 크로스집게계의 기본 

2-2. 열지향 스토리지에 의한 고속화

2-3. 애드혹 분석과 시각화 도구(주피터/Redash/Superset/Kibana)

2-4. 데이터마트의 기본구조 

 

 BI도구에서 대화형으로 데이터를 참고하려고 하면, 시각화에 필요한 정보만 모든 데이터마트가 필수적이다. 

그렇다면 데이터마트를 어떻게 설계하나?


시각화에 적합한 데이터마트 OLAP

OLAP개념 추가로 살펴보기

2020.01.17 - OLAP/OLTP/DW/ETL 용어정리

+ 추가로 OLAP VS OLTP알아보기 

 

본래 BI도구는 OLAP의 구조를 사용하여 데이터를 집계하기 위한 SW.

따라서 데이터마트도 데이터분석을 위해 'OLAP큐브'라는 '다차원데이터'를 미리 작성해둬야 했다.  

그러나 최근에는 'MPP데이터베이스'와 인메모리 데이터베이스 등 으로 사전에 계산해둔 특별한 구조가 필요없어짐. 

 

다차원모델과 OLAP큐브

OLAP은 데이터집계를 효율화하는 접근방법 중 하나. 

일반적으로 RDB에서는 테이블형식으로 모델링된 데이터를 SQL로 집계한다면 

OLAP에서는 다차원으로 모델링된 데이터를 MDX 등의 쿼리언어로 집계한다. 

이때 데이터분석을 위해 만들어진 다차원데이터를 OLAP 큐브라고 부르며, 그것을 크로스집계하는 구조가 OLAP이다. 

 

MPP데이터베이스와 비정규화테이블 

이제 MPP데이터베이스와 인메모리데이터베이스 등으로

OLAP 큐브를 위해 특별한 준비를 하는것이 아니라 BI도구와 MPP데이터베이스를 조합하여 크로스집계한다. 

 

BI도구로 이미 존재하는 테이블을 그대로 시각화하는게 아니라

만들고 싶은 그래프에 맞추어 다차원모델일 설계한다. 

MPP데이터베이스에는 다차원모델의 개념이 없지만 대신 비정규화 테이블을 준비한다. 

이렇게 만들어진 비정규화테이블을 BI도구에서 열면 OLAP에서 동등한 시각화를 할 수 있다. 

 

즉 시각화에 적합한 데이터마트를 만드는 것은 BI도구를 위한 '비정규화 테이블'을 만드는 것이다. 

 

테이블 비정규화하기

일반적인 데이터베이스의 설계

  • 트랜잭션 : 시간과 함께 생성되는 데이터를 기록하는 하나의 단위, 한번기록하면 변화한다. 
  • 마스터 : 트랜잭션에 참고되는 각종 정보들.
  • 관계형모델 : 테이블간의 관계를 고려한다. 아래의 경우 판매이력이 트랜잭션이 되고, 나머지는 마스터가 된다.
  • 정규화 : 데이터 중복을 최소화하기 위해 테이블을 분해하는 방식. 

 

데이터웨어하우스세계에서 데이터베이스 설계

  • 팩트테이블  : 트랜잭션처럼 사실이 기록된 것. 
  • 디멘전테이블 : 마스터처럼 팩트테이블에서 참고되는 데이터들.

예를 들어, 집계의 기반이 되는 숫자데이터(판매액)은 팩트테이블에 기록되고

그외에 디멘전테이블은 데이터를 분류하기 위한 속성값으로 사용된다. 

  • 스타스키마 : 팩트테이블을 중심으로 여러 디멘전테이블을 결합시킴.(별모양),
    다차원 데이터를 효과적으로 저장/조회하는 관계형 DB의 설계기법
  • 비정규화 : 정규화에 의해 분해된 테이블을 최대한 결합하여 하나의 테이블로 정리한다.  

스타스키마 생성 : 데이터마트 생성시 팩트테이블 중심으로 여러 디멘젼테이블 결합 

비정규화 : 디멘전테이블 작성시 정규화로 분해된 테이블을 결합 

데이터마트에서 왜 스타스키마가 필요한가?
  • 단순하기 때문에 이해하기 쉽고, 데이터분석을 쉽게 할 수 있다.
    쿼리의 작성법이 정해져 있어 bi도구가 스타스키마 테이블을 보고 SQL을 자동생성하기 쉽다.
  • 성능상의 이유. 팩트테이블을 최대한 작게 하는 것이 고속화에 중요하다.
    데이터의 양이 증가하면 디멘전 테이블보다 팩트테이블이 커져 집계하는데 시간이 오래걸린다.
    그러다 팩트테이블의 양이 메모리용량보다 더 커지게 되면, 디스크IO가 발생하고, 쿼리지연시간 발생한다.
    그래서 팩트테이블에는 ID같은 키만 남겨두고 나머지를 디멘젼테이블에 옮기면서 팩트테이블을 최대한 작게 한다. 

 

비정규화 테이블

하지만 요즘엔 MPP데이터베이스 같은 열지향 스토리지 시스템이 보급화되면서 스타스키마가 필요없게 되었다.

 

열지향스토리지는 칼럼단위로 데이터가 저장되므로 칼럼수가 아무리 늘어도 성능에 영향을 주지 않는다. 

그래서 처음부터 테이블이 결합되어 있도록 팩트테이블에 모든 칼럼을 포함해두면, 테이블의 결합이 따로 필요없음.

 

열지향스토리지는 칼럼단위로 데이터를 압축하기 떄문에 디스크IO 증가가 억제된다.

그래서 팩트테이블의 내용을 디멘전테이블로 옮길 필요가 없어졌다.

굳이 성능상의 이유를 위해 스타스키마를 만들 필요가 없고 "그냥 하나의 거대 팩트테이블만"있으면 된다. 

 

이처럼 스타스키마에서 좀더 비정규화를 진행해
모든 테이블을 결합한 팩트테이블을 비정규화 테이블이라고 한다.

다차원모델 시각화에 대비한 테이블추상화

비정규화 테이블을 준비했다면, 다차원모델에 의해 추상화한다. 

 

BI도구를 이용한 시각화 절차(모델의 정의확장)

1. 시각화 하고자하는 측정값, 디멘션 결정

  • 측정값 : 주로 숫자데이터와 SUM(),MAX()와 함꼐 사용해 집계방법을 정의하는 것
  • 디멘젼 : 주로 날짜 및 문자열의 값으로 크로스집계에 있어서 행과 열을 이용하는 것

(예를 들어, 월별상품매출을 알고싶다면 측정값-금액, 디멘젼-판매일,상품명)

2. 데이터마트에 비정규화테이블 생성 후 BI도구로 시각화 

3. 상품을 분류해서 집계하고 싶다면
비정규화테이블에 새로운 칼럼추가 = 새로운디멘전추가 -> 새 그래프 생성

 

다차원모델의 정의는 나중에 확장이 가능하다

데이터분석의 요구에 따라 비정규화테이블에는 다수의 칼럼이 추가되고, 다수의 그래프가 생성된다. 

이렇게 만들어진 비정규화테이블을 모은것이 BI도구를 위한 데이터마트. 

반응형