事件背景
本际云服务器推荐网最近进行历史库割接,需要采集历史库中数据的基础信息,方便做后期迁移方案和业务切换规划,因此使用DOMP平台对历史库的会话信息进行定期采集,采集的基础信息入库到GreenPlum中。然而,在数据采集的过程中遇到了一些问题。

踩坑过程
正常的数据采集流程包括构思数据采集需求、编写采集脚本、创建GP入库表、变更入库脚本、重启数据入库程序。但是,在本次的配置完成后,出现了错误。错误信息提示编码错误,但是GreenPlum数据库默认编码格式为UTF8,主机的编码也是UTF8,未发现异常。进一步排查错误,发现采集的数据首先会进入到kafka中,检查kafka里对应topic生产数据,发现数据后面多了’ u00000 ‘。GreeenPlum官网解释为字符中包含了u00000,但是实际查询的数据中并没有发现这种特殊字符。开发同事建议将kafka消费生成的csv文件中存在的特殊字符’^0^’解决,通过字符截取和ascii码转换发现该值为0。最终通过修改采集脚本将空格替换为null解决了该问题。
此外,在采集oracle源数据中,出现了空字符串,而在vim里就显示成’^@’,但在oracle中去查询有问题的数据列时,并没有发现对应的列有空数据。
分析总结
回想整个事件的处理过程,排查多次无果的时候是容易令人放弃的。因此,我们从问题出现的原因去排查,再去从数据源头排查,最终找到了数据的异常原因。
当中途出现没有解决思路的时候,可以请教身边的同事,扩展自己解决问题的思路。总的来说,解决问题的时候,需要保持细心、多思考、多请教、肯钻研,那么再难的问题也会不攻自破。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5841.html
