这篇文章主要介绍了如何使用Logstash同步mysql数据到Elasticsearch(亲自踩坑),如果帮助到了大家,希望用你毛茸茸的小手点个赞🤗;如有错误或未考虑周全的地方,希望在评论区留言🫡
Logstash官方文档提供了解决方案
一. 安装Logstash
下载版本一定要和Elasticsearch版本一致(如Elasticsearch版本为7.10.2,那么对应下载的Logstash版本也要选择7.10.2 ! ! ! 说多了都是泪😭😭)下边是我们公司使用的ES版本,因此Logstash版本也要选择7.10.2
- 下载MySQL依赖包下载地址(作为java程序员,我相信你肯定不需要😎)
恭喜你🎉🎉🎉,到这你已经成功1/4啦,接下来我们要去创建ES索引以及MySQL表啦,加油⛽️
二.创建ES索引以及MySQL表
ps:创建过程略过…当然,既然你能搜到这篇文章,说明你也已经创建过了,那么,请直接跳到第三步
- ES索引结构
- MySQL表结构
mysql原始数据
恭喜你🎉🎉🎉,到这你已经成功2/4啦,接下来我们要去配置Logstash啦,加油⛽️
三. 配置Logstash
- 进入到 /logstash-7.10.2/bin目录下,创建 testlogstash.conf 文件,这是具体的配置
input {
stdin {
}
jdbc {
#===================这是你需要修改的第1个地方===============#
#数据库连接地址
jdbc_connection_string => "jdbc:mysql://localhost:3306/user_center?characterEncoding=UTF-8&autoReconnect=true"
jdbc_user => "root"
jdbc_password => "root"
# MySQL依赖包路径;
jdbc_driver_library => "/Users/chencunyou/Desktop/java/mysql/mysql-connector-java-8.0.27.jar"
#查询数据库语句(查询出的字段名要和es索引的字段名相同)
statement => "SELECT id,nick_name AS nickName,sex,birth_date AS birthDate,create_time AS createTime,update_time AS updateTime
FROM sys_user"
# 需要记录的字段,用于增量同步,需是数据库字段
tracking_column => "updateTime"
# record_last_run上次数据存放位置;
last_run_metadata_path => "/Users/chencunyou/Desktop/java/logstash-8.9.2/data/last_time.txt"
#====================第1个地方修改结束