logstash增量同步mysql数据到es
发布日期:2021-08-13 07:45:07 浏览次数:4 分类:技术文章

本文共 1716 字,大约阅读时间需要 5 分钟。

本篇本章地址:https://www.cnblogs.com/Thehorse/p/11601013.html

今天我们来讲一下logstash同步mysql数据到es

 

我认为呢,logstash是众多同步mysql数据到es的插件中,最稳定并且最容易配置的一个。

 

input {

stdin {
}
jdbc {
type => "xxx"
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/yinhelaowu"
jdbc_user => "root"
jdbc_password => "root"
jdbc_driver_library => "mysql1/mysql-connector-java-5.1.17-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => true
jdbc_page_size => "500"
record_last_run => true
use_column_value => true
tracking_column => "id"
last_run_metadata_path => "mysql1/jdbc1"
clean_run => "false"

statement_filepath => "mysql1/jdbc.sql"
schedule => "* * * * *"
clean_run => false
}
}

 

我来讲一下这些属性的作用,像type这个 主要是为了声明这个jdbc{} 这个处理对象的,type可以定义任意值,

jdbc_connection_string ,这个是数据库地址 还有用户名密码

jdbc_driver_library,logstash是需要使用jdbc来连接mysql的,并且使用logstash必须配置java环境,jdk1.8以上

jdbc_driver_class给本次连接起名 statement_filepath 这个是执行的sql语句 

 schedule 是表示多长时间同步一下数据 如果是******表示一分钟同步一次

last_run_metadata_path这个会记录你最后一次同步数据的一些值,比如你可以记录创建时间,和自增的id,

type索引类型

clean_run 是否清楚执行过的数据

 

到了下边

#这是输出流

output {
#这个type是上面jdbc的type,有了这个if就可以进行批处理 if [type]=="TInquiryInfo"{ elasticsearch {     #这边的端口一定是9200,java中使用的端口是9300这边不要弄混了 hosts => ["localhost:9200"] # 索引名称 index => "ca-inquiry" # type名称 document_type => "TInquiryInfo" # 文档id,inquiryId为sql文件中查询出的字段名 document_id => "%{inquiryId}" } } } 下面是执行的sql写法

SELECT c.*,CONCAT(CONCAT(c.lat,','),c.lng) AS location,u.`praise`,u.`age`,u.`area_id` FROM zsf_carftsmanship c

LEFT JOIN zsf_user u ON c.user_id = u.`id` WHERE c.id > :sql_last_value

像elasticsearch这种大数据量查询,多表关联查询无疑对性能有很大的冲击,所以这边我直接做了关联查询

这样的话可以大大提高es的查询性能,这个:sql_last_value是last_run_metadata_path中记录的值

 

 

 

转载于:https://www.cnblogs.com/Thehorse/p/11601013.html

转载地址:https://blog.csdn.net/weixin_30679823/article/details/101814765 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:islider.js轮播图
下一篇:AutoMapper 9.0的改造

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月20日 13时50分27秒