elasticsearch5.6.0 logstash数据导入工具

313 阅读1分钟

最近因业务需求,需要一个能装十亿数据量以上的数据库,外加快速查询;

首先看到了elasticsearch;

需注意:

1、ES5*以上版本需要jdk1.8

2、5以上版本安装head需要安装node和grunt

安装logstash

前提:安装下载ruby,准备oracle-jdbc包

解压logstash压缩包,解压后,要下载安装logstash的插件logstash-input-jdbc;

执行安装命令./logstash-plugin.bat install logstash-input-jdbc

静等一会儿,成功之后提示如下


在logstash/bin文件夹下建立一个文件夹,名字你可随便起,先命名为logstash_jdbc_test,创建两个文件jdbc.conf,ql_xz.sql(导入ql_xz表);

Jdbc.conf 文件如下:

input {     
    stdin {     }     
        jdbc {       # 数据库       
            jdbc_connection_string =>  "jdbc:oracle:thin:@localhost:1521/orcl"       
            # 用户名密码       
            jdbc_user => "bdck"       
            jdbc_password => "salis"       
            # jar包的位置       
            jdbc_driver_library => "D:\Elasticsearch\ojdbc6.jar"       
            # mysql的Driver       j
            dbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"       
            jdbc_paging_enabled => "true"       
            jdbc_page_size => "50000"       
            statement_filepath => "D:\Elasticsearch\logstash-5.6.2\bin\logstash_jdbc_test\ql_xz.sql"       
            #statement => "SELECT t.yhm,t.xm,t.mm,t.ssjgdm,t.ssjgmc,t.id from bdck.users t"       
            schedule => "* * * * *"       
            #索引的类型       
            type => "ql_xz"     
            } 
        }   
    filter {     
        json {         
            source => "message"         
            remove_field => ["message"]     
                } 
            }   
    output { 
        elasticsearch { 
            hosts => "localhost:9200" 
            # index名 
            index => "bdck" 
            # 需要关联的数据库中有有一个id字段,对应索引的id号 document_id => "%{qlid}" 
            }     
        stdout {
             codec => json_lines     
                } 
        }

ql_xz表:

SELECT * from bdck.bdcs_ql_xz t

完成后,启动/bin下启动文件,./logstash.bat -f./logstash_jdbc_test/jdbc.conf 即可进行数据导入;