记一次logstash同步MySQL到es时tinyint类型字段被转为boolean类型的问题
2023-06-13 09:15:24 时间
一、先看报错
"reason"=>"failed to parse field [status] of type [integer] in document with id '469716694017769472'. Preview of field's value: 'true'"
"reason"=>"failed to parse field [status] of type [integer] in document with id '469717297049632768'. Preview of field's value: 'false'"
图为用户将字段类型改为 keyword 后的结果,起初ES索引status类型为 integer
二、分析原因
- 检查原始数据,是否统一为数值类型
- ES索引字段类型映射异常
以上怀疑的两点,均未发现任何异常,目标索引替换成一个新的索引名字后,依然报同样的错误。
于是乎,怀疑logstash同步MySQL的tinyint类型字段本身就存在异常,经过一番排查,终于找到了解决方案。
三、解决方案
# jdbc 连接串后面添加参数 tinyInt1isBit=false 即可
jdbc_connection_string => "jdbc:mysql://$URL/$DATABASE?tinyInt1isBit=false
此时 status 类型为 long
相关文章
- MySQL实现增量数据同步(mysql增量数据同步)
- 统计记录MySQL统计记录:按时间范围分析(mysql在时间范围内)
- MySQL主从复制:提升数据库可靠性(mysql的主从同步)
- MySQL连接SQL Server:实现完美同步(mysql连接sqlserver)
- 优化MySQL 主从同步:调整速度,提升性能(mysql主从同步速度)
- 解决MySQL从库不同步问题(mysql从库不同步)
- MySQL 集群技术:精通与实践(mysql集群方面的书籍)
- 添加MySQL数据库列的注释(mysql给列加注释)
- MySQL实现增量数据同步(mysql增量同步)
- MySQL 分页查询的实现原理(mysql分页原理)
- MySQL数据库表之间的同步(mysql同步两个表)
- 同步MySQL二进制数据同步实现方法(mysql二进制数据)
- 解决 MySQL 主从同步错误的方法:跳过错误处理(mysql主从跳过错误)
- MySQL灵活应用:循环处理数组(mysql循环数组)
- 和长连接MySQL中的短连接与长连接比较(mysql短连接)
- MySQL互相同步:实现数据可靠性(mysql互相同步)
- MySQL数据导入到ElasticSearch中(mysql导入es)
- 阿里云MySQL实现主从同步及热备:保障数据安全与高效运营(阿里云mysql主从热备)
- MySQL实现跨多个数据库同步(mysql同步多个数据库)
- MySQL同步锁:保证数据的安全性(mysql 同步锁)
- CSV文件导入MySQL从数据结构到存储实现(csv文件存入mysql)
- CSV文件导入MySQL数据库实现数据自动同步(csv文件入mysql)
- 应用程序连接MySQL优秀技术实践(app链接mysql)
- 基于Ads同步到MySQL的解决方案(ads同步到mysql)
- CMake下载MySQL极速安装体验(cmake下载mysql)
- MySQL 同步启动解决多服务器数据同步问题(mysql 一起正在启动)
- MySQL删除数据时的同步问题(mysql不同步删除语句)
- MySQL实现两库同步功能,数据备份容易,业务流程更顺畅(mysql 两库同步)
- MySQL上月与本月的数据对比(mysql 上月本月)
- Mysql数据同步无法实现原因分析(mysql不能同步)