ES连接MongoDB

需求出现原因

MongoDB擅长存储数据,Elasticsearch擅长对数据进行全文搜索。

同时需要两种工具的功能时,需要将数据从MongoDB批量迁移到Elasticsearch。

方法1:mongo-connector

img

mongo-connector

  • 产生:源于MongoDB mongo-labs项目。基于python开发。

  • 功能:

    创建从MongoDB集群到一个或多个目标系统(如Solr、Elasticsearch或另一个MongoDB集群)的管道,以将MongoDB中的数据同步到目标,然后通过跟踪MongoDB oplog,让目标系统实时跟踪保持MongoDB中的操作。

  • 优缺点:

    • 优点:已经编号的轻量程序,快速实现功能;不需要更改应用层业务代码
    • 缺点:因为后续同步需要oplog,因此MongoDB必须是复制集;不支持自定制功能;不支持应用层限速

elastic2-doc-manager

  • 产生:

    源于MongoDB mongo-labs项目。基于python开发。

    在mongo-connector 2.3 之前,Elastic 的 doc manager 是 mongo-connector的一部分,并且只支持 Elastic 1.x。在mongo-connector版本 2.3 及 2.3 之后,作为mongo-connector的一个插件包被使用。针对Elasticsearch 2.x 和 5.x 。

  • 功能:Elasticsearch 2.x 和 5.x 的文档管理器,用于向ES写入数据。

方法2:mongoosastic

img

  • 功能:使用Nodejs作为Web服务器容器时,Mongoosastic可以从MongoDB读取然后写入es的方式实现数据同步,实现双面存储。
  • 优缺点:
    • 优点:支持各种方式的自定义;可实现限速功能,避免将es打垮;数据可以同时存储在mongo和ES中
    • 缺点:需要修改已有的业务代码,实现方式复杂,不好实现全兼容;可能在CUD操作效率中引起开销;当一种类型的db存储失败时,可能会生成不一致的数据;服务器框架不够灵活,无法进行数据库迁移

方法3:elasticsearch-river-mongodb

img

  • 功能:

    River是Elasticsearch用于和数据库进行同步的插件。

    elasticsearch -river-mongodb 是 ES 用于同的mongoDB数据的插件,通过监视oplog实现。

方法4:Logstash

img

  • 功能:

    动态同步不同来源的数据,并将数据规范到目的服务器。

    Logstash工作的三个阶段:输入→过滤器→输出。

    • 输入:生成事件
    • 过滤器:修改事件
    • 输出:将事件发送到目的地

方式5:Transporter

img

  • 功能:

    由Compose(数据库的云平台)开发的开源工具。

    每次工作只同步一次。


参考文献

http://www.52devops.com/chuck/1427.html mongo-connector 的优缺点,mongo和ES连接的实现方式

https://zhuanlan.zhihu.com/p/26906652 mongo和ES连接的实现方式

https://github.com/yougov/mongo-connector mongo-connector - GitHub官方文档

https://github.com/yougov/elastic2-doc-manager elastic2-doc-manager - GitHub官方文档

https://github.com/yougov/mongo-connector/wiki/Usage with ElasticSearch mongo-connector用于ES - GitHub官方文档

https://code.likeagirl.io/5-different-ways-to-synchronize-data-from-mongodb-to-elasticsearch-d8456b83d44f MongoDB连接ElasticSearch的5中不同方式

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值