您的位置:首页 > 数据库 > Mongodb

Elasticsearch中的索引数据Index同步到Mongodb中的集合collection中

2018-01-11 16:53 856 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。转载请务必加上原作者:铭毅天下,原博客地址:http://blog.csdn.net/laoyang360

目录(?)[+]

本文主要实现将Elasticsearch中的索引数据Index同步到Mongodb中的集合collection中。


0、前提

1)已经安装好源数据库:elasticsearch V2.X; 

2)已经安装好目的数据库:Mongodb; 

3)已经安装好logstash及相关插件logstash-output-mongodb

Google、Statckoverflow上充斥着mongdb到elasticsearch同步的文章和问题,而反过来,elasticsearch到mongodb同步的操作做的少之又少。 

这也说明了,好的架构设计应该是源数据存储在Mongodb,需要全文检索的时候再同步到ES中进行检索。

但是很显然logstash-out-mongodb插件的用途便是向mongodb写入数据,自然想到将input设置为ES的地址和索引信息即可。


1、同步conf配置详解

[root@la logstash_output_mongo]# cat mongo_out.conf
input {
stdin {
}
elasticsearch {
‘#ESIP地址与端口
hosts => "100.10.1.35:9200"
’#ES索引名称(自己定义的)
index => "weibo"
’#自增ID编号
’# document_id => "%{id}"
’#定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
’#schedule => "* * * * *"
’#设定ES索引类型
type => "message"
}
}

filter {
json {
source => "message"
remove_field => ["message"]
}
}

'#目标mongodb地址信息
output {
stdout { codec => rubydebug }
mongodb {
’#目标mongodb集合
collection => "weibo"
’#目标库名称
database => "data"
uri => "mongodb://100.20.12.45:27017"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36


2、小结

以上实现了ES中的一个索引Index 与 Mongodb中的一个集合collection之间的全量同步操作。 

全量的实现:通过配置源input、目标output地址信息; 

增量的实现:待验证。 

同步的时候,无需在mongodb做任何操作,同步后,既可以在mongodb的windows客户端:Robomongo看到同步后新增的集合collection。


3、反过来ES到Mongo如何同步?

详见:mongo-connector实现MongoDB与elasticsearch实时同步深入详解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