[책정리] 빅데이터를 지탱하는 기술 : 2-2. 열 지향 스토리지에 의한 고속화

2022. 5. 23. 21:05·AI & 빅데이터/[Book] 빅데이터를 지탱하는 기술
728x90

CHAPTER 2 빅데이터의 탐색

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

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

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

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

2-5. 요약

 

2장에서는 데이터를 시각화하는 환경을 정비함으로써 대량의 데이터를 효율적으로 탐색할 수 있도록 준비한다.


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

데이터양이 증가함에 따라 집계에 걸리는 시간은 길어진다. 그렇게 되면 작업 효율은 악화되며 모든 작업들이 느려지게 된다. 초 단위로 데이터를 집계하려면 처음부터 그것을 예상하여 시스템을 마련해야 한다.

 

데이터 처리의 지연

데이터의 처리 응답이 빠르다는 표현을 '대기 시간이 적다' 또는 '지연이 적다'고 한다. 데이터 마트를 만들 때는 가급적 지연이 적은 데이터베이스가 있어야 한다.

 

그 중 가장 간단한 방법은 모든 데이터를 메모리에 올리는 것이다. 최근에는 수 GB에서 수십 GB의 메모리를 제공하는 것도 어렵지 않다. MySQL 또는 PostgreSQL 등의 일반적인 RDB가 데이터 마트에 적합하다. RDB는 비교적 지연이 적고, 많은 수의 클라이언트가 동시 접속해도 성능이 나빠지지 않아 많은 사용자가 사용하는 운영 환경의 데이터 마트로 우수하다.

 

'압축'과 '분산'에 의해 지연 줄이기

데이터를 가능한 한 작게 압축하고 그것을 여러 디스크에 분산함으로써 데이터 로드에 따른 지연을 줄인다. 

분산된 데이터를 읽어 들이려면 멀티 코어를 활용하면서 디스크 I/O를 병렬 처리하는 것이 효과적이며, 이러한 아키텍처를 'MPP(massiv parallel processing: 대규모 병렬 처리)'라고 한다. 이는 대량의 데이터를 분석하기 위해 데이터베이스에서 널리 사용되고 있다.

 

MPP는 데이터의 집계에 최적화되어 있으며, 데이터 웨어하우스와 데이터 분석용의 데이터베이스에서 특히 많이 사용된다.

 


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

데이터의 압축을 고려한 후에 알아두어야 할 것이 '열 지향' 개념이다.

빅데이터로 취급되는 데이터 대부분은 디스크 상에 있기 때문에 쿼리에 필요한 최소한의 데이터만을 가져옴으로써 지연이 줄어들게 된다. 이를 위해 사용되는 방법이 '칼럼 단위로의 데이터 압축'이다.

 

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

 

이에 반해 데이터 분석에 사용되는 데이터베이스는 칼럼 단위의 집계에 최적화되어 있으며, '열 지향 데이터베이스'또는 '칼럼 지향 데이터베이스'라고 한다. Teradata와 Amazon Redshint 등이 그 예시이다.

 

행 지향 데이터베이스

행 지향 데이터베이스에서는 테이블의 각 행을 하나의 덩어리로 디스크에 저장한다. 새 레코드를 추가하는 경우 파일의 끝에 데이터를 쓸 뿐이므로 빠르게 추가할 수 있다.

행 지향 데이터베이스에서는 데이터 검색을 고속화하기 위해 '인덱스'를 만든다. 한편, 데이터 분석에서는 어떤 칼럼이 사용되는지 미리 알 수 없기 때문에 인덱스를 작성하더라도 별로 도움이 되지 않는다. 따라서 인덱스에 의지하지 않는 고속화 기술이 필요하다.

 

열 지향 데이터베이스

데이터 분석에서는 일부 칼럼만이 집계 대상이 된다. 행 지향 데이터베이스에서는 레코드 단위로 데이터가 저장되어 있기 때문에 필요 없는 칼럼까지 디스크에서 로드된다.

 

열 지향 데이터베이스에서는 데이터를 미리 칼럼 단위로 정리해두어 디스크 I/O를 줄인다.

같은 칼럼에는 종종 유사한 데이터가 나열되는데, 같은 문자열의 반복은 작게 압축할 수 있으므로 열 지향 데이터베이스에서는 데이터의 압축 효율이 우수하다.

 


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

