我有一个存储在Elasticsearch中的传入数据(日志)流。我需要实现一个连续检查分片大小的功能,当它到达某个特定点(例如30GB)时,它将开始在新分片中存储数据。
我是Elasticsearch的新手,我找不到任何有关如何操作的信息。在这种情况下,我是否需要为每个分片创建一个新索引?
我将不胜感激任何信息或链接。我正在使用Elasticsearch 6.0。
答案 0 :(得分:1)
您想使用符合您需要的Rollover Index API。
它基本上是这样的。你需要有一个指向单个索引的别名,我们在下面创建一个带有别名myindex-000001
myalias
PUT /myindex-000001
{
"aliases": {
"myalias": {}
}
}
然后你需要创建一个翻转条件,如下所示:
POST /myalias/_rollover
{
"conditions": {
"max_size": "30gb"
}
}
每当myalias
指向的索引大小达到30gb时,将创建一个名为myindex-000002
的新索引,别名将切换到它。因此,就您的客户端应用程序而言,您始终可以将数据发送到myalias
,ES会完成剩下的工作。