Spark-kudu学习—删除数据

 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,数据回写异常解决
代码如下:

侵删。

猜你喜欢

转载自www.cnblogs.com/yys313/p/12075337.html