elasticsearch存储数据压缩

一.前言

elk是流行的日志监控分析平台,但es占用存储空间过大,下面介绍几种压缩方案。

二.方案

1.禁用不需要的特性

不需要分词的字段,禁用text类型,使用keyword.(我们所有字段都是keyword)

2.使用更高效率的压缩算法

es默认压缩算法是LZ4,在es7.10之后提供了一种压缩比更高的算法DEFLATE,LZ4和DEFLATE算法比较:

算法 压缩比 压缩速度 解压速度 压缩内存占用 解压内存占用
DEFLATE
LZ4
3.定期force_merge

为不再更新的只读索引执行force merge,将Lucene索引合并为单个分段,可以提升查询速度。当一个Lucene索引存在多个分段时,每个分段会单独执行搜索再将结果合并;另外执行force_merge后也会释放无法被GC的segmentCache(另一种是close掉索引)。所以将只读索引强制合并为一个Lucene分段不仅可以优化搜索过程,减少内存占用,对索引恢复速度也有好处。

例如,每天生成一个新的索引,然后用别名关联,或者使用索引通配符。这样,可以每天凌晨对昨天的索引执行force-merge。

三.总结

压缩算法将LZ4改为Deflate,空间占用量可以下降10%。Elasticsearch统计的索引大小是整个索引所占空间空间的大小,整个索引包括很多文件,比如tim词典,tip词典索引,pos位置信息,fdt存储字段信息(_source实际存储的文件),等等。Elasticsearch中"codec": "best_compression" (也就是DEFLATE和LZ4压缩算法),是对fdt这个文件进行压缩。

相关推荐
AgeClub19 小时前
当“钢铁护工”进入家庭,Figure 03如何重建老年居家生活?
大数据·人工智能
代码匠心20 小时前
从零开始学Flink:事件驱动
java·大数据·flink·大数据处理
Lx35221 小时前
Flink自定义函数:UDF、UDAF和UDTF实战
大数据
一个处女座的暖男程序猿21 小时前
2G2核服务器安装ES 7X版本
服务器·elasticsearch·jenkins
jiuweiC21 小时前
常用es sql
大数据·sql·elasticsearch
武子康1 天前
大数据-143 ClickHouse 实战MergeTree 分区/TTL、物化视图、ALTER 与 system.parts 全流程示例
大数据·后端·nosql
Hello.Reader1 天前
用 Spark Shell 做交互式数据分析从入门到自包含应用
大数据·数据分析·spark
GeminiJM1 天前
优化Elasticsearch批量写入性能:从单分片瓶颈到多索引架构
elasticsearch·架构·jenkins
得物技术1 天前
大模型如何革新搜索相关性?智能升级让搜索更“懂你”|得物技术
算法·搜索引擎·排序算法