ETL 中数据质量控制
ETL是非常重要的一步,往往一个项目的成败就是看ETL过程的成功与否.选用一个好的ETL工具会让项目更加的有信心
1 . Remove ,把我们认为满足特定数据条件的数据删除,例子中就是要把REORDER_YN = Y 的数据删掉。
2 . Similarity Match 把不在我们规定的域内的数据自动更改为最接近的值,这个值是oracle 用特定算法算出来的,我不清楚到底是怎么样的规则。不过我猜是不是按照字典的顺序来排序,谁接近就转化成谁,比如有applet,book ,orange ,如果要转化book的话,就把book转化为applet,因为b 开头的单词比o 开头的单词离的近一些,中文的话可能不会支持吧。当然,这只是我猜的.具体是怎么样只有问那些高手了.
3 . Soundex Match oracle有一个函数叫做SOUNDEX , 它是应用以下规则,保留首字母,把所有的元音 a , e , i , o , u 和 w , y 删掉。把剩下的字符串按如下数字相加
- b , f , p ,v =1
- c, g, j, k, q, s, x, z = 2
- d, t = 3
- l = 4
- m, n = 5
- r = 6
如果两个或两个以上有相同的数字接近原来的值(在第一步之前),或者接近除去h 和 w 的值 , 忽略掉除第一个字母以外的数字. 返回4个字节。格式大概如下:
| SELECT name, SOUNDEX(namecol) FROM test; SELECT * FROM test WHERE SOUNDEX(namecol) = SOUNDEX('SMITH'); |
以上例子摘自http://www.psoug.org/reference/string_func.html,如果你对算法有疑问可以自己去看看。
4 . Custom 使用自定义的转化规则来清理数据,大多数时候都是使用这种方式。例子中的把MANUF_COUNTRY 的 England 转化为 UK 就是这种情况。
在你进行数据转化之后,你对数据的质量满意了,你可以设置Data Auditor 来监控以后传入的数据的质量
Data Auditor 使用定义的数据规则,生成关于数据的一致程度的统计报告,然后将其存储在错误记录表中。还可以对 Data Auditor 进行编程,指定 Data Auditor 在分数低于一定的阈值后向您发出通知,然后在特定情况运行清理映射来清理数据。运行该清理映射后,可以对 Data Auditor 进行编程,使其仅在设计分数高于特定级别或 Six Sigma 值时才继续进行余下的 ETL 过程,避免将错误数据载入数据仓库,使数据仓库的质量能够得到保证。
- 本文关键词:


