检查和改进列压缩编码

2020-12-31



当你的工作面对的是TB级别的数据时,存储和数据转换是最主要的时间消耗和支出。利用列存储压缩和编码,Vertica能够帮你最小化存储支出和转换时间消耗。
 
我们怎么来证明Vertica对表的压缩是有用的呢?在column_storage和projection_columns表中,存储有列的大小和当前压缩量。下面这个查询定位了那些默认(AUTO)压缩方式的表,这意味着这些表可能是非最优化或者说完全就没有压缩:



让我们用这个例子:



这张表的所有projection都没有压缩。我们可以用DESIGNER_DESIGN_PROJECTION_ENCODINGS这个函数来决定用什么压缩方式:



这会输出一段脚本,将会创建一个新的projection和drop现有的projection。首先我们看看能节省都少空间。




减少了65%的空间-对于不同的数据情况,这个数字会有变化。但是对于TB级别的操作来说,一个小小的提升,就会对存储以及运行性能有极大的提高,因为网络的I/O压力会大大降低。