DataBase/Vertica

[Vertica]Projection 특징

cororo2 2023. 8. 24. 15:22

Projection이란? 

Vertica table은 논리적인 구조로만 존재하고 데이터를 저장하는 것은 Projection이라는 물리적인 구조로 저장된다.
실제 Table Data가 저장되는 Object(물리적 구조) 

  • Table당 복수개의 Projection 생성 가능
  • 전체 컬럼을 가지는 Projection인 super projection은 반드시 한개 존재하며 마지막 super projection은 삭제 불가능
  • Table의 칼럼을 일부만 가지는 projection도 생성 가능

 

Projection특징

  • Table의 projection이 많아질수록 DML의 성능 저하 가능성 높음
  • 모든 Node Data Update하여 적재 속도 영향, 디스크 공간 비효율적 사용
  •  PK가 없으면 데이터 Type 작은 순으로 정렬, 분산
  • Projection의 성능은 Sort Key, Segmentation Key가 결정
  • 한번 설정된 Sort Key 변경불가
  • 저장공간 효울성과 쿼리 실행속도에 큰 영향을 가짐 = 쿼리 성능 최적화와 관련

출처 : https://x2wizard.github.io/vertica_architecture/Vertica_architecture_1020/

 

Projection생성시기 

  1. 자동생성
    • 테이블 생성 후 처음으로 데이터가 insert 될때 
  2. 명시적 생성
    • create문으로 projection 생성
    • 테이블 생성할때 projection 속성 함께 지정

Projection Sort

Data의 접근하는 빠른 방법 = Cardinality가 낮은 Column통해 작업

SELECT 이름
FROM 학생
WHERE 성별 ='M' 
  AND PASS='P'
  AND 과목 ='JAVA';

 

'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]Vertica Architecture&특징  (0) 2023.08.24