Encoding 行间具有相似性的VARCHAR的良好编码

Encoding 行间具有相似性的VARCHAR的良好编码,encoding,amazon-redshift,Encoding,Amazon Redshift,对于VARCHAR列,如果每行包含一个简短(通常为50-100个字符)的值,该值包含很少的重复,但行之间有高度的相似性,那么什么是好的Amazon红移列编码?(尤其是相同的前缀。) 令人发狂的简洁让它听起来像是LZO被单独应用于每个值。在这种情况下,各行之间将没有共享字典,并且几乎没有可利用的公共性。OTOH,如果LZO应用于写入磁盘的整个1MB值块,它的性能会很好 听起来只有当值相同而不是相似时,它才产生节省,所以这不是一个好的选择。每个块应用压缩,这意味着LZO几乎总是VARCHAR的正确选

对于VARCHAR列,如果每行包含一个简短(通常为50-100个字符)的值,该值包含很少的重复,但行之间有高度的相似性,那么什么是好的Amazon红移列编码?(尤其是相同的前缀。)

令人发狂的简洁让它听起来像是LZO被单独应用于每个值。在这种情况下,各行之间将没有共享字典,并且几乎没有可利用的公共性。OTOH,如果LZO应用于写入磁盘的整个1MB值块,它的性能会很好


听起来只有当值相同而不是相似时,它才产生节省,所以这不是一个好的选择。

每个块应用压缩,这意味着
LZO
几乎总是
VARCHAR
的正确选择。大多数其他备选方案要求值与其他值完全相同(例如,
BYTEDICT
RUNLENGTH
),或者是数字值(例如,
DELTA
MOSTLY8


VARCHARS
的另一个选择是,它可能适用于您的用例。他们构建前N个单词的词典(245表示
TEXT255
,变量表示
TEXT32K
),并用一个字节索引替换这些单词的出现。如果您的值共享很多单词,那么
TEXT255
可能比
LZO

每个块都应用压缩,这意味着
LZO
几乎总是
VARCHAR
的正确选择。大多数其他备选方案要求值与其他值完全相同(例如,
BYTEDICT
RUNLENGTH
),或者是数字值(例如,
DELTA
MOSTLY8


VARCHARS
的另一个选择是,它可能适用于您的用例。他们构建前N个单词的词典(245表示
TEXT255
,变量表示
TEXT32K
),并用一个字节索引替换这些单词的出现。如果您的值共享很多单词,那么
TEXT255
可能比
LZO

更好。Amazon Redshift
ANALYZE COMPRESSION
命令会根据前100000行自动为每列推荐压缩设置。它对这些特定数据有何建议?Amazon Redshift
ANALYZE COMPRESSION
命令会根据前100000行自动为每列推荐一个压缩设置。它对这些特定数据有什么建议?