MySQL数据库
Driver ="path/to/jdbc-drivers/mysql-connector-java-5.1.35-bin.jar" //驱动程序
Class ="com.mysql.jdbc.Driver";
URL ="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name为数据库名
SQL server数据库
Driver ="path/to/jdbc-drivers/sqljdbc4.jar"
Class ="com.microsoft.jdbc.sqlserver.SQLServerDriver";
URL ="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名
Oracle数据库
Driver ="path/to/jdbc-drivers/ojdbc6-12.1.0.2.jar"
Class ="oracle.jdbc.driver.OracleDriver";
URL ="jdbc:oracle:thin:@loaclhost:1521:orcl"; //orcl为数据库的SID
DB2数据库
//连接具有DB2客户端的Provider实例
Driver ="path/to/jdbc-drivers/jt400.jar"
Class ="com.ibm.db2.jdbc.app.DB2.Driver";
URL ="jdbc:db2://localhost:5000/db_name"; //db_name为数据可名
PostgreSQL数据库
Driver ="path/to/jdbc-drivers/postgresql-9.4.1201.jdbc4.jar"
Class ="org.postgresql.Driver"; //连接数据库的方法
URL ="jdbc:postgresql://localhost/db_name"; //db_name为数据可名
本文主要实现将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。