最近因业务需求,需要一个能装十亿数据量以上的数据库,外加快速查询;
首先看到了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条数据