빅데이터를 지탱하는 기술[2]

Byungkyu Ju
byungkyu-ju
Published in
5 min readApr 22, 2020

Chaper 2. 빅데이터의 탐색

https://unsplash.com/photos/d9ILr-dbEdg

크로스 집계의 기본

트랜잭션 테이블, 크로스 테이블, 피벗 테이블

  • 크로스 테이블 : 엑셀 등의 시트에서 사용하는 일반적인 테이블
  • 트랜잭션 테이블 : 행방향으로만 증가하는 테이블
  • 피벗 테이블 : 트랜잭션 테이블에서 크로스 테이블로 변환하는 기능

데이터 집계 프로세스

데이터 집계 -> 데이터 마트 -> 시각화

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

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

데이터베이스의 지연을 줄이기

초 단위로 데이터를 집계하려면 처음부터 집계하려는 의도를 예상한 후 시스템을 마련해야 한다. 최초 데이터 수집 단계에서는 거기까지 생각하지 않기 때문에 아래와 같은 3계층의 시스템을 만든다.

데이터 처리의 지연

RDB는 원래 지연이 적고, 많은 수의 클라이언트가 동시 접속해도 성능이 나빠지지 않으므로, 많은 사용자가 사용하는 실제 운영 환경의 데이터 마트로 특히 우수하다. 하지만, 메모리가 부족하면급격히 성능이 저하된다. 그렇기 때문에 수억 레코드를 초과하는 데이터의 집계에서 I/O발생을 어떻게 효율화할것인지가 중요하다.

압축과 분산에 의해 지연 줄이기 — MPP기술

고속화를 위해 사용되는 기법이 압축과 분산이다.
데이터를 가능한 한 작게 압축하고, 여러 디스크에 분산함으로써 데이터의 로드에 따른 지연을 줄인다.
분산된 데이터를 읽어 들이려면 멀티코어를 활용하면서 디스크 I/O를 병철 처리하는 것이 효과적이다. 이러한 아키텍처를 MPP(massive parallel processing : 대규모 병렬 처리)라고 부른다. ex.Redshift, BigQuery

열 지향 데이터베이스 접근 — Column을 압축하여 I/O 줄이기

빅데이터로 취급되는 데이터 대부분은 디스크 상에 있기 때문에 쿼리에 필요한 최소한의 데이터를 가져오도록 하여 지연을 줄어들게 할 수 있다.
이 때 사용되는 방법이 컬럼 단위로의 데이터 압축이다.
같은 문자열의 반복은 매우 작게 압축할 수 있으며, 열 지향 데이터베이스는 압축되지 않은 행 지향 데이터베이스와 비교하면 1/10 이하로 압축할 수 있다.

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

쿼리 지연을 줄일 다른 방법은 MPP 아키텍처에 의한 데이터 처리의 병렬화다.
MPP에서는 하나의 쿼리를 다수의 작은 테스크로 분해하고 이를 가능한 한 병렬로 실행한다.

쿼리가 잘 병렬화 할 수 있다면, MPP를 사용한 데이터의 집계는 CPU 코어 수에 비례하여 고속화된다. 단, 디스크로부터의 로드가 병목 현상이 발생하지 않도록 데이터가 고르게 분산되어 있어야 한다.
MPP는 구조상, 고속화를 위해 CPU와 디스크 모두를 균형있게 늘려야 한다.
일부 제품은 HW와 SW가 통합된 제품으로 제공되며, HW수준에서 데이터 집계에 최적화된 데이터베이스를 MPP 데이터베이스라고 한다.

MPP 아키텍처는 Hadoop과 함께 사용되는 대화형 쿼리 엔진으로도 채택되고 있으며, 함께 사용될 경우 데이터를 저장하는 것은 분산 스토리지의 역할이다.

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

다차원 모델과 OLAP 큐브

OLAP는 데이터 집계를 효율화하는 접근 방법중의 하나다. 일반적으로 업무시스템에 있어서 RDB는 표 형식으로 모델링된 데이터를 SQL로 집계하지만, OLAP에서는 다차원 모델의 데이터 구조를 MDX(multidimensional expressions)등의 쿼리 언어로 집계한다. 데이터 분석을 위해 만들어진 다차원 데이터를 OLAP 큐브라고 부르며, 그것을 크로스 집계하는 구조가 OLAP다.

BI도구는 원래 OLAP구조를 사용하여 데이터를 집계하기 위한 소프트웨어다. 그러나 최근에는 MPP 데이터베이스와 인메모리 데이터베이스등의 보급으로 사전에 계산해둘 필요가 없어졌다. 따라서, OLAP큐브를 위해 특별한 구조를 준비하는 것이 아니라, BI 도구와 MPP 데이터베이스를 조합하여 크로스 집계하는 경우가 증가하고 있다.

--

--