zoukankan      html  css  js  c++  java
  • logstash-out-mongodb实现elasticsearch到Mongodb的数据同步

    本文主要实现将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"
      }
    }

    2、小结

    以上实现了ES中的一个索引Index 与 Mongodb中的一个集合collection之间的全量同步操作。 
    全量的实现:通过配置源input、目标output地址信息; 
    增量的实现:待验证。 
    同步的时候,无需在mongodb做任何操作,同步后,既可以在mongodb的windows客户端:Robomongo看到同步后新增的集合collection。

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

    详见:mongo-connector实现MongoDB与elasticsearch实时同步深入详解

  • 相关阅读:
    pku3734Blocks
    STLmultiset
    zoj 2744
    EXCEL vba 插入图片的大小裁剪尺寸移动和旋转的设置和指定
    C# WinForm下Excel导入导出
    日期格式校验
    vb获取目录下所有文件夹名称的方法
    批量 生成 word 多线程
    Java中验证日期时间格式
    递归绑定树形菜单
  • 原文地址:https://www.cnblogs.com/a-du/p/7612704.html
Copyright © 2011-2022 走看看