实现方式与范围
数据清洗的实现方式
手工实现,通过人工检查,只要投入足够的人力物力财力,也能发现所有错误,但效率低下。在大数据量的情况下,几乎是不可能的。
通过专门编写的应用程序,这种方法能解决某个特定的问题,但不够灵活,特别是在清理过程需要反复进行(一般来说,数据清理一遍就达到要求的很少)时,导致程序复杂,清理过程变化时,工作量大。
而且这种方法也没有充分利用目前数据库提供的强大数据处理能力 。
解决某类特定应用域的问题,如根据概率统计学原理查找数值异常的记录,对姓名、地址、邮政编码等进行清理,这是目前研究得较多的领域,也是应用最成功的一类。
如商用系统: Trillinm Software , System Match Maketr 等。
与特定应用领域无关的数据清理,这一部分的研究主要集中在清理重复的记录上。
如Data Cleanser, Data Blade Module ,Integrity 系统等。
这4种实现方法,由于后两种具有某种通用性,较大的实用性,引起了越来越多的注意。
但是不管哪种方法,大致都由三个阶段组成:
①数据分析、定义错误类型; ②搜索、识别错误记录; ③修正错误
第一阶段,尽管已有一些数据分析工具,但仍以人工分析为主。在错误类型分为两大类:单数据源与多数据源,并将它们又各分为结构级与记录级错误。
这种分类非常适合于解决数据仓库中的数据清理问题。
第二阶段,有两种基本的思路用于识别错误:一种是发掘数据中存在的模式,然后利用这些模式清理数据;另一种是基于数据的,根据预定义的清理规则,查找不匹配的记录。后者用得更多。
第三阶段,某些特定领域能够根据发现的错误模式,编制程序或借助于外部标准源文件、数据字典一定程度上修正错误;对数值字段,有时能根据数理统计知识自动修正,但经常须编制复杂的程序或借助于人工干预完成。
绝大部分数据清理方案提供接口用于编制清理程序。它们一般来说包括很多耗时的排序、比较、匹配过程,且这些过程多次重复,用户必须等待较长时间。
在一个交互式的数据清理方案。系统将错误检测与清理紧密结合起来,用户能通过直观的图形化界面一步步地指定清理操作,且能立即看到此时的清理结果, (仅仅在所见的数据上进行清理,所以速度很快) 不满意清理效果时还能撤销上一步的操作,最后将所有清理操作编译执行。并且这种方案对清理循环错误非常有效。
许多数据清理工具提供了描述性语言解决用户友好性,降低用户编程复杂度。
如ARKTOS 方案提供了XADL 语言(一种基于预定义的DTD 的XML 语言) 、SADL 语言,在ATDX 提供了一套宏操作(来自于SQL 语句及外部函数) ,一种SQL2Like 命令语言,这些描述性语言都在一定程度上减轻了用户的编程难度,但各系统一般不具有互操作性,不能通用。
数据清理属于一个较新的研究领域,直接针对这方面的研究并不多,中文数据清理更少。
现在的研究主要为解决两个问题:发现异常、清理重复记录
转自:https://github.com/yousyuukai/presto/issues/10
网友评论