개발자식

[Data Engineering] 빅데이터를 지탱하는 기술_빅데이터의 탐색 본문

Data/Data Engineering

[Data Engineering] 빅데이터를 지탱하는 기술_빅데이터의 탐색

밍츠 2022. 9. 12. 15:57

Chapter 2. 빅데이터의 탐색

 

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

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

2-3. 애드혹 분석과 시각화 도구

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

 


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

크로스 테이블(cross table)

: 크로스 테이블은 컬럼과 행으로 구성된 양방향 테이블이다. 피벗 테이블 또는 다차원 테이블이라고도 한다. 

- 새로운 행을 추가하긴 쉽지만, 열을 늘리는 것이 간단하지 않다.

 

트랜잭션 테이블(transation table)

: 시간과 함께 생성되는 데이터를 기록한 테이블로 한 번 기록하면 변하지 않는다.

- 크로스 테이블을 행 방향으로만 데이터 증가시키고, 열 방향으로는 증가시키지 않도록 한다.

 

크록스 집계(cross tabulation)

: 트랜잭션 테이벌에서 크로스 테이블로 변환하는 과정으로 데이터 시각화의 기초이다.

- 소량의 데이터를 크로스 집계하는데 편리한 것이 '피벗 테이블(pivot table)' 기능이고, 이를 그래프로 시각화하는 것은 '피벗 그래프(pivot graph)' 기능이다.

 

룩업 테이블(lookup table)

: 트랜잭션 테이블에 새로운 항목을 추가하는 것이 아니라, 다른 테이블과 결합하기 위해 사용하는 것

 

그 외의 크로스 집계 방법

- 데이터를 자주 살펴볼 때는 BI 도구를 사용하는 것이 좋다.

- 스크립트로 크로스 집계를 실행하고 싶다면 pandas를 이용하는 것이 편리하다.

- 데이터 양이 너무 많으면 피벗 테이블에 의한 크로스 집계로 처리할 수 없어 대량의 데이터를 크로스 집계하려면 SQL를 사용하여 데이터 집계한다.

 

 

데이터 집계 프로세스에서 많은 정보를 남긴다면 데이터 마트가 거대화되어 좋은 시각화를 할 수 없고, 적은 정보를 남긴다면 정보 부족으로 좋은 시각화를 할 수 없어 이것은 트레이드 오프 관계에 있다.

 

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

대량의 데이터를 신속하게 집계하려면(대기 시간이 적으려면) 미리 데이터를 집계에 적합한 형태로 변환하는 것이 필요하다.

데이터 처리응답이 빠르다 = 대기 시간이 적다 = 지연이 적다 -> 데이터 마트를 만들 때 필요한 데이터베이스 조건

고속화를 위해 사용되는 기법이 '압축'과 '분산'이다. 데이터를 가능한 한 작게 압축하고 그것을 여러 디스크에 분산함으로써 데이터의 로드에 따른 지연을 줄인다. 

 

MPP(Massive Parallel Processing)

: 대규모 병령 처리로, 분산된 데이터를 읽을 때 멀티 코어를 활용하면서 디스크 I/O를 병렬 처리하는 것이다.

- MPP 아키텍처를 이용하면  쿼리 지연을 줄일 수 있다.

- 하드웨어 수준에서 데이터 집계에 최적화된 데이터베이스를 'MPP 데이터베이스'라고 한다.

 

열 지향 데이터베이스(column-oriented database, 칼럼 지향 데이터베이스)

- 데이터 분석에 사용되는 데이터베이스는 컬럼 단위의 집계에 최적화되어 있다.

- 데이터 압축 효율도 우수하다.

- 쿼리의 실행시간이 길어진다. (멀티코어를 활용하여 고속화 권장)

- 일반적으로 업무 시스템 등에서 사용되는 데이터베이스는 레코드 단위의 읽고 쓰기에 최적화되어 '행 지향 데이터베이스'이다.

- MPP 데이터베이스 및 대화형 쿼리 엔진 어느 쪽을 사용하더라도 '열 지향 스토리지로 변환한다'.

 

2-3. 애드혹 분석과 시각화 도구

애드 혹 분석

- 어떤 데이터 분석이라도 처음에는 애드 혹 분석을 하여 여러 번의 시행착오를 반복하면서 데이터를 살펴본다.

- BI 도구를 사용하지 않고, Jupyter Notebook 안에서 실행 가능하다.

 

대시보드 도구

- 정기적으로 쿼리를 실행해 보고서를 작성하거나 주요 그래프를 모아서 대시보드를 작성할 때 BI 도구를 사용할 수 있다. 

 

대시보드 도구 종류

  • Redash : SQL에 의해 쿼리의 실행 결과를 그대로 시각화
  • Supreset : 화면상에서 마우스 조작만으로 그래프 만들기, 대화형 대시보드
  • Kibana : Elasticsearch의 프런트 엔드에서 실시간으로 작성

+Elasticsearch는 전체 텍스트 검색에 대응한 데이터 스토어다.

 

BI 도구

- 몇 개월 단위의 장기적인 데이터의 추이를 시각화하거나, 집계의 조건을 세부적으로 바꿀 수 있는 대시보드를 만들려면 BI 도구를 사용하는 것이 적합하다.

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

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

 

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

OLAP(OnLine Analytical Processing) 구조

- 데이터 집계를 효율화하는 접근 방법 중의 하나다.

- BI 도구는 OLAP의 구조를 사용하여 데이터를 집계하기 위한 소프트웨어이다.

- OLAP에서는 다차원 모델의 데이터 구조를 MDX(MultiDimensional Expressions) 등의 쿼리 언어로 집계한다.

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

 

트랜잭션(transaction)

- 시간과 함께 생성되는 데이터를 기록한 것

 

마스터(master)

- 트랜잭션에서 참고되는 각종 정보

 

팩트 테이블(fact table)

- 데이터 웨어하우스의 세계에서는 트랜잭션처럼 사실이 기록된 것을 말한다.

 

디멘젼 테이블(dimension table)

- 팩트 테이블에서 참고되는 마스터 데이터를 말한다.

 

스타 스키마

- 팩트 테이블을 중심으로 여러 디멘젼 테이블을 결합한 구조

- 정규화되어 있는 디멘젼 테이블을 최대한 결합하여 비정규화를 진행한다.

- 단순하여 이해하기 쉽고, 데이터 분석이 쉽다.

- 데이터 마트에서는 열 지향 스토리지로 성능 문제를 해결할 수 있어 스타 스키마에서 비정규화를 진행한 '비정규화 테이블'로 사용한다.

 

다차원 모델

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

- 다차원 모델은 칼럼은 '디멘전'과 '측정값'으로 분류한다. 

  • 디멘전 : 크로스 집계에 있어서의 행과 열을 이용하는 것
  • 측정값 : 숫자 데이터와 그 집계 방법을 정의하는 것

 

Comments