首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止数据写入ES索引但允许别名更新

如何防止数据写入ES索引但允许别名更新
EN

Stack Overflow用户
提问于 2019-01-04 21:44:10
回答 1查看 292关注 0票数 0

我正在尝试设计一个过程,用零读取停机时间重新索引Elasticsearch索引,拒绝写入尝试,直到进程完成。

给定一个原始索引和指向它的别名,当前流如下所示:

  1. 创建一个分期索引
  2. 使原始索引只读
  3. 将数据从原始索引复制到暂存索引
  4. 使暂存索引只读
  5. 更新别名以指向暂存索引
  6. 重新创建原始索引
  7. 将数据从暂存索引复制到原始索引
  8. 更新别名以指向原始索引

问题是,要么关闭索引,要么用index.blocks.read_only=true使其只读,我就无法更新它的别名。

使索引只读对于确保任何试图写入数据的人都会得到错误并自行处理重试非常重要。

更新别名对于确保任何试图读取数据的人都能毫无问题地获得数据非常重要。

我怎样才能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-04 22:03:37

因此,有一个详细的备选方案,特别是对此:

index.blocks.write 设置为true可禁用对索引的数据写入操作。与read_only不同,此设置不影响元数据。例如,可以用写块关闭索引,但不能用read_only块关闭索引。

由于某些原因,我看到它比限制性更强的read_only选项少得多,但它非常适合这里。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54046501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档