美文网首页
#3 实现Mongodb和elasticsearch间的数据同步

#3 实现Mongodb和elasticsearch间的数据同步

作者: 平仄_pingze | 来源:发表于2018-06-30 13:33 被阅读271次

上文中,使用Logstash从Mongodb导入数据到elasticsearch,实际上是定时从mongo中获取新数据写入es。如果在mongo中更新或删除数据,es中是不会跟着变化的。
我们需要实现mongo和es的数据同步,才能保障查询的正确性。以下是一些方案:

1、使用Logstash,设置每次从头开始同步
优点:简单。
缺点:大量的冗余数据传输,实时性差,仅适用于少量数据。

2、使用mongo-connector(python)
库文档:https://pypi.org/project/mongo-connector/
mongo-connect是Python的一个库,它通过读取mongo的oplog,来监控mongo数据变化,保证更新、删除操作可以同步到es。
优点:无需写代码
缺点:必须以replica形式部署mongo,副本集必须复制一份数据,占用空间。副本集会整个同步到es,数据冗余。

3、自己写代码同步
同步mongo到elastic,主要分四个部分。
1、历史数据导入es
2、增加新数据时同步到es
3、更新数据时同步到es
4、删除数据时同步到es
其中1、2可通过脚本或logstash实现,2、3、4可以为mongo操作函数绑定装饰器,通过http方式同步数据到es。
缺点:需要写代码。从代码外对mongodb的操作不能被同步。
优点:定制性强,易于控制

相关文章

网友评论

      本文标题:#3 实现Mongodb和elasticsearch间的数据同步

      本文链接:https://www.haomeiwen.com/subject/cdytuftx.html