最近处理数据,遇到这2个问题,思考了很久,最近突然开窍把问题解决了,记录如下:
第一个问题,如下图所示,数据生成的csv文件只有时分秒,而数据库设定的格式为年月日时分秒,因此导入数据库是提示出错,那年月日那里去了?
原来写软件的工程师把年月日作为文件名了
这样用PDI处理的话,可以用如下方式解决,整体过程如下:
1. 读取文件时,将文件名一起读入,这样的话年月日就有了,但是还是要做二次处理,用Text File Input导入数据时,在content栏下勾上 Include filename in output, 并给个栏位名:date
这样的话,文件名就作为一栏数据进来了
2. 然后用string cut,按照规则,只将对应位置信息,将36到46之间的10个字符,即年月日裁剪出来,放到date2这个栏位
3. 然后用Concat Filed将date2与对应栏位的时间合并起来
第二个问题,如下图,数据导入时发现重复
之前尝试过在数据库端设定index,通过锁定序列号加时间戳的方式来防止重复数据,但是这样做的话,在数据导入前有重复则会提示错误,无法导入,因此前端也要进行去重的处理,整体过程如下:
用到Sort Row这个组件来处理,其中勾上只输出唯一值,组合对比栏位为序列号加时间
这样过滤后,重复项在数据导入前就清除掉了