Amazon web services ElasticSearch-如何切换别名以使用新数据重建数据索引?
基本上,我想做的是用最短的停机时间用新数据重建ES群集。经过一些研究,我意识到可以使用Amazon web services ElasticSearch-如何切换别名以使用新数据重建数据索引?,amazon-web-services,elasticsearch,amazon-elastic-beanstalk,aws-elasticsearch,Amazon Web Services,elasticsearch,Amazon Elastic Beanstalk,Aws Elasticsearch,基本上,我想做的是用最短的停机时间用新数据重建ES群集。经过一些研究,我意识到可以使用alias来完成,但我不能100%确定确切的动作流程 假设我在ES中有一个索引,test1,这个索引有alias1和一堆数据 {“index”:“test1”,“alias”:“alias1”} 我想用新索引创建一个新别名,并用新数据重建索引 “操作”:[{“添加”:{“索引”:“测试2”,“别名”:“别名2”}] 在新别名中完成重建后,在原始索引中切换别名 “操作”:[{“添加”:{“索引”:“测试1”,“别
alias
来完成,但我不能100%确定确切的动作流程
test1
,这个索引有alias1
和一堆数据test1
现在从新别名开始索引/查询remove
操作是否硬删除旧别名中的数据,alias1
?Devon
Elastic的\u alias
中的操作
允许您传递所有要执行的操作的数组
以下是我的意见/建议:
- 不需要创建
<代码>别名就像“指针”别名2
- 删除
不会删除相关的别名
/数据索引
- 从
别名中删除
不会删除关联的索引
/数据索引
- 您可以在同一查询中传递
和添加
操作,这样您就不会有任何停机时间删除
- 在这里,您忘记将
添加到test2
中,这将由您的Web服务/kibana/任何东西使用alias1
curl -XPOST ${esUrl}/_aliases -d '{"actions":[{"remove" : {"index" : "*", "alias" : "${aliasName}"}},{"add" : { "index" : "${newIndex}", "alias" : "${aliasName}" }}]}'
我认为有一些误解。我试图做的是使用相同的索引名并更改指向其他数据集的指针。现有代码一直在访问
test1
,因此我认为test1
应该指向另一个别名。如果我错了,请更正。索引对应于数据集。因此,如果您想对数据有一个新的视图,您应该只使用一个别名,它指向最新的索引。在t0,您的Web服务应该使用alias1,它指向index1,在t1,alias1应该指向index2。别名只是允许访问特定索引的元数据(快捷方式)(当索引超过1个时,通过联合)。