type
status
date
slug
summary
tags
category
icon
password
在大数据领域,使用列式存储可以充分利用同一列数据有相似特征的优点对文件进行压缩,从而有效降低存储,这里介绍一下常用压缩算法是怎么处理数据的。
游程编码(RLE)
在数据
连续重复
的情况较多的时候比较有用,比如下面的数据:使用 RLE 编码会得到:
假设一个汉字也用一个字符存储,那么原来需要 30 个字符存储的数据现在只需要 11 个字符存储。
字典编码
在数据
重复出现但不太连续
的情况可以采用,比如下面的数据:我们可以为每个数据映射一个新的标示符(类似于 hashmap),例如:
替换原来的数据,得到:
在解码的时候,必须要知道对应关系才能还原,因此这个映射关系也需要保存。
这样,那么原来需要 30 个字符存储的数据现在需要 22 个字符存储。在数据量比较大的情况,会有明显的压缩效果。