首页 > Mongodb > mongo-connector实现MongoDB与elasticsearch实时同步
2019
09-23

mongo-connector实现MongoDB与elasticsearch实时同步

引言:

验证表明:mongo-connector工具支持MongoDB与ES之间的实时增insert、删delete、改update操作。

对于历史数据,mongo-connector工具不能同步到ES中,根因是本身工具不支持(初步界定),还是没有这种场景,待查(进一步研究后再更新)。

1. mongo-connector 地址:

https://github.com/mongodb-labs/mongo-connector

2、 mongo-connector 工具简介

mongo-connector工具创建一个从MongoDB簇到一个或多个目标系统的管道,目标系统包括:Solr,Elasticsearch,或MongoDB簇。

该工具在MongoDB与目标系统间同步数据,并跟踪MongoDB的oplog,保持操作与MongoDB的实时同步。

该工具已经在python3.3+下进行验证。

mongo-connector工具是基于python开发的实时同步服务工具。它要求mongo运行在replica-set模式,且需要 elastic2_doc_manager将数据写入ES。

mongo-connector实现MongoDB与elasticsearch实时同步 - 第1张  | 技术人生-孙强

3、 elastic2-doc-manager 工具简介

这是Elastic2.x版本的文档管理器。对应Elastic1.x版本需要使用 elastic-doc-manager。

4、ES与MongoDB同步步骤:

(1)安装 mongo-connector。

pip install mongo-connector[elastic5]

(2)安装 elastic2-doc-manager。

pip install elastic2-doc-manager[elastic5]

  (3) 安装 MongoDB 与 ElasticSearch

      https://github.com/sunny5156/mongo-cluster-docker

      https://github.com/sunny5156/elasticsearch-head

(4)启动 mongo-connector

#启动
#1.命令行参数
 mongo-connector -m 190.168.3.156:30011 -t 190.168.3.156:9201 -d elastic2_doc_manager
#2.配置文件(推荐)
mongo-connector -c config/mongo_es_config.json

参数含义:

-m: mongodb的地址与端口,端口默认为27017。

-t:ES的地址与端口,端口默认为9200/9201。

-d:doc manager的名称,2.x版本为: elastic2-doc-manager。

json文件内容

{
  "mainAddress": "190.168.3.156:30011",
  "oplogFile": "/data/mongo-connector/oplog/oplog.timestamp",
  "logging": {
    "type": "file",
    "filename": "/data/mongo-connector/log/mongo-connector.log",
    "format": "%(asctime)s [%(levelname)s] %(name)s:%(lineno)d - %(message)s",
    "rotationWhen": "midnight",
    "rotationInterval": 1,
    "rotationBackups": 10
  },
  "docManagers": [
    {
      "docManager": "elastic2_doc_manager",
      "targetURL": "190.168.3.156:9201",
      "bulkSize": 1000,
      "autoCommitInterval": 5
    }
  ]
}

5. mongodb 写入数据

    正常写

mongo-connector实现MongoDB与elasticsearch实时同步 - 第2张  | 技术人生-孙强

6.es 查看数据

mongo-connector实现MongoDB与elasticsearch实时同步 - 第3张  | 技术人生-孙强

参见详细介绍:

https://docs.mongodb.com/manual/tutorial/deploy-replica-set/

Mongo与ES同步的5种方式:

https://www.linkedin.com/pulse/5-way-sync-data-from-mongodb-es-kai-hao

常见Bug:

How to setup a MongoDB replica set for the connector?

https://docs.mongodb.com/manual/tutorial/deploy-replica-set/

最后编辑:
作者:sunny5156
喜欢技术....

留下一个回复