codec-compression是阿里云Elasticsearch(简称ES)团队自主开发的索引压缩插件,支持brotli和zstd压缩算法,具有更高的索引压缩比,可以大幅降低索引的存储成本。
前提条件
您已完成以下操作:
创建阿里云ES实例(6.7.0版本),详情请参见创建阿里云Elasticsearch实例。
重要codec-compression插件目前只支持阿里云ES 6.7.0版本,因此请创建6.7.0版本的实例。
安装codec-compression插件(新购实例默认已安装)。
您可在插件配置页面查看是否已安装codec-compression插件,如果还未安装,请手动进行安装,安装方法请参见安装或卸载系统默认插件。
背景信息
codec-compression插件支持brotli和zstd压缩算法,适用于写入量大、索引存储成本高的场景,例如日志场景、时序分析场景等,可以大大降低索引的存储成本。性能测试信息如下:
测试环境
机器配置:数据节点16核64 GB*3 + 2 TB SSD云盘。
数据集:官方esrally自带的nyc_taxis(74 GB)。
索引配置:都使用默认配置,写入完成后都可以进行force merge。
测试结果
压缩算法
索引大小(GB)
写入TPS(doc/s)
ES默认压缩算法(LZ4)
35.5
202682
best_compression(DEFLATE)
26.4
181686
brotli
24.4
182593
zstd
24.6
181393
结论
codec-compression插件使用的brotli和zstd压缩算法,与默认压缩算法(LZ4)相比,写入性能下降了10%,压缩率提升了45%,查询性能不变;与原生best_compression(DEFLATE)相比,写入性能不变,压缩率提升了8%,查询性能不变。
操作步骤
登录Kibana控制台。
登录控制台的具体步骤请参见登录Kibana控制台。
在左侧导航栏,单击Dev Tools(开发工具)。
在Console中,分别执行如下命令,为索引指定不同的压缩算法。
brotli压缩算法
PUT index-1 { "settings": { "index": { "codec": "brotli" } } }
zstd压缩算法
PUT index-1 { "settings": { "index": { "codec": "zstd" } } }