本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
壓縮編碼會指定在資料列新增至資料表時,套用至一欄資料值的壓縮類型。
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 資料表停用 ENCODE AUTO 功能,Amazon Redshift 將不再自動管理資料欄的壓縮編碼。所有資料欄都會保留您停用 ENCODE 時的壓縮編碼類型,直到您將其變更或再次啟用 ENCODE AUTO 為止。
Amazon Redshift 支援下列壓縮編碼:
Raw 編碼是下列資料欄的預設編碼:指定為排序索引鍵的資料欄,以及定義為 BOOLEAN、REAL 或 DOUBLE PRECISION 資料類型的資料欄。系統使用 Raw 編碼,以原始、未壓縮格式來儲存資料。
下表識別支援的壓縮編碼和支援編碼的資料類型。
編碼類型 | 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 |
Delta | DELTA DELTA32K |
SMALLINT、INT、BIGINT、DATE、TIMESTAMP、DECIMAL INT、BIGINT、DATE、TIMESTAMP、DECIMAL |
LZO | LZO | SMALLINT、INTEGER、BIGINT、DECIMAL、CHAR、VARCHAR、DATE、TIMESTAMP、TIMESTAMPTZ、SUPER |
Mostlyn | MOSTLY8 MOSTLY16 MOSTLY32 |
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 |