通过logstash实现es数据同步至mysql数据库-简单插入数据测试

文章描述了使用Logstash进行MySQL到Elasticsearch双向数据同步时遇到的错误,包括数据截断异常和主键重复错误。在尝试插入和更新数据时,Logstash的日志显示了错误信息,指出日期时间格式不匹配和主键约束违反的问题。文章探讨了需要调整Logstash配置文件中的SQL语句来实现成功的修改和删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过logstash实现mysql与es的双向数据同步_延锋L的博客-CSDN博客

[2023-04-24T09:22:01,433][ERROR][logstash.outputs.jdbc    ][main][0182513607343e6e9911bb0ce7f70a8d51891bc7ebc7bc9b1f020782c6b64fe5] JDBC - Exception. Not retrying {:exception=>#<Java::ComMysqlCjJdbcExceptions::MysqlDataTruncation: Data truncation: Incorrect datetime value: '2020-11-25T08:26:23.000Z' for column 'create_time' at row 1>, :statement=>"INSERT INTO item_user (item_user_id, user_id, item_id, create_time, update_time, status) VALUES (?, ?, ?, ?, ?, ?)", :event=>"{\"item_user_id\":11,\"item_id\":32,\"update_time\":\"2020-11-25T08:26:23.000Z\",\"create_time\":\"2020-11-25T08:26:23.000Z\",\"user_id\":1,\"@timestamp\":\"2023-04-18T15:37:01.625721212Z\",\"status\":1,\"type\":\"item_user\",\"@version\":\"1\"}"}

input {
	elasticsearch {
		hosts => ["hadoop100:9200"]
		index => "test_user_info"
		query => '{ "query": { "match_all": {} } }'
		schedule => "* * * * *"
	}
}

output {
	jdbc {
		driver_jar_path => "/opt/jar/mysql-connector-java-8.0.21.jar"
		driver_class => "com.mysql.cj.jdbc.Driver"
		connection_string => "jdbc:mysql://hadoop100:3306/newsManagerEs?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT&user=root&password=123456"
		statement => ["INSERT INTO user_info (user_id, user_name, user_pwd, create_time, update_time, status) VALUES (?, ?, ?, STR_TO_DATE(?, '%Y-%m-%dT%H:%i:%s.%fZ'), STR_TO_DATE(?, '%Y-%m-%dT%H:%i:%s.%fZ'), ?)", "[user_id]", "[user_name]", "[user_pwd]", "[create_time]", "[update_time]", "[status]"]
	}
}

查询数据

获取记录条数

获取具体记录内容

插入数据没有问题。

修改数据,不成功!

删除数据,不成功!

[2023-04-24T11:31:02,501][ERROR][logstash.outputs.jdbc    ][main][1714ba61c98e08de1735f5efd3370e1dd110ad86ee91711e85b3a0b6a53b044f] JDBC - Exception. Not retrying {:exception=>#<Java::JavaSql::SQLIntegrityConstraintViolationException: Duplicate entry '666' for key 'PRIMARY'>, :statement=>"INSERT INTO user_info (user_id, user_name, user_pwd, create_time, update_time, status) VALUES (?, ?, ?, STR_TO_DATE(?, '%Y-%m-%dT%H:%i:%s.%fZ'), STR_TO_DATE(?, '%Y-%m-%dT%H:%i:%s.%fZ'), ?)", :event=>"{\"@version\":\"1\",\"user_name\":\"666修改666\",\"@timestamp\":\"2023-04-24T03:31:02.038985403Z\",\"status\":0,\"user_pwd\":\"666修改666\",\"user_id\":666}"}

想要实现修改与删除操作,必须要修改logstash配置文件中的sql语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

upward337

谢谢老板~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值