elasticsearch 如何实现Elasticsearch碎片大小的自动控制?
我有一个输入数据流(日志)存储在Elasticsearch中。我需要实现一个功能,不断检查碎片的大小,当它达到某一点(例如30GB)时,它将开始在新的碎片中存储数据 我是Elasticsearch的新手,我找不到任何关于如何做到这一点的信息。在这种情况下,是否需要为每个碎片创建新索引 我将感谢任何信息或链接。我正在使用Elasticsearch 6.0。您想使用,它应该适合您的需要 基本上是这样的。您需要有一个指向单个索引的别名,下面我们将使用别名创建一个索引elasticsearch 如何实现Elasticsearch碎片大小的自动控制?,elasticsearch,lucene,elasticsearch,Lucene,我有一个输入数据流(日志)存储在Elasticsearch中。我需要实现一个功能,不断检查碎片的大小,当它达到某一点(例如30GB)时,它将开始在新的碎片中存储数据 我是Elasticsearch的新手,我找不到任何关于如何做到这一点的信息。在这种情况下,是否需要为每个碎片创建新索引 我将感谢任何信息或链接。我正在使用Elasticsearch 6.0。您想使用,它应该适合您的需要 基本上是这样的。您需要有一个指向单个索引的别名,下面我们将使用别名创建一个索引myindex-000001 PUT
myindex-000001
PUT /myindex-000001
{
"aliases": {
"myalias": {}
}
}
然后需要创建一个滚动条件,如下所示:
POST /myalias/_rollover
{
"conditions": {
"max_size": "30gb"
}
}
每当
myalias
指向的索引大小达到30gb时,将创建名为myindex-000002
的新索引,别名将切换到该索引。因此,就您的客户端应用程序而言,您始终可以将数据发送到myalias
,其余部分由ES完成。好,这意味着每次都会创建一个新索引?有没有办法将条件应用于碎片而不是索引?这将允许在索引中存储更多的碎片。不,您不能在碎片上设置条件,因为碎片可以在合并操作过程中增大大小,而不必包含更多文档,所以这是没有意义的。