标签:
背景:目前业务中有个数据库数据大道3亿左右。如果直接从数据库进行查询,等待时间超过15分钟,用户很多时候想查看数据,只能写SQL在数据库中直接查询喝几杯茶后,结果还没出来。用户看到我们项目中使用到ES集群,于是希望将数据库中的数据同步到ES集群中。
软件版本:logstash-2.2.2 ,Elasticsearch-2.2.1。
1 、安装logstash-input-mysql插件
./bin/logstash install logstash-input-jdbc-3.0.0.gem
2、配置文件
input { jdbc { jdbc_driver_library => "/software/logstash-2.2.2/jdbc/ojdbc6.jar" jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver" jdbc_connection_string => "jdbc:oracle:thin:@192.168.118.115:1521:orcl" jdbc_user => "system" jdbc_password => "Manager123" jdbc_page_size => 20 jdbc_fetch_size => 1000 jdbc_paging_enabled => true schedule => "0/5 * * * *" statement => "SELECT id,user_Name,terminal_id FROM OPERATION_LOG where id>= :sql_last_value order by user_id AND
operation_time <:sql_last_value + 1000000
clean_run => false record_last_run => true use_column_value => true tracking_column => user_id last_run_metadata_path => "/software/logstash-2.2.2/logstash_jdbc_last_oracle_run" } } output { stdout{ codec=>rubydebug{} } elasticsearch{ index=>”julong-%{+yyyy.MM.dd}” hosts=>”10.64.252.104:9200” } }
说明:用户数据库中主键ID为自增长类型。
至此,配置已经完成。数据入到ES 后,在单个包含7000W+ 数据中查询,0.3秒左右便能查出结果。
转载请标明出处!
标签:
原文地址:http://www.cnblogs.com/tyb1222/p/5455638.html