概述:
- mongo-connector工具在MongoDB与目标系统间同步数据,并跟踪MongoDB的oplog,保持操作与MongoDB的实时同步。
- mongo-connector工具是基于python开发的实时同步服务工具。它要求mongo运行在replica-set模式,且需要 elastic2_doc_manager将数据写入ES。
环境:
- Elasticsearch(6.4.2)
- Mongodb(3.63)
- python2.7.15。
- pip 管理工具。
- mongodb开启复制集(https://blog.youkuaiyun.com/oJueQiang123456/article/details/86555511)。
1、安装mongo-connector
pip install --user mongo-connector[elastic5]
2、安装elastic2-doc-manager
pip install --user elastic2-doc-manager[elastic5]
3、开启同步
# 进入mongo-connector目录 安装elastic2-doc-manager时会打印出来如:
The script mongo-connector is installed in '/Users/chenfenli/Library/Python/2.7/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
#进入mongo-connector
cd /Users/chenfenli/Library/Python/2.7/bin
# 同步
./mongo-connector -m 127.0.0.1:27017 -t 127.0.0.1:9200 -d elastic2_doc_manager &
- -m: mongodb的地址与端口,端口默认为27017。
- -t:ES的地址与端口,端口默认为9200。
- -d:doc manager的名称,2.x版本为: elastic2-doc-manager。
- -n:text.XXX 表示同步text库中的XXX表 默认表示同步全部库的全部表。
- -i:filed_name 待同步的字段,默认同步所有字段。
4、验证
# 对应ES中的index
rscopys:PRIMARY> use mongo_es_test
# 插入数据(users对应ES中的type)
db.users.insert({id:"1",name:"xiaozheng"})
5、重新同步
- 停止mongo_connector
- 删除oplog.timestamp
- 重启mongo_connector