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这个文件进行压缩。

相关推荐
历程里程碑16 分钟前
Proto3 三大高级类型:Any、Oneof、Map 灵活解决复杂业务场景
java·大数据·开发语言·数据结构·elasticsearch·链表·搜索引擎
第二只羽毛24 分钟前
IO代码解释3
java·大数据·开发语言
wanhengidc38 分钟前
云手机与模拟器的关系
大数据·运维·服务器·分布式·智能手机
网络工程小王1 小时前
【Python数据分析基础】
大数据·数据库·人工智能·学习
CoderIsArt1 小时前
Sphinx
搜索引擎·全文检索·sphinx
方向研究2 小时前
尼龙66生产
大数据
Hello.Reader2 小时前
Pandas API on Spark 快速入门像写 Pandas 一样使用 Spark
大数据·spark·pandas
江瀚视野2 小时前
美丽田园经调净利大增41%,全方位增长未来何在?
大数据·人工智能
山峰哥2 小时前
索引设计失误让系统性能下降90%
大数据·服务器·数据库·oracle·性能优化
第二只羽毛3 小时前
C++ 高并发内存池2
大数据·开发语言·jvm·c++·c#