개발/Data

[빅데이터를 지탱하는 기술] 빅데이터 입문기 #3

lanace 2020. 12. 30. 04:41

 

 

  • 크로스집계란?
  • 열 지향 스토리지!
  • 시각화 도구들의 특징
  • 데이터 마트의 설계

 

2-1 크로스 집계의 기본

테이블의 행과 열에 어떤 항목을 넣는지에 따라 크로스 테이블과 트랜잭션 테이블로 나뉜다.

크로스 테이블

행과 열이 교차하는 부분에 숫자 데이터가 들어감

데이터베이스에선 다루기 어려운 데이터

트랜잭션 테이블

행 방향으로만 증가

열 방향으로는 데이터가 증가되지 않음

크로스 집계란

트랜잭션 테이블에서 크로스 테이블로 변환하는 과정을 말한다.

엑셀로도 피벗 테이블을 통해 이용이 가능하다.

 

 

록업 테이블 - 테이블을 결합하여 속성을 늘리기

트랜잭션 테이블에 새로운 항목을 추가하지 않고, 다른 테이블과 결합하고 싶은 경우 사용함

여러가지 방법을 통해 집계할 수 있다.

  • BI 도구를 사용한 크로스 집계
  • Pandas를 통한 크로스 집계
  • SQL에 의한 테이블의 집계

 

 

SQL에 의한 테이블의 집계 - 대량 데이터의 크로스 집계 사전준비

데이터를 먼저 SQL로 집계하고, 시각화 도구로 크로스 집계 하는 두단계의 절차를 이용한다.

 

 

데이터 집계 ⇒ 데이터 마트 ⇒ 시각화

시스템 구성은 데이터 마트의 크기에 따라 결정된다.

데이터 마트의 크기는 트레이드 오프 관계이다.

필요에 따라 어느정도의 정보를 남길것인가를 결정해야 함

 

 

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

데이터양이 증가함에 따라 빠르게 화면까지 보여주기 위해선 데이터 처리의 지연을 최소화 해야함

  • 모든 데이터를 메모리에 올리는것
    • 매우 빠름
    • 크기에 제한적
  • RDB를 사용
    • 에초에 지연이 적음
    • 클라이언트 동시 접근 가능
    • 단, 메모리가 초과되면 성능이 급격히 나빠짐

MPP 기술 (Massive Parallel Processing, 압축과 분산을 통해 지연 줄이기)

  • 데이터를 가능한 작게 압축
  • 여러 디스크에 분산
  • 멀티 코어를 활용하여 디스크 I/O를 처리

⇒ 데이터의 로드에 따른 지연을 줄임

 

열 지향 데이터베이스 접근 - 칼럼을 압축하여 디스크 I/O 줄이기

열 지향 데이터 베이스 (컬럼 지향 데이터베이스)

데잍 대부분은 디스크 상에 있기 때문에 쿼리에 필요한 최소한의 데이터만을 가져와 지연을 줄인다.

칼럼 단위로 데이터 압축

 

행 지향 데이터베이스

테이블의 각 행을 하나의 덩어리로 디스크에 저장

데이터를 빠르게 추가

대량의 트랜잭션을 지연 없이 처리

일반적으론 행 지향 데이터베이스가 사용

Mysql, Oracle DB 등등...

검색 성능을 위해 인덱스를 생성

 

열 지향 데이터베이스

데이터를 미리 컬럼 단위로 정리 → 필요한 칼럼만 로드하여 디스크 I/O를 줄임

데이터의 압축 효율이 좋음

 

데이터 처리 성능의 기준

일반적으로 두가지 요소에 의해 평가됨

  • 처리량: 일정 시간에 얼마나 많은 양의 데이터를 처리할 수 있는가?
  • 지연시간: 데이터 처리가 끝날 때까지의 대기 시간

이 둘은 일반적으론 반비례 관계이다.

 

MPP 데이터베이스의 접근 방식 - 병렬화에 의해 멀티 코어 활용하기

MPP 아키텍처에 의한 데이터 처리를 병렬화하여 쿼리 지연을 줄일 수 있다.

 

 

애드 혹 분석과 시각화 도구

대시보드 도구 - 정기적으로 집계 결과를 시각화

대시보드 도구

새로운 그래프를 쉽게 추가할 수 있음

BI 도구

대화형 데이터 탐색이 중요

 

Redash

SQL 에 의한 쿼리의 실행 결과를 그대로 시각화

다수의 데이터 소스에 대응하는 파이썬으로 만든 대시보드 도구

  1. 데이터 소스를 등록
  2. 쿼리를 실행하여 표와 그래프를 생성
  3. 그래프를 대시보드에 추가

하나의 쿼리가 하나 또는 여러 그래프에 대응

등록한 쿼리는 정기적으로 실행되어 Redash의 DB에 저장

특징

  • 구조가 쉬움
  • SQL 쿼리를 작성해서 그래프로 만들거나 공유하기 좋음
  • BI 도구라 대량의 데이터 처리는 무리

 

SuperSet

대화형 대시보드

파이썬 기반 웹 애플리케이션

화면상에서 마우스 조작으로 그래프를 생성

내장 스토리지 시스템이 없음 → 외부 저장소를 사용하여 시각화

ex) Druid, RDB, MPP 등 사용 가능

 

Kibana

Javasceipt기반 대화식 시각화 도구

실시간 대시보드 목적으로 사용

검색 엔진인 Elasticearch의 프런트엔드로 개발 (Elasticsearch 필수)

키워드로 검색하는경우 강력함

 

BI 도구 - 대화적인 대시보드

이미 있는 데이터를 가져오고, 데이터 분석이 쉽도록 가공하는 역할을 함

 

 

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

시각화에 적합한 데이터 마트 만들기 -OLAP

OLAP - Online Analytical Processing

다차원 모델과 OLAP 큐브

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