압축 인코딩
행을 테이블에 추가할 때 데이터 값의 열에 적용되는 압축 형식은 압축 인코딩에 따라 결정됩니다.
ENCODE AUTO는 테이블의 기본값입니다. 테이블이 ENCODE AUTO로 설정되어 있는 경우 Amazon Redshift는 테이블의 모든 열에 대한 압축 인코딩을 자동으로 관리합니다. 자세한 정보는 CREATE TABLE 및 ALTER 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 |