APP下载

分布式数据质量管理系统在电力企业的实践和应用

2016-06-13李远宁刘森张诗军陈丰王志英

电信科学 2016年4期
关键词:集中式校验引擎

李远宁,刘森,张诗军,陈丰,王志英

(中国南方电网有限责任公司信息部,广东 广州 510623)

分布式数据质量管理系统在电力企业的实践和应用

李远宁,刘森,张诗军,陈丰,王志英

(中国南方电网有限责任公司信息部,广东 广州 510623)

随着企业信息化水平和企业精细化管理要求的不断提高,企业对数据管理的需求也随之增强,如何提高企业数据质量更是需要重点解决的问题。 针对电力企业数据质量管理面临的挑战,创新提出了分布式数据质量管理解决方案。 针对集中式数据质量系统的性能瓶颈,在研究数据质量系统特点并借鉴国内外对大数据的解决方案后,提出了基于 Hadoop 分布式处理框架的解决方案。 利用 Hadoop 集群,可以把缺陷数据从 Oracle中抽离,分散存储在集群里多台服务器上,以有效提高磁盘 I/O 性能和数据分析性能。

数据质量管理;分布式;Hadoop

1 引言

随着企业信息化水平和精细化管理要求的不断提高,数据已成为企业的重要资源和核心资产,深刻影响企业的业务管理模式。企业数据质量水平,将关系到企业数据化管理、决策的效率和成效。

为促进数据质量水平的提升,电力行业开展了数据质量管理工作,并完成了数据质量管理系统的建设与推广,生产、营销、财务、人力资源等业务域的数据质量得到了显著提升,但也面临如下一些挑战:

· 涉及范围广,涉及各分省公司的营销、生产、人力资源、财务等业务领域;

· 校验规则繁多,各业务域都有相应的数据质量校验规则,涵盖非空、长度、格式、一致性、准确性等类型的 规 则 ,共 计 4 000 多 条 ;

· 数据量大,经统计,全网月增量数据为 8 亿笔,问 题数 据 为 3 000 万 笔 ;

· 数据校验耗时长,以营销域为例,当校验数据量达到 10亿笔或以上规模时,原基于集中式数据存储和计算架构的数据质量管理系统由于数据读写和数据统计操作瓶颈,完成数据质量校验和问题分析需 耗 费 70 h 以 上 的 系 统 运 行 时 间 ;

· 需要在短时间内执行大量的校验规则,对磁盘读写性能、CPU 和内存性能要求较高。

2 传统的数据质量管理模式

传统集中式数据质量管理系统可以规范化管理校验规则、调度规则的执行时间、统一管理数据质量报告,大大提高了数据质量校验的效率,并规范了数据质量的管理。数据量在千万级以内时,可以稳定高效地完成数据质量校验。

集中式数据质量管理系统 (以下简称集中式系统)主要包括两大模块,如图 1所示。

图1 集中式数据质量管理系统架构

(1)系统配置层

用于配置校验规则、执行策略、元数据等信息,查看数据质量分析结果。

(2)系统执行层

负责规则的执行和问题数据的存储。质量校验引擎采用 Oracle 存 储 过 程 实 现 ,通 过 database link(DBlink)链 接 到“被校验库”执行预先配置好的校验规则,统计并抽取查询出来的问题数据。问题数据存储在集中式系统数据库里进行进一步的过滤、合并和分析,最终生成数据质量报告。

集中式系统使用关系型数据库存储和分析数据,当面对海量数据时数据库服务器的性能往往会成为瓶颈。只 能 通 过 提 高 CPU 处 理 速 度 和 磁 盘 I/O 速 度 来 提 高 数据库性能,但这意味着系统成本的增加,并且随着数据的不断增长,数据库服务器很快又会成为性能瓶颈。图 2展示了不使用索引和使用索引时,SQL 执行时间随着数据 量 增 长 的 变 化 情 况 。可 以 看 出 ,数 据 量 在 500 GB 时 已出现瓶颈。

图2 SQL 查询性能

由此可见,传统的集中式系统仍存在不足,需要引入新的解决方案,以提升企业在数据质量管理方面的能力。

3 数据质量管理的实践

3.1 设计思路

