当前位置: 首页 > news >正文

TDengine Invalid data format 问题定位

Invalid data format 看语义是数据类型不符,通常这个报错出现在使用行协议写入时。
如果是批量数据写入,想定位是哪条语句的问题,需要查看客户端日志。

如何确定使用的是哪个日志

lsof -p `pidof taosadapter` | grep taoslog

如果没有安装lsof

ls -l /proc/`pidof taosadapter`/fd |grep taoslog

在日志中直接查抄报错

grep 'Invalid data format' -A2 -B2 taoslog0.0

通常会有如下3行报错信息:

UTL ERROR SML:0x9dfd point type and db type mismatch. db type: 5, point type: 8, key:
UTL ERROR SML:0x9dfd smlModifyDBSchemas end failed:-2147471358:Invalid data format,
UTL ERROR SML:0x9dfd smlModifyDBSchemas error : Invalid data format

定位错误

第一条报错显示了报错的具体原因:

db type: 5   ## 数据库中原数据类型
point type: 8 ## 写入数据的类型
key :    ##写入的语句

想查看数据类型编码,只能去源代码查找:

// Data type definition
#define TSDB_DATA_TYPE_NULL       0   // 1 bytes
#define TSDB_DATA_TYPE_BOOL       1   // 1 bytes
#define TSDB_DATA_TYPE_TINYINT    2   // 1 byte
#define TSDB_DATA_TYPE_SMALLINT   3   // 2 bytes
#define TSDB_DATA_TYPE_INT        4   // 4 bytes
#define TSDB_DATA_TYPE_BIGINT     5   // 8 bytes
#define TSDB_DATA_TYPE_FLOAT      6   // 4 bytes
#define TSDB_DATA_TYPE_DOUBLE     7   // 8 bytes
#define TSDB_DATA_TYPE_VARCHAR    8   // string, alias for varchar
#define TSDB_DATA_TYPE_TIMESTAMP  9   // 8 bytes
#define TSDB_DATA_TYPE_NCHAR      10  // unicode string
#define TSDB_DATA_TYPE_UTINYINT   11  // 1 byte
#define TSDB_DATA_TYPE_USMALLINT  12  // 2 bytes
#define TSDB_DATA_TYPE_UINT       13  // 4 bytes
#define TSDB_DATA_TYPE_UBIGINT    14  // 8 bytes
#define TSDB_DATA_TYPE_JSON       15  // json string
#define TSDB_DATA_TYPE_VARBINARY  16  // binary
#define TSDB_DATA_TYPE_DECIMAL    17  // decimal
#define TSDB_DATA_TYPE_BLOB       18  // binary
#define TSDB_DATA_TYPE_MEDIUMBLOB 19
#define TSDB_DATA_TYPE_BINARY     TSDB_DATA_TYPE_VARCHAR  // string
#define TSDB_DATA_TYPE_GEOMETRY   20  // geometry
#define TSDB_DATA_TYPE_MAX        21

到这里,基本上就确定问题原因了。

http://www.lryc.cn/news/423955.html

相关文章:

  • Spring Boot 使用 MongoDB 教程
  • Python办公自动化:使用openpyxl 创建与保存 Excel 工作簿
  • 【张】#11 Union 共用体
  • Xcode 在原生集成flutter项目
  • ES6的promise
  • 轻松找回:如何在PostgreSQL 16中重置忘记的数据库密码
  • EVAL长度突破限制
  • 如何判断树上一个点是否在直径上
  • docker 部署 RabbitMQ
  • 设计模式 - 过滤器模式
  • 使用 Locust 进行本地压力测试
  • 【图形学】TA之路-矩阵应用平移-旋转-大小
  • Spring 循环依赖解决方案
  • 可视化大屏:如何get到领导心目中的“科技感”?
  • 基于Python的金融数据采集与分析的设计与实现
  • 使用Sanic和SSE实现实时股票行情推送
  • redis散列若干记录
  • Java面试八股之什么是STOMP协议
  • 【自用】Python爬虫学习(一):爬虫基础与四个简单案例
  • [python]uiautomation.WindowControl函数用法
  • 学习记录第二十七天
  • servlet的执行顺序
  • Go语言 类封装和绑定方法
  • DirectShow过滤器开发-写WAV音频文件过滤器
  • php根据截止时间计算剩余的时间,并且在剩余时间不足1天时仅显示小时数
  • Docker最佳实践进阶(一):Dockerfile介绍使用
  • Anything in Any Scene:无缝融入任何场景,实现逼真视频对象插入技术
  • 安卓开发中的AppCompat框架|安卓系统|安卓应用|兼容性|UI组件|核心组件|ActionBar|Fragment|最佳实践|框架|移动开发|移动应用
  • React使用useRef ts 报错
  • python-信息交互-pyautogui