数据清洗是数据分析过程中最基础的工作,也是最累、最繁琐的部分,不像数据挖掘、数据分析看起来那么光鲜,做起来枯燥乏味。当然,这也与数据清洗工具的自动化程度不高,需要人肉去完成大量的ETL开发工作有极大的关系。为了改善这种局面,可以让ETL工程师减少重复性的编码工作,将更多的精力投入到数据分析当中,更加有效地发挥人的聪明才智,提升数据价值。下面是加入了“智能化”元素的数据清洗流程图。
- 构建数据质量探查规则。传统的数据质量分析(或探查)是需要人工分析数据字典、数据内容后,设计并配置相关的质量分析规则,包括完整性、唯一性、一致性、有效性、准确性等几个方面。这个过程费时费力,因此一般清洗前的数据质量分析都是手工完成的,由工程师根据经验编写SQL脚本完成分析。上面流程中的“生成数据质量探查规则”,可以根据源库的数据结构、数据字典、数据标准等,利用挖掘算法(语义分析、聚类算法等),识别出业务主键、业务关键字段、字段含义等,匹配内置的质量检查规则模板,自动生成所有表的质量探查规则。经人工检查完善后配置到系统中,形成数据质量探查任务;
- 数据质量报告。执行数据质量探查任务后生成报告,报告包括两方面的内容,一是对规则的满足情况,比如,某张表的某个字段有N条记录违反了完整性约束等;二是对字段数据的值域分析,用常见的统计算法描述,包括最大值、最小值、平均值、空值等。
- 构建数据清洗任务。系统可以根据数据质量规则与数据质量报告,自动构建出合适的清洗任务脚本和清洗流程