DataBase/Vertica

[Vertica]Vertica Architecture&특징

cororo2 2023. 8. 24. 13:17

Vertica Architecture

  • 대용량 데이터 분석위한 column기반의 RDBMS
  • Linux기반
  • Table은 Logical상에만 존재 Physical에는 Projection 형태로 존재
  • Vertica에서 Table = Anchor Table

 

 


Vertica 특징

  • Columnar Orientation
    • row 단위로 저장하는 DB는 데이터가 Table에 저장 Vertica는 데이터를 Column단위로 저장/관리 
    • Vertica는 쿼리 수행시 필요한 칼럼만 읽어 디스크I/O 감소하여 쿼리 성능과 응답속도가 빠름
      • row 단위 DB는 쿼리 수행시 전체 칼럼을 읽어 수행
      • 다수의 칼럼을 조회하는 상황에는 작업비용이 커질 가능성도 존재
      • Column기반으로 저장하여 Index 불필요
    • 모든 Column 개별적으로 다뤄지며 Column별 연속적으로 저장

 

  • Automatic Database Design
    • DBA의 부담 최소화위해 DatabaseDesigner(DBD) 제공
    • DBD 사용하려면 샘플 데이터set, 자주 사용되는 쿼리set 필요 
    • 제공한 데이터set, 쿼리 기반 최적의 쿼리 성능을 위한 물리적 디자인(=물리적 스키마 구조) 갖는 projection 생성 DDL문 제
  • Advanced Data Encoding
    • 데이터를 압축된 형식으로 저장하여 스토리지 공간 줄임
    • Disk에 저장 할 데이터를 최대한 encoding 후 압축하여 전체 스토리지 공간 절약
    • 디스크 I/O비용 감소
    • 데이터 인코딩 방법은 데이터type(기본), 데이터cardinality, 데이터 정렬 여부에 따라 결정(변경가능)
    • 데이터 처리는 필요한 컬럼만 가지고 와서 압축만 해제한 후 인코딩 된 상태로 수행
  • HA(High Availability)
    • Multi-node cluster 구성(최소 3node)
    • 저장 데이터의 이중화 기
    • 서비스 다운타임 최소화 목적
      • 데이터 복제본이 인접노드에 저장되고 있어 특정 노드에 이상이 발생해도 서비스 지속 가능
      • 용량 확장이나 노드 추가시나 유지보수위한 노드 제거시 서비스 중단없이 작업 가능
      • K-Safety 기능과 연
  • MPP(Massively Parallel Processing)
    • 별도의 Master node 없음
    • 모든 Node가 동일한 역할을 수행하는 Pure-MPP구조 
      • MPP = Master Node 존재
      • Pure MPP = Master Node X
    • 모든 Node 동일한 역할 수행
    • 선형적으로 scale-out 따른 성능 or 많은 사용자 지원 가능
    • Node가 각자의 메모리, CPU, 디스크를 가지고 병렬처리(Projection 분산하거나 복제 저장)
    • Pure-MPP는 모든 Node에 Catalog가 존재하여 동기화 필요
    • Vertica는 분산처리 방법으로 Hash값 사용 
      • Skew(데이터 불공평 현상) 발생 가능성 존재

출처 : https://x2wizard.github.io/vertica_architecture/Vertica_architecture_1010/#vertica-%ED%8A%B9%EC%A7%95

 

  • Optimized Prejections
    • Projection = 최적화된 형식과 구조로 데이터를 저장 
    • Projection을 사용하여 인덱스 불필요
  • Write Once
    • 한번 작성한 Data에 대하여 변경 불가
    • Insert : 제일 아래행으로 추가
    • Delete : 대상행 논리삭제, 논리 삭제된 데이터는 정기적으로 물리 삭제
    • Update 
      • 대상 행 직접 Update 하지 않고 새로운 행 추가 
      • 갱신 대상 행 논리 삭제 후 정기적으로 물리 삭

 

 

'DataBase > Vertica' 카테고리의 다른 글

CREATE TABLE&PROJECTION  (0) 2023.11.15
[Vertica]K-safety  (0) 2023.08.24
[Vertica]Projection Segmentation & Replication & Local Join  (0) 2023.08.24
[Vertica]Projection 특징  (0) 2023.08.24