运维开发网

MongoDB——mongo-connector实例使用(for elasticsearch)

运维开发网 https://www.qedev.com 2020-03-18 17:20 出处:网络 作者:运维开发网整理
声明使用版本: MongoDB         version 3.0.4 ElasticSearch   version 1.6.0 Python             version 2.7.10 使用其自带的pip 安装 Mongo-connector MongoDB同步数据到ElasticSearch (1)首先确保database---> index  collection----->

声明使用版本:

MongoDB         version 3.0.4

ElasticSearch   version 1.6.0

Python             version 2.7.10 使用其自带的pip 安装 Mongo-connector

MongoDB同步数据到ElasticSearch

(1)首先确保database---> index  collection----->type 要同步的数据集合名称及所在 的database相同

1.1 Mongo Connector gives each MongoDB database its own index in Elasticsearch. Each MongoDB collection becomes its own mapping type. For example, documents from the collection kittens in the database animals will put into the animals index in Elasticsearch with a mapping type of kittens

1.2 当然除了提前创建好对应的index和type的方式,也可以让ES自动创建

需要make sure that action.auto_create_index is set to true in your elasticsearch.yml.

1.3 如果存在空间数据类型  Please refer to the Elasticsearch documentation on setting up geospatial mapping types for points and shapes.需要提前设置mapping中该字段的类型为point或是shape类型,否则自动同步自动mapping无法侦测到空间字段类型,从而可能导致空间数据操作失败。

(2)由于mongo-connector原理是使用 MongoDB的操作日志oplog,所以必须配置Mongodb为副本集模式

mongo-connector replicates operations from the MongoDB oplog, so areplica set must be running before startup. For development purposes, you may find it convenient to run a one-node replica set

接下来是操作步骤:

 mongodb副本集模式配置

1.关闭运行的mongodb服务(net stop MongoDB)

2.创建mongodb实例(如下就创建一个名为rs0,端口为27017的实例)

    mongod --port 27017 --dbpath "D:\mongo\data" --replSet rs0

3.打开mongo.exe,启动一个新的副本集

     rs.initiate()

MongoDB——mongo-connector实例使用(for elasticsearch)

初始化后,就启动了一个mongodb副本集实例,在查看local下面的collections,发现其中多了oplog.rs集合

MongoDB——mongo-connector实例使用(for elasticsearch)

4.查看状态和副本集的配置

    rs.status()    

MongoDB——mongo-connector实例使用(for elasticsearch)

    rs.conf()

MongoDB——mongo-connector实例使用(for elasticsearch)

5.可以使用add方法添加副本集的成员

    rs.add(HOST_NAME:PORT)

6.判断当前运行的mongodb服务是否为主节点

    db.isMaster()

MongoDB——mongo-connector实例使用(for elasticsearch)

mongo-connector安装

pip install  elastic-doc-manager(for ES1.X)

pip install  elastic2_doc_manager(for ES2.X)

pip install mongo-connector

mongo-connector 配置

mongo-connector  --auto-commit-interval=0 -m 192.168.1.180:27017 -t 192.168.1.180:9200 -d elastic_doc_manager 

由于采用的单机使用127.0.0.1

mongo-connector  --auto-commit-interval=0 -m 127.0.0.1:27017 -t  127.0.0.1:9200 -d elastic_doc_manager 

MongoDB——mongo-connector实例使用(for elasticsearch)

测试同步

mongdb插入数据

MongoDB——mongo-connector实例使用(for elasticsearch)

db.col_02.insert({name:"renzhengfei", birth:"1954-03-21", sex:"man", company:"huawei"});

测试成功

MongoDB——mongo-connector实例使用(for elasticsearch)

参考:https://github.com/mongodb-labs/mongo-connector/wiki/Usage%20with%20ElasticSearch            https://github.com/mongodb-labs/mongo-connector/wiki/Writing-Your-Own-DocManager

mongo-connector 2.0之后支持MongoDB中存储在GridFS中的大文件,具体步骤查看上面的参考链接1 同时我们可以扩展docManager 建立自定义docmanage,具体步骤查看上面的参考链接2

0

精彩评论

暂无评论...
验证码 换一张
取 消