将elasticsearch索引与数据库记录进行比较以确定不一致状态的工具

时间:2014-02-26 07:33:32

标签: elasticsearch

  

我想知道是否有任何工具可用于将数据库条目与弹性纤维索引进行比较以找出不匹配。

提前致谢。

2 个答案:

答案 0 :(得分:3)

有一种方法可以使用Scrutineer工具执行此操作,该工具支持将存储在Elasticsearch中的数据与真实来源(通常是关系数据库)进行比较。

运行此工具后,您将收到以下报告:

  • 记录真相来源而不是ES(错过创造)
  • ES中的记录而不是真相来源(错过删除)
  • ES中的记录和不同步的真实来源(错过更新)

基本上,这将为您提供您正在比较的两个数据存储(/ ES + DB)的解除/同步状态的准确概述。

答案 1 :(得分:1)

我不相信,这有可能成为一项非常繁重的操作。但是,如果您使用数据库中的唯一PK作为弹性搜索中文档的_id,那么您可以在迭代记录时使用以下命令 -

curl -XHEAD -i 'http://localhost:9200/twitter/tweet/1'

这将返回关于文档是否存在的适当响应。在您自己的定制脚本或应用程序中存储所有不存在的_id并将它们放入ElasticSearch。

如果情况并非如此,则问题的复杂性会显着增加,而对集群的影响也会显着增加。