基本上我想做的是用最小的停机时间用新数据重建ES集群。经过一些研究,我意识到可以使用别名
来完成,但我不能100%确定确切的操作流程。
test1
在我的ES,这个索引有alias1
和一堆数据{"index":"test1","alias":"alias1"}
"操作" : [{ "添加" : { "index":"test2","alias":"alias2"}}]
"操作" : [{ "添加" : { "index":"test1","alias":"alias2"}}]
"操作" : [{ "删除" : { "index":"test1","alias":"alias1"}}]
"操作" : [{ "remove_index" : { "索引":"test2"}}]
=========================================================================
Q1这是重建/交换索引中数据的正确方法吗?
Q2.删除
操作是否硬删除旧别名alias1
中的数据?
德文,
Elastic的_alias
中的action
允许您传递要执行的所有操作的数组。
以下是我的意见/建议:
别名2
。别名
就像“指针”。别名
不会删除关联的索引
/data别名
中删除索引
不会删除关联的索引
/dataadd
和删除
操作,这样您就不会有任何停机时间test2
添加到alias1
中,您的webservice/kibana/任何查询示例:
curl -XPOST ${esUrl}/_aliases -d '{"actions":[{"remove" : {"index" : "*", "alias" : "${aliasName}"}},{"add" : { "index" : "${newIndex}", "alias" : "${aliasName}" }}]}'