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

目录(?)[+]

本文主要实现将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实时同步深入详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值