问答详情
源自:4-2 logstash全量、增量同步解决方案

logstash 只能同步增加的数据,不能同步更新和删除的数据

按照老师配置mysql.conf,启动后发现可以全部同步mysql表数据,但是之后mysql做更新和删除操作,并没有同步到es,请问是哪里的问题?谢谢回复!

input { 
    jdbc {	
        jdbc_driver_library => "D:\softwares\study\ES\logstash-6.5.3\mysql-connector-java-8.0.18.jar"	
        jdbc_driver_class => "com.mysql.jdbc.Driver"	
        jdbc_connection_string => "jdbc:mysql://localhost:3306/dev?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8"	
        jdbc_user => "root"	
        jdbc_password => "123abc"	
        schedule => "* * * * *"	
        clean_run => true	
        statement => "select * from user where update_time > :sql_last_value and update_time < now() ORDER BY update_time desc;"
        }
}
output {  
    elasticsearch {    
        hosts => ["http://localhost:9200"]	
        index => "eslog"	
        document_id => "%{id}"    
        #index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"    
        #user => "elastic"    
        #password => "changeme"  
    }
}


提问者:阿飞的课 2020-03-17 19:28

个回答

  • 00FFFF_
    2021-06-09 15:49:20

    是必须要有update_time这个字段才能同步更新吗 其他能同步更新不

  • zzy309
    2020-09-22 14:16:44

    会更新的。主要是sql语句要修改下:

    SELECT * FROM blog WHERE update_time > date_add(:sql_last_value, interval 8 hour) AND update_time<date_add(NOW(), interval 8 hour) ORDER BY update_time desc

  • eddie_k2
    2020-04-09 09:39:32

    会更新的,logstash是按每分钟更新, 如果你就直接修改数据库 没有把时间设置大于 logstash同步时间,就会出现不同步情况!