압축 인코딩 - Amazon Redshift

압축 인코딩

행을 테이블에 추가할 때 데이터 값의 열에 적용되는 압축 형식은 압축 인코딩에 따라 결정됩니다.

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

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

CREATE TABLE을 사용하는 경우 테이블의 열에 대한 압축 인코딩을 지정하면 ENCODE AUTO가 비활성화됩니다. ENCODE AUTO가 비활성화된 경우 Amazon Redshift는 다음과 같이 ENCODE 유형을 지정하지 않은 열에 압축 인코딩을 자동으로 할당합니다.

  • 정렬 키로 정의된 열은 RAW 압축이 할당됩니다.

  • BOOLEAN, REAL 또는 DOUBLE PRECISION 데이터 형식으로 정의된 열은 RAW 압축이 할당됩니다.

  • SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIMESTAMP 또는 TIMESTAMPTZ 데이터 형식으로 정의된 열에는 AZ64 압축이 할당됩니다.

  • CHAR 또는 VARCHAR 데이터 형식으로 정의된 열에는 LZO 압축이 할당됩니다.

테이블을 만든 후 ALTER TABLE을 사용하여 테이블의 인코딩을 변경할 수 있습니다. ALTER TABLE을 사용하여 ENCODE AUTO를 비활성화하면 Amazon Redshift는 더 이상 열의 압축 인코딩을 자동으로 관리하지 않습니다. 모든 열은 사용자가 변경하거나 ENCODE AUTO를 다시 활성화하기 전까지는 ENCODE AUTO를 비활성화한 시점의 압축 인코딩 유형을 그대로 유지합니다.

다음 표는 지원되는 압축 인코딩과 인코딩을 지원하는 데이터 형식을 구분한 것입니다.

인코딩 유형 CREATE TABLE 및 ALTER TABLE 문의 키워드 데이터 타입
Raw(압축 없음) RAW 모두
AZ64 AZ64 SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIMESTAMP, TIMESTAMPTZ
Byte dictionary BYTEDICT SMALLINT, INTEGER, BIGINT, DECIMAL, REAL, DOUBLE PRECISION, CHAR, VARCHAR, DATE, TIMESTAMP, TIMESTAMPTZ
델타

델타

델타

SMALLINT, INT, BIGINT, DATE, TIMESTAMP, DECIMAL

INT, BIGINT, DATE, TIMESTAMP, DECIMAL

LZO LZO SMALLINT, INTEGER, BIGINT, DECIMAL, CHAR, VARCHAR, DATE, TIMESTAMP, TIMESTAMPTZ, SUPER
Mostlyn

LZO

LZO

LZO

SMALLINT, INT, BIGINT, DECIMAL

INT, BIGINT, DECIMAL

BIGINT, DECIMAL

Run-length RUNLENGTH SMALLINT, INTEGER, BIGINT, DECIMAL, REAL, DOUBLE PRECISION, BOOLEAN, CHAR, VARCHAR, DATE, TIMESTAMP, TIMESTAMPTZ
텍스트

TEXT255

TEXT32K

VARCHAR

VARCHAR

Zstandard ZSTD SMALLINT, INTEGER, BIGINT, DECIMAL, REAL, DOUBLE PRECISION, BOOLEAN, CHAR, VARCHAR, DATE, TIMESTAMP, TIMESTAMPTZ, SUPER