Elasticsearch将多个索引中的数据合并到合并索引中

siv3szwd  于 2022-12-17  发布在  ElasticSearch
关注(0)|答案(1)|浏览(828)

我的公司使用一个开箱即用的软件,该软件将日志导出到Elasticsearch(并使用这些日志)。该软件每天为每种数据类型创建一个索引,例如:“A”记录数据=〉A_Data_2022_12_13,A_Data_2022_12_14等等..因为这种数据存储方法,我们的Elastic对于100 GB的数据有数千个碎片。我想将所有这些碎片合并为少量碎片,每种数据类型1或2个碎片。
我想过重新索引,但我认为这对我的目的来说是矫枉过正的,因为我希望数据保持和现在一样,只是合并到一个碎片中。
做这件事的最佳实践是什么?谢谢!
我试过reindex,但这需要很多时间,我认为这不是正确的解决方案。

omhiaaxx

omhiaaxx1#

碎片太多会导致堆使用过度。碎片不平衡会导致集群中出现热点。您的决定是正确的,您应该将小索引合并为一个或多个索引。这样,您将拥有更稳定的碎片,也就是更稳定的集群。
你能做什么?
1.创建一个滚动索引,并将索引器指向该索引。这样,新数据将存储在新索引中,因此您只需关注现有数据。
1.使用filtered alias搜索您的数据。
1.重新索引或等待。新数据将被索引到一个新的索引中,但是你要对现有索引做什么呢?有两种方法。我假设你有一个索引保留期,所以你可以等待直到所有分离的索引被删除,或者你可以直接重新索引你的数据。
注意:您可以对切片执行tune the reindex speed,并将number_of_replica设置为0。

相关问题