针对集中式数据质量系统的性能瓶颈,本文在研究数据质量系统特点并借鉴国内外对大数据的解决方案后,提出 了 基 于 Hadoop 分 布 式 处 理 框 架 的 解 决 方 案 。 利 用Hadoop 集 群 ,可 以 把 缺 陷 数 据 从 Oracle 中 抽 离 ,分 散 存 储在 集 群 里 的 多 台 服 务 器 上 ,从 而 可 以 有 效 提 高 磁 盘 I/O 性能和数据分析性能。该方案具有以下优点:

· 基于 x86 服务器,可使用较廉价的服务器组建集群;

· 具有良好的可扩展性,当业务增长,需要处理更多的数据时,可以水平扩展和增加更多的节点;

· 集群的每个节点都可用于计算和存储数据,可应对PB级别数据的存储和分析。

3.2 分布式数据质量管理系统

分布式数据质量系统采用 J2EE 架构开发 ,可逻辑划分为用户交互层、数据处理层和数据存储层,如图 3 所示。

3.2.1 用户交互层

用户交互层即用户界面,通过界面可以进行系统配置、规则管理、报告导出等操作。主要功能包括以下几方面。

· 元数据管理:管理被校验库的元数据,包括表名、字段名、字段类型等信息。

· 模型管理:管理被校验库表之间的关联关系。

· 规则配置:管理质量校验规则,包括规则名称、规则描述以及校验脚本。

· 策略管理:管理校验规则的执行时间和执行参数。

· 报表管理:管理数据质量报告,包括生成、上报、查看等功能。

· 平台管理:管理组织机构、用户信息、系统日志等。

用户交互层是用户与系统交互的界面,在进行系统设计时充分考虑了界面的可用性和 便 利性,结合 AJAX 技术降低系统的响应时间,提升了用户使用体验;为简化校验规则的配置工作,系统可根据元数据自动生成校验规则的功 能 ,并 采 用 AJAX 技术 预 加 载 元 数 据 ,提 高 用 户 操 作 流畅度,大大提高规则配置的效率;还提供规则参数的功能。利用该功能可以把规则中相似的部分抽取出来,配置成若干个规则参数,因此可以减少规则的数量,降低规则变更的响应时间。

3.2.2 数据处理层

数据处理层是整个系统的核心,负责规则执行、缺陷数据查询分析等任务,主要功能包括以下几方面。

·执行策略任务调度:负责控制执行策略的任务调度,按周期定时启动执行策略。

· 缺陷数据分析:负责缺陷明细的分析,并生成数据质量报告。

· 规则执行引擎:负责执行规则脚本,记录执行日志。

·缺陷明细查询和导出:为用户交互层提供从Hadoop 集群里查询数据的接口。

图3 分布式数据质量技术架构

作为数据处理层的两大核心组件之一,规则执行引擎是数据质量管理系统的关键所在,直接影响了校验的效率。在设计规则执行引擎时主要考虑以下几点因素。

性能是首先要考虑的问题。本系统的规则执行引擎采用 开 源 ETL 工 具 Kettle 作 为 缺 陷 数 据 抽 取 引 擎 ,Kettle 可以把一个表的数据“切片”进行多线程分段抽取,因此可以比较高效地把问题数据抽取到质量管理系统里。另外,执行引擎还采用缓存机制,执行规则时会优先从缓存中获取结果以提高执行效率。

其次,稳定性是另一个重要因素。在数据质量管理系统里面,执行引擎里包含了大量的容错处理机制。例如,在规则执行失败后,执行引擎可以判断失败的原因并决定是否需要重试,如果遇到不可恢复的异常,则直接把规则标记为失败并继续执行下一条规则。

最后,还要考虑对数据源的适应性。为了扩大数据质量管理系统的使用范围,执行引擎需要兼容多种主流的数据 库 。目 前 已 兼 容 MySQL、SQL Server 和 Oracle,日 后 会 兼容更多类型的数据库。

