通用数据质量管理系统研究与设计
2018-09-14吴鹏连礼泉
吴鹏 连礼泉
摘要:针对大型基层数据采集系统数据错误和数据重复的典型现实问题,研究了数据校验通用模型和基于聚类与数据质量的自动去重方法,设计了一个通用数据质量管理系统,适用于类似采集系统的普遍数据质量问题。
关键词:数据质量;校验模型;聚类;自动去重
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)16-0010-03
大数据时代,一个国家掌握和运用大数据的能力,成为塑造国家竞争力的战略制高点之一[1]。国家大数据战略背景下,在国家安全、社会治理和经济发展各领域形成战略性数据资源库,是奠定国家竞争优势的基础。例如在社会治理领域,以大数据思维汇聚最小社会治理单元(乡村、社区)的相关数据,既帮助基层减免层层采集、汇总、统计、上报的耗费和失真,又辅助决策层宏观掌握整体态势和微观洞悉基层具体问题,保障了政府决策科学化、社会治理精准化和公共服务高效化。基层数据的全面、完整、详实是基础,其质量问题会在大数据环境下被不断放大,但在基层却往往容易被忽视。本文以大型基层数据采集系统现实数据质量问题为出发点研究共性解决方案,旨在设计一套通用数据质量管理系统,适用于类似采集系统的普遍数据质量问题。
1 需求分析
某在建大型数据采集系统,采集信息五大类共计300余项,主要为结构化数据,运行一年以来,基层采集用户数超20万,单表数据量千万级,系统总数据量过亿。系统当前存在一定程度的数据质量问题,主要体现在数据错误和数据重复两个方面,数据重复量约占数据总量的30%,数据错误量尚无法估算。该系统数据作为社会立体感知与防控大数据的重要数据源之一,数据的质量必然会影响大数据分析的效果。
分析发现,数据错误问题除了在数据流转过程产生外,主要由于该系统作为单独系统运行时只需要进行最基本的弱校验即可满足要求,而将其纳入大数据体系时对数据的要求更丰富严格,数据错误问题才逐渐体现;数据重复问题主要由于系统网络结构及应用模式限制了采集前端与后台数据实时同步导致,本质为多数据源重复数据造成的数据不一致问题。两问题均不适合在采集端追加解决方案,只能在平台侧进行处理。
针对数据错误问题,可根据实际需要对系统数据进行强校验,检测出问题数据并推送至采集前端修改完善;数据重复问题比较复杂,纯人工处理工作量过大,全自动智能处理复杂度太高,全部按时间先后舍弃历史数据等方法虽然简单但容易丢失有价值的数据,需设计一个自动去重辅助人工核验的处理方式,平衡效率和难度。
考虑数据质量指标可能随需求不断变化,且数据错误和重复问题在类似基层数据采集系统中普遍存在,需将数据校验规则模型化,支持按需配置和动态扩展,形成通用解决方案,满足本系统可变要求的同时可适用于其他类似采集系统。同时,为了便于有效监督管理,对数据处理建立日志机制并提供相应的统计分析展示。
1 系统设计
1.1 系统功能
根据需求分析设计系统功能为7个子系统,分别为数据源管理、模型管理、作业管理、执行引擎、推送核查、监督管理和系统管理。系统功能如图1所示。
1.1.1 数据源管理
实现对需要质量管理的数据源的维护管理。对数据源的维护包括数据库的驱动类、url、用户名、密码、最大连接数等参数,并支持实时连通性检验。支持主流的结构化数据库软件,包括oracle、sql server、db2、mysql等。
1.1.2 模型管理
包括模型管理和模型引擎兩部分。模型管理实现对数据校验模型的管理。管理的数据校验模型分为通用和专用两类。通用模型主要包括各基本数据类型的校验模型,可直接被复用,通用模型的管理分为标准和专业两种模式,在标准模式下,由页面输入数据类型、校验类别、校验内容等参数定义模型;专业模式下,允许用户直接书写校验语句来定义模型。因标准通用模型一次只能定义一项校验,故还支持组合模型,即可将多个数据类型一致的标准通用模型组合为一个新的校验模型。专用模型针对较为复杂的数据校验,仅对特定问题具备通用性,由管理人员上传模型算法包维护,或由系统版本更新时直接内置,内置模型不可删除,针对数据去重问题的计算机辅助去重模型属于此类。模型引擎主要负责对模型的解释和调用执行。
1.1.3 作业管理
实现对数据校验或去重等任务的维护管理。建立任务支持可视化拖拽配置,包括三部分内容:
1) 对象配置。首先从数据源管理中选取对象数据源,然后读取该数据源内的所有数据表,再选定需要建立数据校验任务的数据表,选择该表全部属性或某个子集对为校验对象。
2) 模型配置。为第一步选定的属性添加校验模型,支持为多个属性批量添加校验模型。
3) 执行参数配置。设置任务的执行时间或频率,以及任务执行后的处理规则,是仅做记录还是推送核验。
1.1.4 作业引擎
实现对作业任务的解释和调用执行。包括定时器、执行逻辑和日志记录三部分内容。定时器根据任务的执行参数配置按时启动任务执行逻辑。执行逻辑根据任务对象及其模型配置执行数据校验或去重任务。日志记录执行结果、处理参数等日志,以备后续跟踪处理和统计分析。
1.1.5 推送核查
实现任务执行结果向目标系统的推送。支持主动推送和被动推送两种方式。主动推送建立向目标系统的数据推送接口,主动将执行结果推送至目标系统;被动推送向目标系统开放任务视图,视图中核查结果信息按作业任务和产生时间等排序,由目标系统决定数据抽取时机。
1.1.6 监督管理
提供综合查询和统计分析功能,包括对各类系统日志的管理和对系统监管数据资源的准确性、完整性、一致性和时效性度量,便于掌握系统作业任务执行情况和数据资源质量整体态势。
1.1.7 系统管理
包括用户管理、权限管理、系统配置管理、字典管理等功能。
2 系统应用流程
首先配置数据源;然后在模型管理中配置各校验模型;其后在作业管理中对作业对象和模型进行装配,并设定作业执行参数;作业配置完成后,系统定期执行作业,并记录日志和生成相关统计报表。系统应用流程如图2所示。
2.1 系统设计关键技术
2.1.1 数据质量管理体系
国内外关于数据质量的研究由来已久,对数据质量的评估包括众多维度[2-4],本系统结合问题实际,从准确性、完整性、一致性和时效性四个方面管理数据质量。准确性评估依托数据校验模型,由模型管理功能管理,采用的通用数据校验模型如表1所示。四项指标的度量主要由监督管理功能管理,数据质量管理指标体系如表2所示。
2.1.2 基于聚类与数据质量的数据自动去重
聚类算法是机器学习和模式识别的研究热点,其中,K-medoids算法以对象而非均值作为类簇的中心点,相较于K-means算法更适合处理离散数据且对噪声敏感性较低,但也存在无法事先确定合适的k值等缺陷[5]。对于数据不一致问题,一般具备自动去重合并可能的数据记录总是存在部分一致性,即重复数据集中大部分属性值一致,少部分存在不一致,不一致的属性值往往也存在一定的相似性。以Levenshtein距离[6](文本最小编辑距离)作为对象间距离函数时,K-modoids算法适合处理这种文本不一致问题。对于k值,若数据可以聚类成1个类簇,那么该类簇的中心点即可作为去重合并的优选值;若聚类成多个类簇,那么说明样本间差异较大,此时若没有领域知识干预,只能由人工介入处理。基于本系统的设计,可以在人工干预前先使用数据质量辅助去重合并,即当聚类无法给出唯一中心点时,以数据质量最高的数据记录作为合并参考值,数据质量可以用准确性、完整性和时效性指标线性加权计算。
自动去重的过程如下:
1) 定义判斷重复记录的属性集或属性;
2) 根据1)将所有重复数据划分为多个重复数据集;
3) 对每个重复数据集,依次检查其判重属性集以外的每一个属性,找出存在数据不一致的属性集;
①对每个数据不一致属性,假设其重复记录数为n,计算其两两属性值之间的距离并排序,取距离最小的前[C2n2]个距离;
②根据这些距离的端点关联,若其能关联成一个属性集,则根据K-medoids算法思想计算中心点,以中心点的值作为去重合并值;
③若距离端点关联成多个属性集划分,表示样本差异大,此时可以数据质量最高的记录的属性值作为去重合并值;
4) 每个重复数据集处理完成后,记录合并方案,并保存历史数据备案以待人工核查。
3 结语
大数据时代,数据成为重要的价值资产。基层数据采集系统单独运行时因其自身局限,数据质量问题会被有意无意忽视,进入大数据环境后,常常陷入“数据丰富、信息贫乏”的尴尬境地。本文基于大型基层数据采集系统的数据质量现实问题,研究了数据校验通用模型和基于聚类与数据质量的自动去重方法,设计了一个通用数据质量管理系统,适用于类似采集系统的普遍数据质量问题。
参考文献:
[1] 习近平:实施国家大数据战略,加快建设数字中国(万字长文解读)[EB/OL].[2017-12-12].http://www.thebigdata.cn/YeJieDongTai/35064.html.
[2] Aebi D, Perrochon L. Towards Improving Data Quality[C]//CiSMOD.1993:273-281.
[3] Fan W, Geerts F. Foundations of data quality management[J]. Synthesis Lectures on Data Management,2012,4(5):1-217.
[4] 郭志懋,周傲英.数据质量和数据清洗研究综述[J].软件学报,2002,13(11):2076-2082.
[5] 潘楚,张天伍,罗可.两种新搜索策略对K-medoids聚类算法建模[J].小型微型计算机系统,2015,36(7):1453-1457.
[6] Levenshtein V. Binary codes capable of correcting deletions, insertions and reversals[J]. Doklady 1965, 163(4):845-848.