论文部分内容阅读
在当今大数据时代,各个行业产生并积累了海量数据。据统计,近五年全球数据储量突破了10ZB,并保持每年40%左右的增长。行业用户借助于数据分析、人工智能、数据挖掘等手段,能够从这些海量数据中发掘出潜在价值。但是,这些大规模数据的采集、流转、分析等处理过程中都有可能出现信息遗漏、语义改变,产生“脏”数据进而影响数据质量,严重制约了大数据在行业应用的落地发展。因此,数据质量问题正得到越来越多的关注,ETL(Extract-Transform-Load)、数据清洗、数据质量监控等相关技术与系统也不断出现。然而,现有相关系统在数据清洗能力和计算性能上还存在诸多不足,难以应对实际大数据应用的复杂情况。首先,大数据体量庞大,仅依靠单机资源难以实现大规模数据处理;其次,大数据来源分散、格式各异,难以对数据进行统一表示和存储;再者,多源异构大数据类型繁多,数据质量问题突出且解决方法不一,难以对数据质量问题进行统一定义和处理。针对上述难题,本文开展了面向大数据的数据清洗和修复技术与工具平台研究,研究提出了通用的数据质量管理模型与框架,并在此基础上实现了分布式数据质量检测与修复系统Spark DQ,提供了有效的数据质量问题处理方法,允许用户对底层异构大规模数据源中的各类“脏”数据进行高效的质量检测与修复。本文的主要工作与贡献点包括:(1)研究提出了一种通用化的大数据质量管理模型和编程框架,并构建了一系列数据质量检测与修复接口,用于表达各类数据质量问题的处理语义。通过该数据质量管理模型和检测与修复接口,用户可以针对不同的数据质量需求,快速构建自定义数据质量检测与修复任务。(2)基于上述数据质量管理模型和编程框架,研究实现了一套完整的并行化数据质量检测与修复方法及算法。包括完整性、唯一性、一致性、有效性维度的数据质量检测算法和基于填充、删除、过滤和替换方式的数据质量修复算法,能够高效解决实际中的各类数据质量问题,如数据缺失、规则不匹配、数据约束冲突等。(3)为了提高大规模数据场景下复杂数据质量管理算法的运行效率,针对计算耗时长的检测与修复算法,研究实现了相应的并行化算法,包括基于优先级的多条件函数依赖检测与修复算法、基于语义信息和分块技术的实体检测与抽取算法,以及基于朴素贝叶斯的缺失值填充算法。(4)为了进一步提升数据质量检测与修复任务的执行调度性能,面向不同数据质量检测与修复算法的底层运行机制,研究提出了多任务执行调度优化和数据状态缓存优化。综合考虑各任务的计算特性和任务间的相互关系,优化多检测与修复任务的整体运行效率。(5)在上述关键技术研究基础上,设计实现了统一大数据质量检测与修复原型系统Spark DQ,并提供了概要分析、约束推荐等辅助功能和用户交互特性。实验结果表明,本文所研究实现的并行化数据质量管理算法,相比单机版本性能可提升至4~12倍,自动化调度优化方法可将任务的执行性能提升9%~56%,且系统具有近线性的可扩展性。