CHAPTER 2 빅데이터의 탐색
2-1. 크로스 집계의 기본
2-2. 열 지향 스토리지에 의한 고속화
2-3. 애드 혹 분석과 시각화 도구
2-4. 데이터 마트의 기본 구조
2-5. 요약
2장에서는 데이터를 시각화하는 환경을 정비함으로써 대량의 데이터를 효율적으로 탐색할 수 있도록 준비한다.
데이터 마트의 설계에 있어 기본이 되는 개념들을 정리한다.
시각화에 적합한 데이터 마트 만들기 : OLAP
다차원 모델과 OLAP 큐브
OLAP(online analytical processing)이란 데이터 집계를 효율화하는 접근 방법 중 하나이다. 일반적으로 업무 시스템에서 RDB는 SQL로 데이터를 집계하지만, OLAP에서는 '다차원 모델'의 데이터 구조를 'MDX(multidimensional expressions)' 등의 쿼리 언어로 집계한다.
데이터 분석을 위해 만들어진 다차원 데이터를 'OLAP 큐브'라고 부르며, 그것을 크로스 집계하는 구조가 OLAP이다.
BI 도구는 본래 OLAP의 구조를 사용하여 데이터를 집계하기 위한 소프트웨어이며, 데이터 마트 또한 이전에는 OLAP 큐브로 작성되어 있었다.
MPP 데이터베이스와 비정규화 테이블
최근에는 MPP 데이터베이스와 인 메모리 데이터베이스 등의 보급으로 BI 도구와 MPP 데이터베이스를 조합하여 크로스 집계하는 경우가 증가하고 있다. BI 도구로 그래프를 만들기 위해서는 '다차원 모델'을 설계하는데, MPP 데이터베이스에 다차원 모델의 개념이 없기 때문에 이를 대신하여 '비정규화 테이블'을 준비한다.
'시각화에 적합한 데이터 마트를 만드는 것'은 'BI 도구를 위한 비정규화 테이블을 만드는' 프로세스라고 할 수 있다.
테이블을 정규화하기
데이터베이스의 설계에서 테이블을 '마스터'와 '트랜잭션'으로 구분한다. 시간과 함께 생성되는 데이터를 기록한 것이 '트랜잭션(transaction)'이며, 트랜잭션에서 참고되는 각종 정보가 '마스터(master)'이다.
예를 들어 아래의 '판매 이력'만이 트랜잭션이고, 다른 것은 모두 마스터로 취급한다. 일반적인 '관계형 모델'이다.
팩트 테이블과 디멘전 테이블
데이터 웨어하우스에서는 트랜잭션처럼 사실이 기록된 것을 '팩트 테이블(fact table)'이라고 하고, 거기에서 참고되는 마스터 데이터 등을 '디멘전 테이블(dimension table)'이라고 한다. 집계에 기반이 되는 숫자 데이터, 판매액 등은 주로 팩트 테이블에 기록되고 디멘전 테이블은 주로 데이터를 분류하기 위한 속성 값으로 사용된다.
스타 스키마와 비정규화
데이터 마트를 만들 때는 팩트 테이블을 중심으로 여러 디멘전 테이블을 결합하는 것이 좋다. 이를 '스타 스키마'라고 부른다.
디멘전 테이블을 작성하려면 정규화에 의해 분해된 테이블을 최대한 결합하여 하나의 테이블로 정리한다. 그 결과 데이터가 중복되기도 하는데, 정규화와는 반대의 작업을 하므로 이를 '비정규화(denormalization)'라고 한다.
데이터 마트에서 스타 스키마가 사용되는데, 이는 단순하기 때문에 이해하기 쉽고 데이터 분석을 쉽게 할 수 있다. SQL을 통해 쿼리를 작성하여 테이블을 결합한다.
비정규화 테이블
MPP 데이터베이스와 같은 열 지향 스토리지를 갖는 시스템이 보급됨에 따라 요즘은 사정이 바뀌었다. 열 지향 스토리지는 칼럼 단위로 데이터가 저장되므로 칼럼의 수가 아무리 늘어나도 성능에 영향을 주지 않는다. 따라서 처음부터 팩트 테이블에 모든 칼럼을 포함하고, 쿼리 실행 시 테이블 결합을 하지 않는 편이 간단하다.
또 열 지향 스토리지는 컬럼 단위로 데이터 압축이 있어 디스크 I/O의 증가가 억제된다. 따라서 '하나의 거대한 팩트 테이블'만 있으면 충분하다. 대부분의 경우 데이터 마트는 비정규화 테이블로 하는 것이 가장 단순하며 효율적인 방법이다.
다차원 모델 시각화에 대비하여 테이블을 추상화하기
비정규화 테이블을 준비했다면 그것을 '다차원 모델'에 의해 추상화한다.
다차원 모델은 칼럼을 '디멘전(dimension)'과 '측정값(measure)'으로 분류한다. 숫자 데이터와 그 집계 방법을 정의하는 것이 측정값이며, 크로스 집계에 있어서 행과 열을 이용하는 것이 디멘전이다.
다차원 모델의 디멘전이란 '2차원' 등의 단어로 사용되는 차원(dimension)이다. 원래의 데이터가 다수의 디멘전으로 이루어진 다차원 공간임을 고려할 때, 그것을 행과 열로 구성된 2차원 테이블로 표현한 것이 크로스 집계이다. 피벗 테이블과 비슷하다.
모델의 정의 확장
BI 도구를 이용한 데이터의 시각화는 일반적으로 다음과 같은 절차를 밟는다.
먼저, 시각화하고 싶은 측정값 및 디멘전을 결정한다. 그 후 데이터 마트에 비정규화 테이블을 만들고 그것을 B 도구로 시각화한다. 특정 그룹으로 분류해서 집계하고 싶어 졌다고 하면, 비정규화 테이블에 새로운 칼럼을 추가하고 거기에 제품 그룹을 써넣는다. 이제 새로운 디멘전이 추가되므로 이를 사용하여 새 그래프를 만든다.
이렇게 다차원 모델은 나중에 확장이 가능하며, 데이터 분석의 요구에 따라 비정규화 테이블에는 다수의 칼럼이 추가되고 거기서 다수의 그래프가 생성된다.
워크플로 관리 도구 등을 이용하여 데이터 마트를 정기적으로 자동 업데이트함으로써 일상적인 데이터의 움직임을 확인할 수 있다.
'AI & 빅데이터 > [Book] 빅데이터를 지탱하는 기술' 카테고리의 다른 글
[책정리] 빅데이터를 지탱하는 기술 : 3-2. 쿼리 엔진 (0) | 2022.06.08 |
---|---|
[책정리] 빅데이터를 지탱하는 기술 : 3-1. 대규모 분산 처리의 프레임워크 (0) | 2022.06.08 |
[책정리] 빅데이터를 지탱하는 기술 : 2-3. 애드 혹 분석과 시각화 도구 (0) | 2022.05.24 |
[책정리] 빅데이터를 지탱하는 기술 : 2-2. 열 지향 스토리지에 의한 고속화 (0) | 2022.05.23 |
[책정리] 빅데이터를 지탱하는 기술 : 2-1. 크로스 집계의 기본 (0) | 2022.05.23 |