Text255 和 Text32k 編碼 - Amazon Redshift

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

Text255 和 Text32k 編碼

Text255 和 text32k 編碼有助於相同單字經常重複出現的壓縮 VARCHAR 資料欄。唯一單字的個別字典是針對磁碟上資料欄值的每個區塊而建立的。(一個 Amazon Redshift 磁碟區塊佔用 1 MB。) 字典包含資料欄中前 245 個唯一單字。那些單字會在磁碟上被代表 245 個值之一的一位元組索引值所取代,而且未在字典中表示的任何單字會以未壓縮形式存放。對於每個 1 MB 磁碟區塊都會重複此程序。如果建立索引的單字經常出現在資料欄中,則資料欄產生高壓縮率。

對於 text32k 編碼,原則相同,但每個區塊的字典不會擷取特定數目的單字。反之,字典會為其找到的每個唯一單字建立索引,直到結合的項目達到 32K 長度,減去一些額外負荷。索引值是以兩個位元組存放。

例如,考慮 VENUE 資料表中的 VENUENAME 資料欄。ArenaCenterTheatre 等單字反覆出現在這個欄中,而且若套用 text255 壓縮,則很可能出現在每個區塊中的前 245 個單字之中。如果是這樣,則此列受益於壓縮。這是因為每次這些單字出現,它們只佔用 1 個位元組的存放空間 (而不是分別佔用 5、6 或 7 個位元組)。