解决ElasticSearch与Mysql的数据同步问题——Logstash
程序员文章站
2022-05-09 14:05:55
...
首先,什么是Logstash?
Logstash是一款轻量级的日志搜集处理框架,可以把分散的,多样化的日志搜集起来,并且自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。
如果我们令mysql与ES连接上,那么我们可以借助一个脚本连接器,去将它实现,而logstash也就实现了这一点,其原理,是从mysql中抽出数据,然后转换成es的表结构去add,基本原理就是这个意思,下面来说一下操作步骤和指令。
-
第一步,我们需要有一个和es版本相同的Logstash
https://www.elastic.co/cn/downloads/past-releases#logstash
安装包从这里找到就行了。 -
第二步,下载mysql jar包
https://mvnrepository.com/search?q=mysql
你的工程中mysql是什么版本就下载什么jar就行。 -
第三步,编写脚本
我们有了logstash之后,只需要解压缩就可以了,然后要放置conf配置文件,和bin同目录级别即可。
然后写脚本就行了。
input{
jdbc{
jdbc_connection_string => "jdbc:mysql://localhost:3306/tensquare_base?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT"
jdbc_user => "root"
jdbc_password => ""
jdbc_driver_library => "D:\\logstash-5.6.8\\mysqletc\\mysql-connector-java-5.1.46.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50"
statement => "select id, title,content,state from tb_article"
schedule => "* * * * *"
}
}
output{
elasticsearch {
hosts => "127.0.0.1:9200"
index => "tensquare_article"
document_id => "%{id}"
document_type => "article"
}
stdout{
codec => json_lines
}
}
- 第四步,开启ES服务之后启动logstash
然后我们就可以看见,sql中的数据被添加到了es的index中
推荐阅读
-
mysql主从同步导致数据同步异常的问题梳理
-
MySQL 与 Elasticsearch 数据不对称问题解决办法
-
Mysql5.7中使用group concat函数数据被截断的问题完美解决方法
-
Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法
-
解决mysql本地数据库不能用ip访问的问题
-
使用wordpress的$wpdb类读mysql数据库做ajax时出现的问题该如何解决
-
如何解决画面与声音不同步的问题
-
mysql数据库的多实例与主从同步。
-
mysql/Java服务端对emoji的支持与问题解决方法详解
-
Centos7下无法远程连接mysql数据库的原因与解决