kudu删除数据出现问题:
1.报错日志截取:-- Caused by: java.lang.RuntimeException: failed to write 1000 rows from DataFrame to Kudu; sample errors: Invalid argument: No value provided for key column: TASK_TYPE[string NOT NULL] (error 0)
错误分析思路:No value provided for key column 翻译 取数据时给定key值未取到value
TASK_TYPE[string NOT NULL] 翻译 TASK_TYPE不能不空
2.贴出生产代码及数据模型:
3.问题产生原因:
我是接受同事代码,管理目前工程,接着开发后续需求,但接到需要新增字段 task_type并且需要设置为主键,数模更改以后,因为表中数据有做delete操作,
数据按天删除,并重新生成当日数据,原来代码 SELECT METER_ID,DATA_DATE,FROM tablename 即可获取数据,未改之前主键为 METER_ID,DATA_DATE
但数模更改以后,kudu.detele需要加上 task_type 确定唯一主键 才能获取数据。错误追溯源码如下:
4.增加select 中 task_type 确定主键 获取数据即可解决问题
后续问题:删除数据操作以后,回写当天数据出现报错
日志如下:org.apache.kudu.client.NonRecoverableException: Scanner not found at org.apache.kudu.client.KuduException.transformException(KuduException.java:110)
.......
Suppressed: org.apache.kudu.client.KuduException$OriginalException: Original asynchronous stack trace
追溯源码:
默认mutationBufferSparce 为1000,生产数据为100万+,设置此参数为10000,数据回写异常解决
代码如下:
侵删。