쿼리 지연을 줄일 또 다른 방법은 MPP 아키텍처에 한 데이터 처리의 병렬화다.

 

디스크에서 대량의 데이터를 읽기 때문에 1번의 쿼리 실행 시간이 길어진다. 따라서 멀티 코어를 활용하여 고속화하는 것이 좋다. 

예를 들어, 1억 레코드로 이루어진 테이블의 합계를 계산한다면 그것을 10만 레코드로 구분하여 1,000개의 태스크로 나눈다. 각 태스크는 독립적으로 10만 레코드의 합계를 집계해 마지막 결과를 모아 총합계를 계산한다.

 

MPP 데이터베이스와 대화형 쿼리 엔진

MPP를 사용한 데이터의 집계는 CPU의 코어 수에 비례하여 고속화된다. MPP는 고속화를 위해 CPU와 디스크 모두를 균형 있게 늘려야 한다. 일부 제품은 하드웨어와 소프트웨어가 통합된 제품으로 제공되는데, 이렇게 하드웨어 수준에서 데이터 집계에 최적화된 데이터베이스를 'MPP 데이터베이스'라고 한다.

 

정리해서, 수억 레코드를 초과하는 데이터 마트의 지연을 적게 유지하기 위해서는 데이터를 열 지향의 스토리지 형식으로 저장해야 한다.

 

 

728x90

'AI & 빅데이터 > [Book] 빅데이터를 지탱하는 기술' 카테고리의 다른 글

[책정리] 빅데이터를 지탱하는 기술 : 2-4. 데이터 마트의 기본 구조  (0) 2022.06.03
[책정리] 빅데이터를 지탱하는 기술 : 2-3. 애드 혹 분석과 시각화 도구  (0) 2022.05.24
[책정리] 빅데이터를 지탱하는 기술 : 2-1. 크로스 집계의 기본  (0) 2022.05.23
[책정리] 빅데이터를 지탱하는 기술 : 1-4 BI 도구와 모니터링  (0) 2022.05.04
[책정리] 빅데이터를 지탱하는 기술 : 1-3 스크립트 언어에 의한 특별 분석과 데이터 프레임  (0) 2022.04.26
'AI & 빅데이터/[Book] 빅데이터를 지탱하는 기술' 카테고리의 다른 글
  • [책정리] 빅데이터를 지탱하는 기술 : 2-4. 데이터 마트의 기본 구조
  • [책정리] 빅데이터를 지탱하는 기술 : 2-3. 애드 혹 분석과 시각화 도구
  • [책정리] 빅데이터를 지탱하는 기술 : 2-1. 크로스 집계의 기본
  • [책정리] 빅데이터를 지탱하는 기술 : 1-4 BI 도구와 모니터링
kiminae
kiminae
공부한 내용을 정리합니다.
  • kiminae
    데이터 다루는 사람
    kiminae
  • 전체
    오늘
    어제
    • 분류 전체보기 (67)
      • AI & 빅데이터 (6)
        • kafka (10)
        • [Book] 빅데이터를 지탱하는 기술 (12)
      • 알고리즘 (19)
      • 알고리즘 문제풀이 (13)
        • programmers (0)
        • 백준 (1)
        • LeetCode (12)
      • Android (3)
      • Book&Lesson (13)
        • [Lesson] 프로그래머스 커뮤러닝 (Pyth.. (1)
      • 참고한 글들 (1)
      • 컨퍼런스 정리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    데이터시각화
    개인화추천
    ViewModel
    빅데이터를지탱하는기술
    정렬알고리즘
    알고리즘문제
    Algorithm
    DP문제
    sort
    리트코드
    정렬
    Kafka
    알고리즘
    트리
    데이터엔지니어
    버블정렬
    추천알고리즘
    hadoop
    시간복잡도
    MPP데이터베이스
    빅데이터
    leetcode
    BI도구
    알고리즘풀이
    파이프라인구축
    카프카
    카프카클라이언트
    mvvm
    릿코드
    머신러닝
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
kiminae
[책정리] 빅데이터를 지탱하는 기술 : 2-2. 열 지향 스토리지에 의한 고속화
상단으로

티스토리툴바