我有一个Oracle数据库。 Logstash从Oracle检索数据,并将其放入ElasticSearch。

但是,当Logstash每5分钟进行计划的导出时,填充了副本的ElasticSearch会导致旧数据仍然存在。这是一个明显的情况。在这5分钟内,Oracle的状况几乎没有改变。假设-添加了2-3行,而删除了4-5行。

我们如何用无副本的新数据替换旧数据?

例如:

最佳答案

这很容易:为每个导入创建一个新索引并应用映射,然后将别名切换到最新索引。如果需要,请删除旧索引。您的currenr数据将在索引最新数据时始终可搜索。

以下是您可能需要阅读的资源:

  • 在elasticsearch中进行搜索时,请使用别名(https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html)指向最新数据(顺便说一句,最好使用别名)。
  • 使用过渡api(https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-rollover-index.html)为每次导入运行创建一个新索引-在此处也请注意别名处理。
  • 使用索引模板(https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html)自动为新创建的索引应用映射/设置。
  • 缩小,关闭和/或删除旧索引,以保持集群真正需要的数据处理。看一下策展人(https://github.com/elastic/curator)作为独立工具。
  • 关于elasticsearch - 如何使Logstash替换旧数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53525472/

    10-11 09:17