缺陷数据分析引擎是数据处理层的另一个核心组件。缺陷明细数据采集到 Hadoop 后 ,该引擎 对数据进行分析,生成并汇总结果,最终生成数据质量报告。为了加快数据分析的效率,系统把分析任务细分成多个更小规模的任务,当所有任务完成后再汇总生成最终的结果。

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 分布式架构重构系统中数据量较大的模块,关系型数据库只用于存储分析结果。本系统采用了基于 Impala 框架封装的数据分析引擎,开发人 员可以使 用熟悉的 SQL 语言进行数 据分 析 ,以降低 Hadoop集群的应用门槛。利用 Hadoop 集群可以轻易实现数据的水平分布,从而大大提高系统的可用性和数据分析性能。

(2)使用多线程并行技术提高数据质量校验引擎的性能

为了能最大限度地利用分布式系统的硬件资源,提出了基于多线程的校验规则执行引擎。执行引擎能根据规则数量和当前系统负载情况动态创建线程池,其中包括问题数据查找和问题数据写入两种。在进行数据质量校验的过程中,系统根据问题数据写入和问题数据查找的情况自动创建或销毁线程,同时应用“数据切片”技术把数据按照线程的数量平均切分,配送到不同的线程以提升数据处理效率。利用多线程技术可以充分利用服务器的硬件资源,极大地提升性能。

(3)基于元数据自动生成数据质量校验规则

数据质量管理系统需要管理成千上万的校验规则,在提高校验性能的同时也需要提高校验规则配置的效率。元数据描述了数据库表关系以及数据表字段的详细信息,如字段类型、长度、数据来源、加密等级、数据质量要求等。本文创新提出了基于元数据的数据质量校验规则自动生成功能,用户只需在界面选择需要进行校验的表和字段,系统即可根据元数据中的数据质量要求自动生成校验规则,提高了规则配置的准确性,并且大大节省了人工成本,提高了规则配置效率。目前,营销、生产、财务、人力资源等业务领域约 3 255 条 校 验 规 则 均 通 过 此 方 法 生 成 。

4 系统实践

4.1 性能对比测试

实际测试表明,分布式系统具有优秀的水平扩展性,随着 数据量 的增长,Hadoop 集群的执 行时间 几 乎 呈 线 性增 长 。 应 用 集 中 式 架 构 的 平 均 数 据 读 取 速 度 为 150 MB/s,读 取 1 TB 的 数 据 需 要 约 2 h;Oracle 的 处 理 时 间 则 呈 指 数级增加,如 图 4 所 示 。可 以 看 出 ,当数据量达到 500 GB 时 ,在 Oracle 上执行 SQL 已出现性能瓶颈。

图4 关 系型数据库与 Hadoop 集群执行时间对比

4.2 应用情况

目前分布式数据质量管理系统已完成开发,并在广西电网公司、广东电网公司试运行,根据现场收集的运行数据,应用分布式数据质量管理系统,最高可实现数据质量校验效率比原集中式系统提升 15倍左右。

服务器配置信息见表 1。

表1 服务器配置信息

数据质量校验情况见表 2。

表2 数据质量校验性能对比

从表 2可以看出,分布式系统的性能比集中式系统有数量级的提升。 由于客观因素的限制,广东电网公司的被校验库和 Hadoop 集群部署在 不同的子网络,受到网络和防火墙的影响,校验时间要长于广西电网公司。

5 结束语

本文针对电力企业数据质量管理工作的现状和难点,提出了分布式数据质量管理系统解决方案,通过开展分布式存储和计算关键技术研究,初步搭建大数据存储及计算平台,并针对数据质量管理子系统进行了技术架构升级和试 点 应 用 ,原 需 45 h 的 数 据 质 量 校 验 工 作 时 间 缩 短 至 3 h以内,有效提升了系统处理和分析效率,同时为中国南方电网公司数据中心架构升级工作储备了技术基础。

[1] 田 秀 霞 , 周 耀 军. 基 于 Hadoop 架 构 的 分 布 式 计 算 和 存 储 技 术及其应用[J]. 上海电力学院学报,2011,27(1):70-75. TIAN X X,ZHOU Y J.The technology and application of distributed computing and storage based on Hadoop architecture[J]. Journal of Shanghai University of Electric Power,2011,27 (1):70-75.

[2] BIRMAN K P,GANESH L,RENESSE R.Running smart grid control software on cloud computing architectures[C]/Workshop on Computational Needs for the Next Generation Electric Grid,April 19-20,2011,Cornell University,Ithaca.[S.l.:s.n.],2011:1-28.

