数据编码(Encoding)
对数据做编码可以减少存储和 I/O开销,常见的技术比如 Dictionary Encoding,Run-Length Encoding,Bitpacking,Delta Encoding,Frame-of-Reference等。
本篇文章对这些编码方案进行介绍,举例说明,最后总结各种encoding的适用场景。
一、Dictionary Encoding(字典编码)
字典编码是一种通过建立字典来压缩数据的方法。它将重复出现的值替换为较短的引用,从而减少存储空间。
工作原理:
- 扫描数据,建立值到编码的映射字典
- 用编码替换原始值
- 存储字典和编码后的数据
示例:
原始数据:[“apple”, “banana”, “apple”, “orange”, “banana”]
建立字典:
{
0: “apple”,
1: “banana”,
2: “orange”
}
编码后数据:
[0, 1, 0, 2, 1]
优点:
- 对重复值较多的数据压缩效果好<