mongo同步数据到ElasticSearch的方式方法

MongoDB 数据同步到 ElasticSearch 的方式

参考 5 ways to synchronize data from MongoDb to ElasticSearch

技术 覆盖版本 维护情况 实现及使用方式 设计模式 同步方式 补偿机制 存在问题
Mongoosastic x.x 2018-10-16,800stars Node Module » Hook + HTTP 高耦合 Hook增量 - Model.remove 和 Model.update 数据未同步
transporter 5.x 2018-05-14,1000stars Go CLI Tool 低耦合 单次同步 - 仅能执行一次,无法自动完成同步
elasticsearch-river-mongodb 1.x 2016-03-22 Java,ES plugin 低耦合 增量 - 官方已关闭river方式
Jdbc input plugin x.x 官方组件 Logstash input filter 低耦合 增量+全量 追加定时全量 需要JDBC驱动程序支持,而mongo没有支持良好的JDBC驱动程序
mongo-connector 5.x 2018-12-06,1500stars Python CLI Tool » OpLog 低耦合 - - 基于OpLog
基于 mongo-oplog 自研 x.x 2018-09-17,400stars Node Module » Hook + HTTP 自定义 Hook增量 自研追加定时全量 基于OpLog,开发成本
基于 Mongoose 自研 x.x - Node service 自定义 增量轮询 自研追加定时全量 不利于Mongo高并发,占用mongo链接
基于 redis/MQ/Kafka x.x - Node service 低耦合 数据流 自研追加定时全量 改造成本大,需要在前置业务端拆解功能
  • Mongoosastic 数据同步说明
Auto indexing
Mongoosastic try to auto index documents in favor of mongoose's middleware feature.

Mongoosastic will auto index when document.save/Model.findOneAndUpdate/Model.insertMany/document.remove/Model.findOneAndRemove, but not include Model.remove/Model.update.

And you should have new: true options when findOneAndUpdate so that mongoosastic can get new values in post hook.
  • Oplog 方式说明

Oplog 在一定程序上侵入 DB (运维)边界和权限。
但此工具编写的目的是为了同步数据,亦是运维内部的一部分任务。
给每个 database 指定 user 权限,确保单点工具操作拥有对应权限的数据进行同步。

你可能感兴趣的:(运维)