es表插入数据报错:id is too long, must be no longer than 512 bytes but was:1179

  SQL报错
内容纲要

概要描述


向es表中写入数据时报错:id is too long, must be no longer than 512 bytes but was:1179

详细说明


通过SQL向es表中写入数据时,报如下错误:
file

elasticsearch的index request中写死的一个检查,检查 **_id** 字段(即es表的第一个字段)必须要小于等于512字节,否则就会抛此异常

file

解决方案


1、如果TDH是6.x以上版本,可以通过 **octet_length()** 函数找到是哪行数据内容超过了限制

SELECT octet_length(字段1) FROM 表名;

2、如果TDH是6.x以下版本,可以使用 md5() 函数构建定长的唯一列
选择表中的已有的两列使用md5()函数构建唯一列;

SELECT md5(字段2||字段3) FROM 表名;

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。