Data Enginerring/빅데이터를 지탱하는 기술

[요약 정리] 2-2. 열 지향 스토리지에 의한 고속화

dashwood 2022. 6. 12. 18:42

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

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

데이터 처리의 지연 - 지연이 적은 데이터 마트 작성을 위한 기초 지식

  • 데이터 처리의 응답이 빠르다 == 대기시간(latency)이 적다 == 지연이 적다
  • 지연이 적은 데이터 베이스
    • 모든 데이터를 메모리에 올림
    • 5GB 정도의 데이터양이라면 MySQL이나 PostgreSQL 등의 일반적인 RDB가 데이터 마트에 적합
      • RDB는 원래 지연이 적고, 많은 수의 클라이언트가 동시 접속해도 성능이 나빠지지 않으므로 실제 운영환경의 데이터 마트로도 우수
      • RDB는 메모리가 부족하면 급격히 성능 저하 → 항상 디바이스 I/O가 발생한다고 가정

 

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

  • MPP(대규모 병렬 처리)
    • 멀티 코어를 활용하면서 디스크 I/O를 병렬 처리
    • Amazon Redshift, Google BigQuery
    • 데이터의 집계에 최적화

 

열 지향 데이터베이스 접근

- 칼럼을 압축하여 디스크 I/O를 줄이기

  • 데이터 처리 성능
    • 처리량(throughput) - 일정 시간에 처리할 수 있는 데이터의 양, 배치 처리 등의 대규모 데이터에서 중요시
    • 지연 - 데이터 처리가 끝날 때까지의 대기 시간, 애드 혹 분석에서 중요시

 

행 지향 데이터베이스 - 각 행이 디스크 상에 일련의 데이터로 기록됨

  • 테이블의 각 행을 하나의 덩어리로 디스크에 저장
  • 새 레코드를 추가할 때 파일의 끝에 데이터를 쓸 뿐이므로 빠르게 추가할 수 있음
  • 매일 발생하는 대량의 트랜잭션을 지연 없이 처리하기 위해 데이터 추가를 효율적으로 할 수 있도록 함
  • 데이터 검색을 고속화하기 위해 인덱스를 만듦
  • 인덱스가 없다면, 저장되는 모든 데이터를 로드해야 원하는 레코드를 찾을 수 있으므로 많은 디스크 I/O가 발생해 성능 저하

 

열 지향 데이터베이스 - 칼럼마다 데이터 모아두기

  • 데이터를 미리 칼럼 단위로 정리해 둠으로 필요한 칼럼만을 로드하여 디스크 I/O를 줄임
  • 데이터 압축 효율 좋음

 

MPP 데이터베이스의 접근 방식

- 병렬화에 의해 멀티코어 활용하기

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

  • 쿼리가 잘 병렬화할 수 있다면, MPP를 사용한 데이터의 집계는 CPU 코어 수에 비례하여 고속화
  • 디스크로부터의 로드가 병목 현상이 발생하지 않도록 데이터가 고르게 분산되어 있어야 함
  • CPU와 디스크 모두를 균형 있게 늘려야 함

 

집계 시스템 종류 스토리지의 종류 최적의 레코드 수
RDB 행 지향 ~ 수천만 정도
MPP 데이터베이스 열 지향(하드웨어 일체형) 수억 ~
대화형 쿼리 엔진 열 지향(분산 스토리지에 보관) 수억 ~

 

 

[출처]

빅데이터를 지탱하는 기술, 니시다 케이스케