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 데이터베이스 | 열 지향(하드웨어 일체형) | 수억 ~ |
대화형 쿼리 엔진 | 열 지향(분산 스토리지에 보관) | 수억 ~ |
[출처]
빅데이터를 지탱하는 기술, 니시다 케이스케