如何实现Elasticsearch分片大小的自动转向?

时间:2018-02-19 10:36:48

标签: elasticsearch lucene

我有一个存储在Elasticsearch中的传入数据(日志)流。我需要实现一个连续检查分片大小的功能,当它到达某个特定点(例如30GB)时,它将开始在新分片中存储数据。

我是Elasticsearch的新手,我找不到任何有关如何操作的信息。在这种情况下,我是否需要为每个分片创建一个新索引?

我将不胜感激任何信息或链接。我正在使用Elasticsearch 6.0。

1 个答案:

答案 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会完成剩下的工作。