elasticsearch提供river这个模块来读取数据源中的数据到es中,es官方有提供couchDB的同步插件,因为项目用到的是mongodb,所以在找mongodb方面的同步插件,在git上找到了elasticsearch-river-mongodb。
这个插件最初是由aparo写的,最开始的功能就是读取mongodb里面的表,记录最后一条数据的id,根据时间间隔不断访问mongodb,看看有没有大于之前记录的id的数据,有的话就索引数据,这种做法的缺点就是只能同步最新的数据,修改或删除的就不能同步。后来又由richardwilly98等人修改成通过读取mongodb的oplog来同步数据。因为mongodb是通过oplog这个表来使集群中的不同机器数据同步的,这样做的话可以保证es里面的数据和mongodb里面的是一样的,因为mongodb中的数据一有改变,都会通过oplog反映到monogodb中。他们还添加了个索引mongodb gridfs里文件的功能,非常好。
但他们修改完后的插件还是有些不满意的地方。他把local库(放oplog的)和普通库的访问密码都设置成同一个,如果local库和普通库的用户名和密码不同那这个插件就不能用了。还有一个就是同步时会把mongodb的表中所有的字段都同步过去,但是有些字段我们并不想把它放到索引中,于是对这个插件再作修改,把local库和普通库的鉴权分开,添加可选字段功能。
运行环境:Elasticsearch 0.19.X
集群环境下的MongoDB 2.X
注意:该插件只支持集群环境下的mongodb,因为集群环境下的mongodb才有oplog这个表。
安装方法:
安装elasticsearch-mapper-attachments插件(用于索引gridfs里的文件)
%ES_HOME%\bin\plugin.bat -install elasticsearch/elasticsearch-mapper-attachments/1.4.0
安装elasticsearch-river-mongodb(同步插件)
%ES_HOME%\bin\plugin.bat -install laigood/elasticsearch-river-mongodb/laigoodv1.0.0
创建river方法:
curl方式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ curl -XPUT "localhost:9200/_river/mongodb/_meta" -d ' { type: "mongodb", mongodb: { db: "test", host: "localhost", port: "27017", collection: "testdb", fields:"title,content", gridfs: "true", local_db_user: "admin", local_db_password:"admin", db_user: "user", db_password:"password" }, index: { name: "test", type: "type", bulk_size: "1000", bulk_timeout: "30" } } |
db为同步的数据库名,
host mongodb的ip地址(默认为localhost),
port mongodb的端口,
collection 要同步的表名
fields 要同步的字段名(用逗号隔开,默认全部)
gridfs 是否是gridfs文件(如果collection是gridfs的话就设置成true)
local_db_user local数据库的用户名(没有的话不用写)
local_db_password local数据库的密码(没有的话不用写)
db_user 要同步%
相关推荐
Linux安装ElasticSearch与MongoDB分布式集群环境下数据同步
同步MongoDB数据到ElasticSearch,支持全量同步、增量同步、实时同步,支持全操作,支持中间数据处理
用于Meteor的ElasticSearch和MongoDB同步软件包。 它有什么作用? elasticsearch-sync软件包使您的mongoDB集合和弹性搜索集群保持同步。 它通过拖尾mongo oplog并将所有杂项操作复制到弹性搜索集群中而没有任何开销...
用来实现 mongodb 和 elasticsearch 数据同步和增量更新的小程序
Mongodb-Elasticsearch 数据同步工具,支持Mongodb到elasticsearch、Mongodb到数据库、Mongodb到kafka、Mongodb到excel文件、Mongodb到文本文件以及Mongodb到ftp/sftp文件数据采集、上报;支持海量PB级数据同步导入...
使用Python2.7.14,Mongodb3.6.2,Elsticsearch2.4.5,操作系统是win10 64位操作系统;亲测可用
用于节点的MongoDB和ElasticSearch同步模块(支持附件同步) 支持一对一和一对多关系。 中文文档- 一对一-一个mongodb集合到一个elasticsearch索引 一对多-一个mongodb集合到一台Elasticsearch服务器的多个索引...
实现功能 利用Scrapy框架和Xpath解析网页信息并抓取 Scrapy-redis实现分布式 分页抓取并存储到Mongodb数据库 使用Crawlera和随机UA突破反爬 通过elasticsearch同步Mongodb打造搜索引擎
分布式搜索elasticsearch java API 之(一)--- 与...分布式搜索elasticsearch java API 之(七)--- 与MongoDB同步数据 10 分布式搜索elasticsearch java API 之(八)--- 使用More like this实现基于内容的推荐 12
同步器:将数据从MySQL / MongoDB同步并处理到Elasticsearch / MySQL / Http / Kafka端点产品特点一致性目的最终一致性:使数据到达目的地订单问题:使数据按原样排列更新item(id1)将field1设置为1 ; 然后,更新...
mongodb-elasticsearch-connector 将 MongoDB 集合导出到 Elasticsearch 的 Python 脚本。用法所有配置选项都可以设置为命令行参数或环境变量。 至少必须设置collection和database 。 可以使用mongodb_elasticsearch...
一个go守护进程,它将mongodb实时同步到elasticsearch 版本6 此版本的monstache是为MongoDB 3.6+和Elasticsearch 7.0+设计的。 它使用了官方的MongoDB golang驱动程序和来自Olivere的社区支持的Elasticsearch...
同步在mongodb和elasticsearch之间同步数据
用于mongodb同步es驱动
mongo-connector工具创建一个从MongoDB簇到一个或多个目标系统的管道,目标系统包括:Solr,Elasticsearch,或MongoDB簇。 该工具在MongoDB与目标系统间同步数据,并跟踪MongoDB的oplog,保持操作与MongoDB的实时...
使用场景同步mongodb数据到异构存储,如:mongo -> elasticsearch业务cache刷新,如:redis中镜像数据监听数据变化,触发一些业务逻辑...现实原理实时读取oplog操作日志(副本集的复制靠的也是oplog),转化成相应的事件流...
在trapi v3.x上测试最新测试:v3.4.0该插件尚未在mongodb上进行测试开发此插件的目的是使用Strapi中的弹性搜索引擎来帮助应用程序开发过程 :memo: 目录 方案4 职能阿皮例子记录中作者 先决条件安装Elasticsearch- ...
* 后端脚本 磁力链接获取 磁力链接解析 入库 Mongodb 定时同步 Elasticsearch * 后端脚本 磁力链接获取 磁力链接解析 入库Mongodb 定时同步 Elasticsearch * @keenwon的node磁力搜索引擎的文章,感觉非常有意思,...
系统总览mongo-connector创建从MongoDB集群到一个或多个目标系统(例如Solr,Elasticsearch或另一个MongoDB集群)的管道。 它将MongoDB中的数据同步到目标,然后尾随MongoDB oplog,实时跟踪MongoDB中的操作。 上...
支持 Oracle、MySQL、SQL Server、Access、PostgreSQL、MongoDB、DB2、ES、SQLite、Firebird...等等,各种数据库都可同步。 ● 支持异构同步 既支持同构之间同步,如 Oracle 到 Oracle、MySQL 到 MySQL,又支持异构...