-
Projection : sort key의 중요성VERTICA/03. Architecture 2016. 6. 1. 17:42
오늘은 Projection 특징중에서 sort 부분을 이야기 하겠습니다.
그림을 잘보면..
짙은 녹색으로 칠해진 컬럼이 sort 된 컬럼입니다.
하나의 논리 Table에 여러개 Proejction 을 만들수 있다고 http://vertica.tistory.com/13 여기서 언급했었습니다.
결론적으로 sort 키 선정을 잘하면 IO를 효율적으로 줄여 줄 수 있습니다.
다시 그림으로 보면..
성별+클래스+등급으로 sort 하였습니다.
컬럼전체를 읽는것이 아니고 필요한 부분만 읽게되어 조건절 혹은 group by 혹은 join 조건에 들어가게된다면
그에 맞는 sort 키를 선정하는것이 중요합니다.
위와 같이 Projection에 sort를 잘 지정하면 범위가 제한된 조건을 효율적으로 처리 할 수 있습니다.
각 파일의 최소 및 최대 값이 메타 데이터의 일부로 저장됩니다.
범위가 제한된 조건을 쿼리를 사용하면 옵티마이저는 최소값과 최대 값을 사용하여 테이블 스캔 중에 다수의 블록을 빠르게 건너 뛸 수 있습니다.
예를 들어, 날짜별로 정렬 된 5 년간의 데이터가 테이블에 저장된 쿼리에서
1 개월간의 날짜 범위가 지정 될 경우 최대 98 %의 데이터를 검사에서 제외 할 수 있습니다.(파티션을 지정하지 않았음에도..)
데이터가 정렬되지 않으면 더 (경우에 따라 모든) 파일을 스캔해야합니다.
기간이 긴 데이터는(보통 시계열 데이터 칭함) 일반적으로 파티셔닝하는것을 권고합니다.
버티카는 테이블당 파티션 갯수에 대한 제약(1024개) 이 있기 때문에 파티션 관리가 힘들다면
sort키를 잘 활용하여 파티션갯수의 제약을 극복 하는것도 하나의 방법입니다.
감사합니다.
'VERTICA > 03. Architecture' 카테고리의 다른 글
버티카 Eon모드 (0) 2018.12.24 STRATA (0) 2017.03.17 버티카의 독창성 (0) 2016.05.25 Vertica 특장점 - Column 기반 DBMS (0) 2015.08.10 Vertica 특장점 - Pure MPP 아키텍처 (0) 2015.08.10 댓글