[3] 刘 鹏. 云 计 算 [M]. 北 京 :电 子 工 业 出 版 社 ,2010. LIU P.Cloud computing [M ].Beijing:Publishing House of Electronics Industry,2010.

[4] REESE G.Cloud application architectures:building applications and infrastructure in the cloud [M].New York:OˊReilly Media,2009.

[5] 辛 军 ,陈 康 ,郑 纬 民. 虚 拟 化 集 群 管 理 技 术 研 究 [J]. 计 算 机 科学与探索,2010(4):325-327. XIN J,CHEN K,ZHENG W M.Studies on virtualization of cluster resource management technology[J].Journal of Frontiers of Computer Science and Technology,2010(4):325-327.

[6] HDFS scalability with multiple NameSpaces [EB/OL].[2015-09-20].http:/issues.apache.org/jira/browse/HDFS-1052.

[7] WHITE T.Hadoop:the definitive gide[M].New York:OˊReilly Media,2009.

[8] Hadoop apache project [EB/OL]. [2015-09-20].http:/hadoop. apache.org.

[9] GHEMAWAT S,GOBIOFF H,LEUNG S T.The Google file system [C]/SOSP,October 19-22,2003,Bolton Landing,New York,USA.New York:ACM Press,2003.

[10]陈 远 ,罗 琳. 信 息 系 统 中 的 数 据 质 量 问 题 研 究 [J]. 中 国 图 书馆学报,2004(1):48-50. CHEN Y,LUO L.Research on data quality in information system[J].Journal of Library Science in China,2004(1):48-50.

[11]胡 金林,梅士 员. 基 于 元 数 据 扩 展 的 空 间 数 据 质 量 管 理 方 法[J]. 现 代 测 绘 ,2004,27(3):21-24. HU J L,MEI S Y.The extended metadata method of spatial data quality management [J].Modern Surveying and Mapping,2004,27(3):21-24.

Practice and application of distributed data quality management system in power enterprise

LI Yuanning,LIU Sen,ZHANG Shijun,CHEN Feng,WANG Zhiying
Information Department of China Southern Power Grid Co.,Ltd.,Guangzhou 510623,China

As the improvement of the enterprise’s informationalization level and the increasing management requirement of enterprise refinement,the demand of data management of enterprise is becoming greater and greater,how to improve the data quality of the enterprise is the key problem needed to be solved.Aiming at the challenges of data quality management that the power enterprise faces,some solutions for distributed data quality management were proposed.After researching the system features of data quality,some foreign and domestic cases of big data were analyzed as reference,and a solution based on Hadoop distributed processing framework was given to solve the performance bottleneck of centralized data quality system.Hadoop clustering could dissociate defect data from Oracle and the data would be stored separately on multiple servers of the clustering,which could improve the I/O performance and data analysis performance of the magnetic disk effectively.

data quality management,distributed,Hadoop

TP391

:A

10.11959/j.issn.1000-0801.2016104

李远宁(1981-),男,博士,中国南方电网有限责任公司信息部高级工程师,主要从事大数据分析及应用工作。

张诗军(1973-),男,中国南方电网有限责任公司信息部高级工程师,主要从事数据管理、管理信息化工作。

陈丰(1973-),男,中国南方电网有限责任公司信息部工程师,主要从事管理信息化、架构设计工作。

刘森(1983-),男,博士,中国南方电网有限责任公司信息部工程师,主要从事大数据分析及应用工作。

王志英(1962-),男,中国南方电网有限责任公司信息部教授级高级工程师,主要从事管理信息化、架构设计工作。

2015-09-20;

2016-03-11

猜你喜欢

集中式校验引擎
使用Excel朗读功能校验工作表中的数据
新海珠,新引擎,新活力!
光伏:分布式新增装机规模首次超越集中式
三生 三大引擎齐发力
炉温均匀性校验在铸锻企业的应用
蓝谷: “涉蓝”新引擎
电子式互感器校验方式研究
接触网隔离开关集中式控制方案研究
光伏集中式逆变器与组串式逆变器
浅析组串式和集中式逆变器安全可靠性