最近因业务需求,需要一个能装十亿数据量以上的数据库,外加快速查询;
首先看到了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 jdbc_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 即可进行数据导入;
速度并未完全知道,因为当天实验成功后,我就让电脑自动导入我下班了,第二天来已经导入好了;大概是250W条数据