본문 바로가기

Data Engineering/Data Platform

빅데이터를 지탱하는 기술 - Chapter2 빅데이터의 탐색

2-1 크로스 집계의 기본

  • 크로스 테이블 : 행과 열이 교차하는 부분에 숫자 데이터가 들어간다
  • 트렌젝션 테이블 : 행방향으로 데이터가 추가되는 기본적인 데이터베이스 구조
  • 룩업 테이블 : 새롭게 속성을 추가하는 것이 아닌 key를 이용하여 속성 값을 연결

크로스 집계 방법

  1. 피벗 테이블 : 가장 쉬움
  2. BI도구 : 자주 반복해야 할 경우 사용
  3. SQL : 데이터가 큰 경우, SQL로 먼저 집계 후, 시각화 도구를 결합

데이터를 수백만건 이하로 줄일 수 있다면,

시각화도구에 한번에 업로드 가능하기에 특별한 시스템이 필요없다.

그게 아니라면 지연이 적은 데이터마트를 사용해야한다.

 

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

메모리가 부족할 대량의 데이터를 집계할 때는,미리 집계에 유리한 형태로 데이터베이스를 만들어 놓는다.

MPP 기술 - '압축' 과 '분산'으로 지연 줄이기

데이터를 가능한 압축 후 여러 디스크에 분산 -> 데이터 로드의 지연 시간 줄인다.

분산된 데이터를 읽어드릴 때, 멀티코어를 활용해 디스크I/O를 병럴 처리한다.

이것을 MPP(massive parallel processing)아키텍처라고 한다 - 대량의 데이터 분석용 DB

ex) redshift, big query

MPP는 데이터 집계에 최적화 되어 있고, 데이터웨어하우스 or 분석용 데이터베이스에서 주로 사용.

처리량이 많다고, 지연시간이 빠른 것은 아니다.

배치형 집계는 처리량은 많지만 지연시간이 길고,

대화형의 집계는 처리량은 적지만 지연시간이 짧다.

행 지향 DB

행이 하나의 덩어리, 데이터 추가가 효율적이다.

검색 고도화를 이용해 index가 사용되게끔 튜닝.

하나의 쿼리 분산처리 불가능.

열 지향 DB

데이터 분석 시 어떤 컬럼 사용될지 모르므로 인덱스가 의미 없다.

필요한 칼럼만 로드할 수 있게 정리되있다.

데이터 추가가 어렵지만, 집계는 빠르다.

MPP 아키텍쳐

MPP Database : MPP는 구조상 CPU, 디스크가 균형 있어야 한다, 그렇기에 통합된 제품으로 데이터 집계에 최적화된 DB다.

대화형 쿼리 엔진 : 하둡과 분산스토리지의 사용도 MPP 아키텍쳐 중 하나이다.

하지만 열 지향 압축을 하지 않는 한 MPP DB보다는 느리다.

 

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

애드혹 분석

시행 착오를 하기 위한, 대화형 실행 환경, 주피터 노트북

대시보드 도구

정기적인 쿼리를 통한 보고서 작성 등, 실시간 업데이트와 지표 변화 모니터링

ex) Redash(마지막으로 집계된 쿼리 기준으로 그래프가 만들어진다, DM필요없다.)

Superset Kibana

BI 도구

대시보드가 새로운 그래프를 쉽게 추가한다면, BI도구는 대화형 탐색이 중요하다.

데이터의 가공도 가능

데이터를 늘리려면 데이터웨어하우스에 이미 존재하는 테이블도 사용하기 힘들어, 데이터 마트에 테이블을 만들고 사용해야한다.

 

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

시각화에 적합한 데이터 마트는 OLAP구조다.

BI도구는 OLAP개념을 몰라도 사용 가능하지만, 데이터 마트 구축시는 필요하다.

OLAP

  • 데이터 집계를 효율화하는 접근법.
  • OLAP는 다차원 구조를 MDX등의 쿼리 언어로 집계.
  • 데이터 분석을 위한 다차원 데이터(OLAP큐브)를 크로스 집계하는 구조를 OLAP라고 부른다.
  • 과거 조합 결과를 미리 캐싱해두었다면, MPP DB, 인메모리DB 등의 보급으로 사전에 준비하지 않는다.
  • 현재는 BI도구와 MPP DB를 조합해 크로스 집계하는 경우가 많다.
  • BI도구로 만들고 싶은 그래프에 맞추어 다차원 모델을 설계,
  • MPP DB에는 다차원 모델의 개념이 없기에 비정규화 테이블을 준비한다.
  • 이런 비정규화테이블을 BI도구에서 열어서 기존의 OLAP와 동등하게 사용한다.
  • 즉 시각화에 알맞는 데이터마트를 만드는 것은 BI도구를 위한 비정규화 테이블을 만드는 과정이다.

비정규화 테이블

  • 열 지향 스토리지로 칼럼이 늘어도 영향을 안끼친다. 그러므로 테이블 결합을 안하게 모든 칼럼을 하나의 테이블에 다 모은다.
  • 이 방법이 가장 단순하고 효율적이다. 열 지향이 아닌 경우라도 데이터가 작다면 사용하거나 열지향으로 바꿔준다.
  • 즉 데이터마트는 비정규화 테이블로 만드는 것으로 가정.
  • DW에서는 스타 스키마가 우수하다.