主要思路是通过logstash-input-jdbc,并不是实时同步,准实时(通过schedule进行捞取)
原理: 通过SQL语句(相对BIN LOG同步可以写较复杂的SQL)进行全量和增量同步
注意点:
增量同步的坑,需要有更新时间,不好做删除,可能需要做逻辑删除(即更新记录)。
更新时间需要做索引。
步骤
1.安装es
2.安装logstash
安装es对应的版本:
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.3.zip
unzip logstash-6.2.3.zip && cd logstash-6.2.3
3.安装logstash-input-jdbc
logstash-plugin install logstash-input-jdbc
4.配置logstash-input-jdbc
新建mysql配置目录
下载mysql-connector-java-5.1.46.jar
编写配置文件(全量同步)
input {
stdin { }
jdbc {
jdbc_connection_string => "jdbc:mysql://xxx:port/db"
jdbc_user => "username"
jdbc_password => "pass"
jdbc_driver_library => "C:\Users\XXXX