ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    댓글

Designed by Tistory.