2016-11-21 2 views
0

클러스터는 4 노드 클러스터입니다. 우리는 72 개의 컬럼으로 구성된 테이블을 가지고 있습니다. 각 슬라이스의 컬럼 할당을 검사하기 위해 svv_diskusage 테이블을 쿼리 할 때 모든 컬럼이 2 개의 블록 (0과 1)으로 할당되었음을 관찰했습니다. 그러나 몇 개의 열에 대해서는 varchar (1)의 데이터 유형이 있습니다. 두 개의 공간 블록을 차지하지 않아야합니다.Amazon Redshift 테이블 블록 할당

하나의 열이 하나 이상의 블록 (varchar (1500)의 경우)을 차지하면 테이블의 다른 모든 열에도 동일하게 할당 할 수 있습니까? 그렇다면 클러스터의 전체 데이터베이스 크기에 미치는 영향.

답변

0

각 Amazon Redshift 저장 블록의 크기는 1MB입니다. 각 블록에는 한 테이블 내의 하나의 열에 만 데이터가 들어 있습니다. SVV_DISKUSAGE system view

이들 블록의리스트, 예를 포함

select db_id, trim(name) as tablename, col, tbl, max(blocknum) 
from svv_diskusage 
where name='salesnew' 
group by db_id, name, col, tbl 
order by db_id, name, col, tbl; 

db_id | tablename | col | tbl | max 
--------+------------+-----+--------+----- 
175857 | salesnew | 0 | 187605 | 154 
175857 | salesnew | 1 | 187605 | 154 
175857 | salesnew | 2 | 187605 | 154 
175857 | salesnew | 3 | 187605 | 154 
175857 | salesnew | 4 | 187605 | 154 
175857 | salesnew | 5 | 187605 | 79 
175857 | salesnew | 6 | 187605 | 79 
175857 | salesnew | 7 | 187605 | 302 
175857 | salesnew | 8 | 187605 | 302 
175857 | salesnew | 9 | 187605 | 302 
175857 | salesnew | 10 | 187605 | 3 
175857 | salesnew | 11 | 187605 | 2 
175857 | salesnew | 12 | 187605 | 296 
(13 rows) 

각 열을 저장하는 데 필요한 블록 수있는 데이터의 양에 의존하고 그 표에 사용 compression encoding.

Amazon Redshift는 각 블록에 저장된 데이터의 minvaluemaxvalue도 저장합니다. 이것은 SVV_DISKUSAGE 테이블에 표시됩니다. 이 값은 종종 영역 맵이라고하며 데이터를 검색 할 때 건너 뛸 수있는 블록을 식별하는 데 사용됩니다. 예를 들어 WHERE 절이 해당 열에서 5 값을 가진 행을 찾으면 minvalue6 인 블록을 완전히 건너 뛸 수 있습니다. 이것은 데이터가 압축 될 때 특히 유용합니다. 데이터가 두 블록을 소비하는 이유

조사하기 위해 검사 :

    minvalue
  • 각 블록

사람들을에 저장된 각 블록

  • 값의 수 (num_values)의 maxvalue 값을 사용하면 각 블록에 저장된 데이터의 양과 예상과 일치하는지 여부를 알 수 있습니다.

    또한 배포 키 (DISTKEY)을 테이블에서 사용했습니다. DISTKEYALL으로 설정된 경우 테이블 데이터는 여러 노드간에 복제됩니다. 이것은 또한 귀하의 블록 수를 설명 할 수 있습니다.

    마지막으로 테이블에서 데이터가 삭제 된 경우 이전 값이 디스크 공간을 차지할 수 있습니다. 삭제 된 데이터를 제거하려면 테이블에서 VACUUM 명령을 실행하십시오.

    좋은 참조는 다음과 같습니다. Why does a table in my Amazon Redshift cluster consume more disk storage space than expected?

  • 관련 문제