前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次logstash同步MySQL到es时tinyint类型字段被转为boolean类型的问题

记一次logstash同步MySQL到es时tinyint类型字段被转为boolean类型的问题

原创
作者头像
WeldonWang
修改2023-03-10 10:02:36
6040
修改2023-03-10 10:02:36
举报

一、先看报错

代码语言:txt
复制
"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'"
ES索引里面status字段值
ES索引里面status字段值

图为用户将字段类型改为 keyword 后的结果,起初ES索引status类型为 integer

二、分析原因

  1. 检查原始数据,是否统一为数值类型
  2. ES索引字段类型映射异常

以上怀疑的两点,均未发现任何异常,目标索引替换成一个新的索引名字后,依然报同样的错误。

于是乎,怀疑logstash同步MySQL的tinyint类型字段本身就存在异常,经过一番排查,终于找到了解决方案。

三、解决方案

代码语言:txt
复制
# jdbc 连接串后面添加参数 tinyInt1isBit=false 即可

jdbc_connection_string => "jdbc:mysql://$URL/$DATABASE?tinyInt1isBit=false
加了该参数后status字段值
加了该参数后status字段值

此时 status 类型为 long

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、先看报错
  • 二、分析原因
  • 三、解决方案
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档