嘿~ 今天天气不错嘛

单索引大数据量,如何优化?

Elasticsearch | 作者 wssmao | 发布于2019年01月01日 | 阅读数:3922

单索引当前已经存储1.5亿多文档,3节点5分片1副本,每个分片20G多。有定期删除老数据,但是预计在删除老数据前,可能最大存储文档达到24亿多。
当前想到的解决方案:
1、根据预估的最大24亿最大文档,对当前资源进行扩容。
但是根据之前的数据计算,应该如何合理分配分片?如何计算需要扩容几个节点满足要求?
2、使用rollover根据条件,索引太大后,写入数据切换至新索引,但是查询数据还是对全部索引进行查询。
这样可能是多索引,每个索引5分片1副本。
 
现在疑惑是哪种方案更合理?个人倾向于方案2,比较扩容也是需要成本。
但是方案2后续索引增加,分片增加后,每次查询是设置查询别名指向所有索引,这样查询性能是不是也会持续下降?
 
 
已邀请:

rochy - rochy_he

赞同来自:

这个推荐先在搜索压力小的时段对索引进行一次 ForceMerge,这样会之前已经删除的文档进行真正删除操作;
此外,如果搜索压力大的化,可以多增加一个副本,这样副本也可以分担搜索的压力;
 
如果希望多个索引分担压力,可以使用别名,别名可以指定多个索引的某一个索引是可以写入数据的;
搜索的时候是全部索引一起搜索

要回复问题请先登录注册