flink starRocks sink 异常处理

starRocks 的flink sink 是否支持自行处理数据写入表异常。

请问具体遇到的是什么问题呢,可以详细描述下您的操作步骤及写入异常信息,并上传相关日志来进一步分析呢

就是flink sql 任务中,数据中出现脏数据,比如数据中有\t 分隔符,导致最后starRocks 数据写入表失败,进而Flink sql 任务失败而进入无限重启。StarRocks sink 是否可以暴露出一个异常处理handler接口。这样在DateStream 中我们能自行处理该类异常,而不是说会让Flink 任务失败。

flink没有配置重启策略吗?

我提个优化建议,感谢反馈

你们希望在handler里做哪些操作?

写入表失败的具体异常可以发下吗?


例如这类错误,我希望是这个错误不要让Flink 任务暂停,而是在handler 中将数据质量有问题的数据记录下,后续手动处理。

这种情况是不是在sink前加一个operator对脏数据进行预处理会简单一点?sink是通过stream load批量写入starrocks,一批数据里有一条脏数据,整批数据都无法写入,如果想通过自定义handler记录脏数据需要考虑一些问题:怎么判断异常是脏数据引起的(异常原因可能有很多)、脏数据是哪条、非脏数据如何处理(重试导入?)、脏数据记录在哪(flink日志或外部系统)等等。

相对于自定义handler,预处理的方式只需要识别脏数据并实时修正,在handler的方法中“后续手动处理”是不是也要做这件事?

确实是的,具体的每一条数据确实很难定位。这样成本也比较高。感谢回复。

你不捕获到写入异常了吗?