열 압축 작업 - Amazon Redshift

열 압축 작업

압축은 열 수준에서 저장되는 데이터의 크기를 줄일 수 있는 작업입니다. 이 작업은 스토리지 공간을 절약하여 스토리지에서 읽어오는 데이터의 크기를 줄임으로써 디스크 I/O의 크기가 감소하고 쿼리 성능이 개선되는 효과가 있습니다.

ENCODE AUTO는 테이블의 기본값입니다. 테이블이 ENCODE AUTO로 설정되어 있는 경우 Amazon Redshift는 테이블의 모든 열에 대한 압축 인코딩을 자동으로 관리합니다. 자세한 내용은 CREATE TABLEALTER TABLE 단원을 참조하세요.

그러나 테이블의 열에 압축 인코딩을 지정하면 테이블이 더 이상 ENCODE AUTO로 설정되지 않습니다. Amazon Redshift는 더 이상 테이블의 모든 열에 대한 압축 인코딩을 자동으로 관리하지 않습니다.

테이블을 생성할 때 테이블의 열에 압축 형식 또는 인코딩을 수동으로 적용할 수 있습니다. 또는 COPY 명령을 사용하여 압축을 자동으로 분석하고 적용할 수 있습니다. 자세한 내용은 COPY를 통한 압축 인코딩 선택 단원을 참조하십시오. 자동 압축 적용에 대한 자세한 내용은 자동 압축을 사용하여 테이블 로드 섹션을 참조하세요.

참고

COPY 명령을 사용하여 자동 압축을 적용하는 것이 매우 바람직합니다.

새 테이블이 다른 테이블과 동일한 데이터 특성을 공유하는 경우 압축 인코딩을 수동으로 적용하도록 선택할 수 있습니다. 또는 테스트에서 자동 압축 중 적용된 압축 인코딩이 데이터에 적합하지 않다는 것을 발견한 경우 그렇게 할 수 있습니다. 압축 인코딩을 수동으로 적용하려면 먼저 이미 데이터가 로드된 테이블을 대상으로 ANALYZE COMPRESSION 명령을 실행한 후 그 결과를 가지고 압축 인코딩을 선택할 수 있습니다.

또한 압축을 수동으로 적용할 때는 각 열에 대한 압축 인코딩을 CREATE TABLE 문에 포함시켜 지정합니다. 구문은 다음과 같습니다.

CREATE TABLE table_name (column_name data_type ENCODE encoding-type)[, ...]

여기서 encoding-type은 다음 섹션에서 설명하는 키워드 표에서 가져옵니다.

예를 들어 다음은 2열 테이블인 PRODUCT를 생성하는 문입니다. 데이터를 테이블에 로드하면 PRODUCT_ID 열은 압축되지 않지만 PRODUCT_NAME 열이 BYTEDICT(Byte Dictionary Encoding)를 사용하여 압축됩니다.

create table product( product_id int encode raw, product_name char(20) encode bytedict);

열의 인코딩은 ALTER TABLE 명령을 사용해 테이블에 추가할 때 지정할 수 있습니다.

ALTER TABLE table-name ADD [ COLUMN ] column_name column_type ENCODE encoding-type