compression-zstd插件
更新时间:2024-07-12
背景说明
Elasticsearch提供的数据存储方式,默认使用LZ4算法压缩,压缩速度较快,但压缩率较低。也可选择使用Deflate算法获得更好的压缩率,但牺牲了压缩速度。
BES提供了业内先进的压缩算法 Zstandard(ZSTD),在提升压缩率的同时,保证了压缩速度。
使用方式
1.在控制台安装BES提供的compression-zstd插件,点击安装后需要重启集群使插件生效。
2.在创建索引时,如需指定压缩算法,做如下配置即可:
PUT my_index
{
"settings": {
"index.codec": "zstd"
}
}
配置参数与压缩算法的对应关系:
index.codec取值 | 压缩算法 |
---|---|
default | LZ4 |
best_compression | Deflate |
zstd | Zstandard |
性能参数
在同等规格配置的集群内,对上述三种压缩算法,分别使用esrally工具写入pmc数据集进行写入性能测试,结果如下:
序号 | 压缩算法 | 分片数 | 存储空间(force merge后) | 平均写入速率 |
---|---|---|---|---|
1 | Zstandard | 1 | 14.6GB | 843.25doc/s |
2 | LZ4(default,ES默认) | 1 | 18.8GB | 779.21doc/s |
3 | Deflate(best_compression) | 1 | 14.1GB | 655.51doc/s |
- 结论:
在压缩率方面,Zstandard方式的数据存储空间比默认LZ4方式节省22.34%,比Deflate多3.55%。
在压缩速度方面,Zstandard方式的数据写入速率比默认LZ4方式快8.22%,比Deflate快28.64%。
综合来看,Zstandard方式兼具了优秀的压缩率和压缩速度。