elasticsearch,amazon-elastic-beanstalk,aws-elasticsearch,Amazon Web Services,elasticsearch,Amazon Elastic Beanstalk,Aws Elasticsearch" /> elasticsearch,amazon-elastic-beanstalk,aws-elasticsearch,Amazon Web Services,elasticsearch,Amazon Elastic Beanstalk,Aws Elasticsearch" />

Amazon web services ElasticSearch-如何切换别名以使用新数据重建数据索引?

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”,“别

基本上,我想做的是用最短的停机时间用新数据重建ES群集。经过一些研究,我意识到可以使用
alias
来完成,但我不能100%确定确切的动作流程

  • 假设我在ES中有一个索引,
    test1
    ,这个索引有
    alias1
    和一堆数据
  • {“index”:“test1”,“alias”:“alias1”}

  • 我想用新索引创建一个新别名,并用新数据重建索引
  • “操作”:[{“添加”:{“索引”:“测试2”,“别名”:“别名2”}]

  • 在新别名中完成重建后,在原始索引中切换别名
  • “操作”:[{“添加”:{“索引”:“测试1”,“别名”:“别名2”}]

    “操作”:[{“删除”:{“索引”:“测试1”,“别名”:“别名1”}]

    “操作”:[{“删除索引”:{“索引”:“测试2”}]

  • 然后索引
    test1
    现在从新别名开始索引/查询
  • =========================================================================

    问题1。这是重建/交换索引中数据的正确方法吗

    问题2。
    remove
    操作是否硬删除旧别名中的数据,
    alias1

    Devon

    Elastic的
    \u alias
    中的
    操作
    允许您传递所有要执行的操作的数组

    以下是我的意见/建议:

    • 不需要创建
      别名2
      <代码>别名就像“指针”
    • 删除
      别名
      不会删除相关的
      索引
      /数据
    • 别名中删除
      索引
      不会删除关联的
      索引
      /数据
    • 您可以在同一查询中传递
      添加
      删除
      操作,这样您就不会有任何停机时间
    • 在这里,您忘记将
      test2
      添加到
      alias1
      中,这将由您的Web服务/kibana/任何东西使用
    查询示例:

    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个时,通过联合)。