在Redshift中DISSTYLE和压缩编码之间有任何关系吗。当我们使用压缩编码时,计算节点上的操作系统会对数据进行额外的编码和解码;DISSTYLE设置为ALL,难道你不认为每个节点都必须进行解码和编码工作吗?
我们非常感谢您在概念上的帮助。
分发样式确定哪个节点/切片将存储数据。这与压缩类型没有关系或影响。它只是简单地说在哪里存储数据。
然而,压缩与排序键密切相关,排序键决定了存储数据的顺序。一些压缩方法使用以前值的"偏移量",甚至存储重复值的数量,这可以显著压缩数据(例如"重复此值1000次"而不是存储1000个值(。
亚马逊Redshift中的压缩有两个好处:
- 存储空间更小(因此成本更低(
- 每次磁盘访问都可以检索到更多数据
任何数据库的最慢操作是磁盘访问。因此,磁盘访问的任何减少都将加快操作速度。与额外的磁盘读取操作所需的时间相比,解压缩数据所花费的时间较小。
第二个最"昂贵"的操作是在节点之间发送数据。虽然网络流量比磁盘访问快,但最好避免这种情况。
当使用DISTSTYLE ALL
时,它只是意味着数据在每个节点上都可用,从而避免了跨网络传输数据的需要。