Redshift列编码会影响查询执行速度吗?

Men*_*hak 4 amazon-redshift

在Amazon Redshift中创建数据表时,您可以指定各种编码,例如MOSTLY32或BYTEDICT或LZO.这些是在磁盘上存储柱状值时使用的压缩.

我想知道我的编码选择是否会对查询执行时间产生影响.例如,如果我创建一个BYTEDICT列,那么当涉及SELECT,GROUP BY或FILTER时,它会对LZO产生影响吗?

小智 7

是.使用的压缩编码转换为磁盘存储量.通常,存储越低,查询性能越好.

但是,哪种编码对您更有利,取决于您的数据类型及其分布.没有保证LZO总是优于Bytedict,反之亦然.根据我的经验,我通常会在目标表中加载一些示例数据.比做分析压缩.现在无论Redshift建议什么,我都会去.这对我有用.


小智 5

亚马逊实际上已经发布了一个 python 脚本,可以自动将其应用到您的数据库。您可以在此处找到此脚本https://github.com/awslabs/amazon-redshift-utils/blob/master/src/ColumnEncodingUtility/analyze-schema-compression.py