壓縮編碼 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

壓縮編碼

一個壓縮編碼指定資料列在資料列添加至資料表時,套用至資料欄的壓縮類型。

編碼自動是表的默認設置。Amazon Redshift 會自動管理表中所有列的壓縮編碼。您可以為表指定 ENCODE AUTO 選項,以使 Amazon Redshift 能夠自動管理表中所有列的壓縮編碼。如需詳細資訊,請參閱 CREATE TABLEALTER TABLE

但是,如果為表中的任何列指定壓縮編碼,則表不再設置為 ENCODE AUTO。Amazon Redshift 不再自動管理表中所有列的壓縮編碼。

如果您為表中的任何列指定壓縮編碼,或者您沒有為表指定 ENCODE AUTO 選項,Amazon Redshift 會自動為您未指定壓縮編碼的列分配壓縮編碼,如下所示:

  • 定義為排序索引鍵的資料欄會有指派的 RAW 壓縮。

  • 定義為 BOOLEAN、REAL 或 DOUBLE PRECISION 資料類型的資料欄會有指派的 RAW 壓縮。

  • 定義為 SMALLINT、INTEGER、BIGINT、DECIMAL、DATE、TIMESTAMP 或 TIMESTAMPTZ 資料類型的資料欄會有指派的 AZ64 壓縮。

  • 定義為 CHAR 或 VARCHAR 資料類型的資料欄會有指派的 LZO 壓縮。

下表識別支援的壓縮編碼和支援編碼的資料類型。

編碼類型 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 小, 整數, 大, 十進制, 字符, 瓦爾卡爾, 日期, 時間戳, 時間標記, 超
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 小, 整數, 大, 十進制, 真實, 雙精度, 布爾值, 字符, VARCHAR, 日期, 時間戳, 時間標記, 超