(广东电网有限责任公司惠州供电局 广东惠州 516001)
摘要:随着企业信息化水平和企业精细化管理要求的不断提高,企业对数据管理的需求也随之增强,如何提高企业数据质量更是需要重点解决的问题。针对电力企业数据质量管理面临的挑战,创新提出了分布式数据质量管理解决方案。
关键词:数据质量管理;分布式;Hadoop
1 引言
随着企业信息化水平和精细化管理要求的不断提高,数据已成为企业的重要资源和核心资产,深刻影响企业的业务管理模式。企业数据质量水平,将关系到企业数据化管理、决策的效率和成效。为促进数据质量水平的提升,电力行业开展了数据质量管理工作,并完成了数据质量管理系统的建设与推广,生产、营销、财务、人力资源等业务域的数据质量得到了显著提升,但也面临如下一些挑战。
2 传统的数据质量管理模式
传统集中式数据质量管理系统可以规范化管理校验规则、调度规则的执行时间、统一管理数据质量报告,大大提高了数据质量校验的效率,并规范了数据质量的管理。数据量在千万级以内时,可以稳定高效地完成数据质量校验。
(1)系统配置层
用于配置校验规则、执行策略、元数据等信息,查看数据质量分析结果。
(2)系统执行层
负责规则的执行和问题数据的存储。质量校验引擎采用Oracle 存储过程实现,通过database link(DBlink)链接到“被校验库”执行预先配置好的校验规则,统计并抽取查询出来的问题数据。问题数据存储在集中式系统数据库里进行进一步的过滤、合并和分析,最终生成数据质量报告。集中式系统使用关系型数据库存储和分析数据,当面对海量数据时数据库服务器的性能往往会成为瓶颈。
3 数据质量管理的实践
3.1 设计思路
针对集中式数据质量系统的性能瓶颈,本文在研究数据质量系统特点并借鉴国内外对大数据的解决方案后,提出了基于Hadoop 分布式处理框架的解决方案。利用Hadoop 集群,可以把缺陷数据从Oracle 中抽离,分散存储在集群里的多台服务器上,从而可以有效提高磁盘I/O 性能和数据分析性能。
期刊文章分类查询,尽在期刊图书馆
3.2 分布式数据质量管理系统
分布式数据质量系统采用J2EE 架构开发,可逻辑划分为用户交互层、数据处理层和数据存储层。
3.2.1 用户交互层
用户交互层是用户与系统交互的界面,在进行系统设计时充分考虑了界面的可用性和便利性,结合AJAX 技术降低系统的响应时间,提升了用户使用体验;为简化校验规则的配置工作,系统可根据元数据自动生成校验规则的功能,并采用AJAX 技术预加载元数据,提高用户操作流畅度,大大提高规则配置的效率;还提供规则参数的功能。
3.2.2 数据处理层
为用户交互层提供从Hadoop 集群里查询数据的接口。作为数据处理层的两大核心组件之一,规则执行引擎是数据质量管理系统的关键所在,直接影响了校验的效率。在设计规则执行引擎时主要考虑以下几点因素。
性能是首先要考虑的问题。系统的规则执行引擎采用开源ETL 工具Kettle 作为缺陷数据抽取引擎,Kettle 可以把一个表的数据“切片”进行多线程分段抽取,因此可以比较高效地把问题数据抽取到质量管理系统里。另外,执行引擎还采用缓存机制,执行规则时会优先从缓存中获取结果以提高执行效率。
3.2.3 数据存储层
数据存储层由统一数据访问接口以及数据存储(含系统数据和缺陷明细数据)组成。其中,系统数据库采用传统的关系型数据库Oracle,用于存放系统配置、执行日志、规则信息和缺陷数据分析结果;而缺陷数据明细存储采用Hadoop 分布式处理框架。
(1)统一数据访问接口
系统使用Hadoop 集群存储缺陷明细数据,为了能更简单、快捷地分析数据,基于Impala 框架封装了通用数据访问接口,兼容Oracle 和分布式架构下的数据访问,能在Hadoop 集群上运行本地SQL,可以为存储在HDFS 或HBase 中的Hadoop 数据提供快速、交互式的SQL 查询,查询效率比基于MapReduce 的Hive 有数量级的提升。
(2)资源监控
由于集群用到多台服务器,因此如何便捷、直观地监控每台服务器当前的状态,成为系统实施与维护首先要考虑的问题。数据质量管理系统使用Cloudera Manager(免费版)作为Hadoop 集群管理和监控的工具,并进行了适当优化,提供了一个B/S 结构的管理界面,用户可以实时查看到集群里每一台服务器的健康状况、资源使用率、任务执行情况等信息。
3.3 主要创新点
(1)利用分布式技术解决传统关系型数据库的性能瓶颈
数据质量管理系统具有数据量大、数据增长快以及分析任务繁重等特点。传统关系型数据库在应对这样的大数据量场景时,数据分析性能迅速下降,已难以满足实际的应用需求。本研究提出使用Hadoop 分布式架构重构系统中数据量较大的模块,关系型数据库只用于存储分析结果。
(2)使用多线程并行技术提高数据质量校验引擎的性能
为了能最大限度地利用分布式系统的硬件资源,提出了基于多线程的校验规则执行引擎。执行引擎能根据规则数量和当前系统负载情况动态创建线程池,其中包括问题数据查找和问题数据写入两种。在进行数据质量校验的过程中,系统根据问题数据写入和问题数据查找的情况自动创建或销毁线程,同时应用“数据切片”技术把数据按照线程的数量平均切分,配送到不同的线程以提升数据处理效率。利用多线程技术可以充分利用服务器的硬件资源,极大地提升性能。
(3)基于元数据自动生成数据质量校验规则
数据质量管理系统需要管理成千上万的校验规则,在提高校验性能的同时也需要提高校验规则配置的效率。元数据描述了数据库表关系以及数据表字段的详细信息,如字段类型、长度、数据来源、加密等级、数据质量要求等。本文创新提出了基于元数据的数据质量校验规则自动生成功能,用户只需在界面选择需要进行校验的表和字段,系统即可根据元数据中的数据质量要求自动生成校验规则,提高了规则配置的准确性。
4.结束语
本文针对电力企业数据质量管理工作的现状和难点,提出了分布式数据质量管理系统解决方案,通过开展分布式存储和计算关键技术研究,初步搭建大数据存储及计算平台,并针对数据质量管理子系统进行了技术架构升级和试点应用,原需45 h 的数据质量校验工作时间缩短至3 h以内,有效提升了系统处理和分析效率,同时为电网公司数据中心架构升级工作储备了技术基础。
参考文献:
[1] 田秀霞,周耀军.基于Hadoop 架构的分布式计算和存储技术及其应用[J].上海电力学院学报,2011,27(1):70-75.
[2] 辛军,陈康,郑纬民.虚拟化集群管理技术研究[J].计算机科学与探索,2010(4):325-327.
论文作者:王帅
论文发表刊物:《电力设备》2017年第25期
论文发表时间:2017/12/25
标签:数据论文; 质量论文; 规则论文; 分布式论文; 系统论文; 管理系统论文; 集群论文; 《电力设备》2017年第25期论文;