PDI 处理 Excel 脏数据_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > PDI 处理 Excel 脏数据

PDI 处理 Excel 脏数据

 2011/1/7 8:29:43  pslff  http://pslff.javaeye.com  我要评论(0)
  • 摘要:在数据整合过程中,经常可以遇到脏数据,所谓脏数据就是数据格式不符合要求的数据。脏数据的来源1.录入过程中的错误如将数值型的负号'-'录成了全角状态下下的'-',将小数点'.'录成了句号'。'如拷贝粘贴的时候将空格、回车、换行等一些不可见字符也同时拷贝过来。如身份证号码、出生日期、手机号码等有相对固定格式的数据,录入的数据格式不正确。2.不同系统之间的差异有的数据在一个数据库系统下是合法的,而在其它数据库下是非法的,这是由系统之间的差异决定的。如MySQL数据库可以保存0000-00-0000
  • 标签:excel 数据

在数据整合过程中,经常可以遇到脏数据,所谓脏数据就是数据格式不符合要求的数据。

脏数据的来源

1. 录入过程中的错误
如将数值型的负号'-'录成了全角状态下下的'-',将小数点'.'录成了句号'。'?
如拷贝粘贴的时候将空格、回车、换行等一些不可见字符也同时拷贝过来。
如身份证号码、出生日期、手机号码等有相对固定格式的数据,录入的数据格式不正确。

2. 不同系统之间的差异
有的数据在一个数据库系统下是合法的,而在其它数据库下是非法的,这是由系统之间的差异决定的。
如 MySQL 数据库可以保存 0000-00-00 00:00:00 时间戳类型的数据,而对于其他的一些数据库而言,则不能保存这样的时间数据。?
如 SQLServer 数据库在汉字字符串中可以存在半个汉字,而有的数据库系统,在遇到半个汉字时会认为是非法数据。
如 不同的数据库数据类型的最大长度、精度、刻度都是不同的。

对于一些录入时检查比较严格的应用系统来说,脏数据产生的可能性小一些。
但是对于一些录入时检查不严格,甚至没有检查的系统来说,产生脏数据的可能性是很大的,如文本文件、EXCEL 文件。

脏数据的问题太广泛,本文主要谈一下如何使用 PDI 处理 Excel 中的脏数据。


在 PDI 中, 可以通过下面几个步骤可以检查出 EXCEL 文件中的脏数据
1. 设置数据类型: 为 Sheet 中的每一列设置正确数据类型以及长度、精度,并选定 "类型检查"。
2. 数据预览: 从 Excel 中按照预先设定的数据类型读取数据,无法转换的数据就是非法数据,错误信息和数据都会被打印出来。通过这种方法就可以检查出数据类型不正确的数据,如录入时将字母"O"误当成数字"o"。
3. 日志: 将日志设置为最详细的“行级日志”(Row level),这样可以打印出从 Excel 读数据时发生的错误位于哪一行那一列。
4. 错误文件:对于读取错误的行,行号、列号和相应的数据会被保存到错误文件中,便于以后检查。

脏数据的清洗
1. 手工方式:当检查出脏数据后,如果脏数据比较少,可以使用手工的方式先修改 Excel 文件,然后再执行转换任务。
2. 自动方式:如果希望在执行一个转换任务的的过程中,发现脏数据后就立刻进行清洗,那么就不必在 "Excel输入" 步骤中进行类型检查。
可以在 "Excel输入" 步骤中将所有数据都以字符串类型读出,然后通过 "Java 脚本" 步骤中的一些字符串转换函数来定义清洗方法,
如常用的 replace、substr、trim 等,清洗后再通过"选择列" 步骤,将字符串数据转换为指定的数据类型。

发表评论
用户名: 匿名