下载地址:下载中心 - Elastic 中文社区
依赖的jar包下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.28
依赖jdk8
logstash 配置文件修改,使其可以免重启自动加载配置文件:
config.reload.automatic: true
然后解压后,在任意目录下创建一个同步配置文件:logstash1.conf
input {
jdbc {
jdbc_driver_library => "G:/soft/logstash/logstash-7.9.3/mysql_connect_j/mysql-connector-java-8.0.28.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://rm-bp1839r311808b12hdo.mysql.rds.aliyuncs.com:3306/db_search_info_pre_release?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"
jdbc_user => "sd_dengtacj"
jdbc_password => "sd_dengtacj@2019"
schedule => "*/1 * * * *"
statement => "SELECT * FROM alg_words LIMIT 10"
use_column_value => true
tracking_column_type => "timestamp"
tracking_column => "update_time"
last_run_metadata_path => "syncpoint_table"
}
}
output {
elasticsearch {
hosts => ["47.98.151.121:9200"]
user => "elastic"
password => ""
index => "logstash_syn_test"
document_id => "%{id}"
}
stdout {
codec => json_lines
}
}
其中,input部分jdbc对应的参数说明:
jdbc_driver_library: jdbc mysql 驱动的路径,在上一步中已经下载
jdbc_driver_class: 驱动类的名字,mysql 填 com.mysql.jdbc.Driver 就好了
jdbc_connection_string: mysql 地址
jdbc_user: mysql 用户
jdbc_password: mysql 密码
schedule: 执行 sql 时机,类似 crontab 的调度
statement: 要执行的 sql,以 “:” 开头是定义的变量,可以通过 parameters 来设置变量,这里的 sql_last_value 是内置的变量,表示上一次 sql 执行中 update_time 的值,这里 update_time 条件是 >= 因为时间有可能相等,没有等号可能会漏掉一些增量
use_column_value: 使用递增列的值
tracking_column_type: 递增字段的类型,numeric 表示数值类型, timestamp 表示时间戳类型
tracking_column: 递增字段的名称,这里使用 update_time 这一列,这列的类型是 timestamp
last_run_metadata_path: 同步点文件,这个文件记录了上次的同步点,重启时会读取这个文件,这个文件可以手动修改
执行如下命令:logstash.bat -f *logstash.conf
效果如下: