APP下载

大型电力企业基于GBase分布式数据仓库建设初探

2018-05-22黄佩卓

计算机应用与软件 2018年5期
关键词:数据仓库数据库模型

邱 菊 王 岩 黄佩卓 王 洋

(北京中电普华信息技术有限公司 北京 100085)

0 引 言

计算机和网络技术的发展带来日益激烈的市场竞争环境,企业各级管理人员迫切需要根据企业的现状和历史数据做出判断和决策。各级管理人员也希望能够从企业信息系统中获取有效的、一致的决策支持信息,及时准确地把握市场变化的脉搏,做出正确有效的判断和抉择[1]。随着企业信息系统的运行和建立,数据量越来越大,企业的数据源越来越多,这种需求比以往任何时候都更加迫切,也更加难以实现。面对这些问题,作为决策支持系统环境的核心,数据仓库的建设很有必要[2]。

国家电网公司作为全球最大的公用事业行业,拥有繁多的业务类型和管理层级,其信息化建设在经过SG186和SG-ERP工程建设和应用后,已经建成总部、省市公司两级数据中心,积累数据总量超过5 PB,设计并作为企业标准发布公共信息模型(SG-CIM),支撑了“三集五大”核心业务的集成融合[3],为大规模开展大数据应用奠定了基础。随着公司各业务条线信息系统建设和应用的不断深入,公司提出到“十三五”末,建成“数据干净透明、模型规范统一、分析灵活智能”的全业务统一数据中心,包括处理域、管理域、分析域三部分建设内容,面向全业务范围、全数据类型、全时间维度提供统一的存储、管理与服务,实现业务高度融合、数据充分共享。数据是信息化的核心,考虑到现阶段数据接入情况以及大数据的分析需求,数据仓库的建设迫在眉睫[4]。本文结合国网公司的全业务统一数据中心的建设现状,基于GBase 8a分布式数据库对数据仓库的建设进行初步探索。

1 行业内外建设现状

随着我国信息化建设的逐步开展,传统的数据库技术已经满足不了企业快速发展的需求,简单的报表汇总信息不能及时、全面地向管理者提供有效的决策数据,因此,数据仓库技术应势而生。数据仓库技术经过发展融合,如今已经渗透到了各行各业,电信、银行、金融、保险、制造、零售等,都建立了符合自身行业特色的企业数据模型和数据仓库系统[5]。

在我国较早引入数据仓库应用的是电信运营类企业,其中最具有代表性的当属“中国移动”和“中国联通”两家电信运营商。中国移动构建的“经营分析系统”[3]是为企业经营决策提供信息支撑的系统,包括数据获取层、数据存储层、数据应用层、数据访问层和数据管理层五部分,从总体和不同类型客户角度对每种业务的总量发展、增量发展、新业务使用情况、业务发展构成进行了多维分析与预测。联通集团的大数据中心建设项目,把数据仓库模型的层次结构划分为接口层、整合层、中间层和汇总层,整个业务流程包括:接口层保存接入的源数据,在整合层对源数据进行标准化和编码统一,接着传输到中间层形成基础宽表支撑数据分析与挖掘,最后在汇总层中依据指标形成可场景化的数据汇聚。这些前期的建设成果为行业内提供了市场管理分析和决策支持的基本数据平台,实现了通信领域相关业务系统源数据的整合,为行业发展积累了宝贵经验[6]。银行业一直是金融领域发展关注的焦点,中国建设银行借鉴业界领先的FSDM模型和九大概念,对全行业业务数据、业务指标从企业级视角进行规范化、标准化的梳理,打破了以前部门级数据所形成的一个个“信息孤岛”。数据仓库具体划分为RDW实时数据仓库、贴源数据区、基础主题区和应用组件数据区,完成了从数据接入到主体划分、分析预测的数据处理全过程。

通过与上述行业数据仓库建设的相关专家进行充分研讨和交流,国家电网公司参考IEC61968/IEC61970等国际标准模型,结合电力公司实际业务情况,基于公共信息模型(SG-CIM)设计成果开展了企业级数据仓库设计和建设的探索。目前国家电网公司已经基本完成SG186信息化工程建设,但是随着各业务的交互和深入,逐渐暴露出跨专业业务协同与信息共享不足,数据多头输入,数据准确性,实时性不强,数据反复抽取、冗余存储、质量不高等问题[7]。为了提高企业信息系统的统一性和数据的一致性,实现企业内部信息资源的共享,需要开展集中的企业数据管理,建立统一的数据管理中心。

2 数据仓库模型的设计

2.1 总体架构设计

企业数据仓库的总体架构包括基础数据层、整合明细层和轻度汇总层,其中基础数据层包括贴源历史区和纵向历史区,如图1所示。此处数据仓库模型的设计内容只包含结构化数据模型的设计:确定结构化数据的唯一来源,统一数据编码规则,形成面向全业务整合、归集后的非贴源物理表结构,提供数据清洗转换的依据,初步完成可在国网总部及各省市公司落地实施的数据仓库标准模型,为公司各类分析应用提供统一的结构化数据支撑。

图1 数据仓库架构示意图

贴源历史区的数据与源业务系统数据表结构保持一致,用于长期保存历史数据,便于追溯数据来源,屏蔽对源生产系统的影响。纵向历史区存储总部下发到省市公司的数据以及省市公司拟上传到总部的数据。基础数据层的分区设计,有助于实现不同功能的数据分类存储,方便数据仓库在总部及省市公司的两级部署和统一管理。

整合明细层中结构化数据模型的设计实现了SG-CIM模型的落地,以企业级视角建立数据仓库,分域对数据进行整合、统一,保障数据唯一性。具体包括分系统模型设计和分域模型设计。明细层分系统模型设计工作是对各个业务进行初级筛选,达到编码统一、语义统一、字段长度、类型、量纲等统一的目标,保障数据一致性,兼顾性能,分系统存放明细数据,快速支撑分析域全面建设,指导数据清洗转换。明细层分域模型设计工作是基于SG-CIM 3.0以企业级视角进行设计,围绕人员、财务、物资、资产、电网、项目、客户、市场、安全及综合等十大主题域按域整合,对各域模型成果进行整合、统一,保障数据唯一性,最终形成覆盖全业务的、统一的明细数据模型设计成果,支撑分析域的全面建设。

轻度汇总层基于明细数据层模型进行设计,也采用按域整合的方法,以需求为驱动,为提升分析效率,对于计算复杂、关联表多且数据量大的共性分析需求,预先按照维度建模的方式进行整合、汇总。轻度汇总层模型的设计是下一阶段建设重点工作之一,在现阶段数据仓库初步建设过程中尚未体现。

2.2 明细数据层模型设计

按照总体架构的划分,贴源历史区处于明细数据层下游,与源业务系统表结构保持一致,为指导各业务系统数据迁移到贴源历史区的实施工作,从数据接入范围、数据存储方式、建表原则等方面对贴源历史区的数据模型进行规范,增加时间戳等扩充字段,用来长期保存历史数据,屏蔽对源业务系统的影响。明细数据层位于贴源历史区之上,以贴源历史区为数据源,通过对业务系统数据表进行初步筛选,形成涵盖全部业务含义的全量业务明细数据的模型,是数据仓库模型设计的核心内容,具体包括分系统模型和分域模型设计两部分。遵循数据仓库模型的设计原则,采用“自下而上”和“自上而下”相结合的方式,按照逻辑模型设计、物理模型设计的步骤,分别进行明细层数据模型分系统模型和分域模型的设计[8]。

2.2.1 明细数据层分系统模型设计

明细层分系统模型设计围绕业务系统的数据实体、属性、关联关系开展设计工作,在此基础上,对数据实体、属性、关联关系进行分析,形成分析后的过程成果。基于过程成果,进一步梳理编码、枚举类等信息,结合以上成果开展明细层分系统逻辑模型设计工作。基于逻辑模型,明确编码、枚举类的统一标准,进而开展明细层分系统物理模型设计工作,在充分的验证、交叉讨论后,形成最终成果。整体设计思路如图2所示。

图2 明细层分系统模型设计思路

依据明细层分系统模型设计思路,逻辑模型设计先由设计团队收集各业务系统的最新数据字典和应用需求,将系统表、过程表、快照表、配置表、日志表及业务表的部分属性去除,再结合收集成果,用建模工具进行逻辑模型设计,形成逻辑数据实体、属性、关联关系。物理模型设计是先基于逻辑模型制定统一的标准,在其标准上补充满足下游使用数据需求及清洗转换需求的公共字段(如时间戳、来源系统、开始时间、结束时间、修改标识、有效标识等属性),同时与源系统物理表核实,结合数据的变化周期、访问频度、数据存量机制、数据增量机制等设计要素特性,最终将逻辑模型落地形成面向目标数据库的物理模型。整体设计方法如图3所示。

图3 明细层分系统模型设计方法

2.2.2 明细数据层分域模型设计

明细层分域模型设计依据全业务统一数据中心建设要求,基于SG-CIM3.0模型设计中人员、财务、物资、项目、资产、电网、客户、市场、安全及综合十大主题域,分域开展本主题域的明细层分域模型设计工作,形成企业级视角分析域的存储模型。分域模型设计围绕着SG-CIM3.0的落地开展,将SG-CIM3.0成果转换成物理模型,通过转换后的物理模型的实体、属性扩充,形成明细层分域的逻辑模型,再制定将各业务系统实体、属性进行按域整合的标准,进而开展明细层分域物理模型设计,在充分的验证、交叉讨论后,形成最终成果。整体设计思路如图4所示。

图4 明细层分域模型的设计思路

明细数据层分域的逻辑模型设计,首先要基于SG-CIM3.0设计成果,按照扁平化设计方式,将SG-CIM3.0中实体类、枚举类实例化为数据仓库逻辑模型,并保持实体、属性及关联关系命名的一致,形成逻辑模型初设。物理模型设计则需先把逻辑模型初设与分系统逻辑模型进行对比,找出实体、属性、关系差异,根据差异,扩充逻辑模型实体、属性,确定权威数据源等关键信息,在其基础上增加必要的公共字段和设计要素(同分系统模型设计),将原来的实体表和编码表转化为数据库的数据表和建表脚本。整体设计方法如图5所示。

图5 明细层分域模型的设计方法

本次模型设计工作采用EA(Enterprise Architect)软件作为模型设计工具,将业务流程抽象提炼成实体、关系,通过EA工具绘制实体关系图,依据业务含义详细描述实体包含的属性、不同实体间的主外键关系。逻辑模型中用类模块(Class)表示实体,物理模型中用表模块(Table)表示模型表。遵循设计规范的要求,对逻辑模型与物理模型的实体名、属性名以及别名进行统一命名。实体间的一对一、一对多或多对一等关联关系均体现在模型设计图中,形成最终可交付的模型图成果。

3 数据仓库的初步建设

3.1 数据仓库技术架构

在数据仓库以43套业务系统为设计范围的明细数据层模型初步设计完成后,以全业务统一数据中心分析域架构为基础,对模型现阶段成果进行差异比对验证及实施验证。首先部署在总部、天津等27家省市公司,形成模型差异反馈意见,向总体设计组进行差异化报备,根据反馈意见组织研讨,研讨后对模型进行迭代更新;更新后进行物理模型落地和脚本转换的实施验证,推进数据仓库的进一步建设。

数据仓库的建设是基于国家电网全业务统一数据中心分析域技术架构的,分析域技术架构由大数据平台+MPP型数据库混搭结构组成,如图6所示。

图6 分析域技术架构

其中支撑结构化数据存储和计算的数据仓库建设在MPP数据库上;数据仓库的数据接入采用ETL、OGG等技术方式,将数据源中各业务系统的结构化数据进行技术对应;数据存储计算层作为整个架构的核心分为数据仓库、大数据平台和数据集市三个存储计算区域,数据仓库是针对结构化数据进行存储计算的;统一分析服务层包括多维分析、数据挖掘等技术组件及算法,以数据存储计算层为基础结合技术处理方法,实现专题分析挖掘、多维报表、定制应用等功能。

大规模分布式并行数据库集群系统(GBase 8a MPP Cluster)属于MPP型数据库,是在 GBase 8a 列存储数据库基础上开发的一款 Shared Nothing架构的分布式并行数据库集群,具备高性能、高可用、高扩展特性,可以为超大规模数据(TB至PB级)管理提供高性价比的通用计算平台,广泛地用于支撑各类数据仓库系统。传统的行式存储数据库在查询机制方面存在一定的局限性,在数据规模较大情况下进行查询操作具有明显的性能瓶颈,如速度较慢、耗时长等。列式存储数据库是把同一属性的数据存放在一起,此种机制更适合处理大规模复杂分析。除此之外,GBase 8a数据库具有粗粒度智能索引的技术特征,在哈希键的指引下能够实现高速查询,表现出突出优势。本次国网全业务统一数据中心数据仓库建设选用GBase 8a Cluster集群产品进行落地实施。

3.2 模型验证与建设成果

在模型初步设计完成后,经过项目组各组成员的内部评审,根据评审建议进行修订完善,完善后的版本在总部及各省市公司进行匹配验证及差异反馈工作。将逻辑模型图、物理模型图和模型设计说明书以及物理模型建表脚本等模型成果,下发到总部及27家省市公司分析域实施团队,通过将模型中的来源表、来源字段与业务系统数据字典进行匹配验证,形成模型验证反馈意见。具体是将数据仓库模型中的每一个实体及实体的每一个属性,与相关业务系统数据字典中的每一张表及每一个字段进行逐一比对;首先比对名称,对于模型中存在而数据字典中不存在,或者模型中不存在而数据字典中存在的情况,进一步进行业务含义的比对。若名称比对和业务含义比对过程中都不能完全匹配的,则记录下差异反馈,在模型后续版本迭代更新中进行补充。各省市公司反馈数据仓库明细数据层分系统模型与业务系统数据字典基本可以实现匹配,除个别数据量较小的业务系统(如员工报销、凭证协同等)由于省市公司系统建设的个性化差异而未能与总体设计组的典设模型完全匹配外,其他设计范围内的系统都可以匹配,模型数据可以支撑企业经营决策和分析挖掘应用的数据需求,因此本次设计的数据仓库模型可用、接入数据可溯源。

差异比对验证后的模型继续进行实施验证,在数据库表中建立表结构,使实施环境具备数据接入的条件。利用EA工具由物理模型图能够自动导出Oracle建表语句,由于目标数据库为GBase 8a,因此必须转换为GBase 8a的建表脚本。Oracle与GBase 8a在表类型、存储、索引、分区、主外键、关联关系标识、触发器等机制方面存在诸多差异,给建表语句语法转换和表类型选择等方面带来巨大的人工工作量。针对该问题,本文提出如下解决策略:转换过程的软件环境要求为Oracle数据库、虚拟机Linux操作系统、GBase 8a数据库等;编写三个shell脚本实现文件的批处理过程;编写存储过程实现在GBase 8a数据库中创建表结构的功能。硬件环境要求为GBase 8a MPP集群只部署单节点即可执行该转换操作,具体步骤如下:根据模型在Oracle数据库中生成表结构,再依据GBase 8a表类型划分规则对所有的模型表分类,其中分类为哈希分布表的标注出哈希列;由GBase 8a建表语法可知,哈希列按照主键、字段值唯一、关联查询等值字段、重复值低的字段、group by字段的优先级原则进行选取,哈希键的数据类型只能是varchar、int或bigint。根据分类之后的不同表类型,针对在Oracle数据库中已经建立的表,通过调用存储过程分别生成GBase 8a中各类型表的建表脚本。最后在分析域实施团队搭建的GBase 8a集群数据库中验证建表语句的语法,确保语句的合法性。

基于上述验证,数据仓库现阶段的建设成果显著。项目组已完成38套业务系统的数据仓库明细层分系统逻辑模型及物理模型的评审、征求意见反馈、修订完善设计成果并下发。基于该成果,目前国家电网在总部、天津、冀北、山东、山西、重庆、湖北、湖南等全国范围内27家省市公司全面开展了全业务统一数据中心分析域物理环境的部署、数据迁移和数据清洗转换等工作。GBase 8a Cluster的物理环境是以集群形式组织的,数据迁移和清洗转换工作开始之前,已完成管理节点和数据节点的硬件部署、系统安装、数据库的软件部署、定制化服务器的上架等集群部署工作。在与业务部门协商后,确定生产系统的权限开放期限,进行数据接入数据仓库贴源历史区的工作,以屏蔽对生产系统正常运行的影响。通过配置ETL服务器进行抽取、转换、加载,数据由贴源历史区接入数据仓库明细层分系统模型中,数据仓库完成初步建设。建设成果示例如总部分析域实施环境,现搭建的集群规模为3个管理节点,15个数据节点,采用NF5280M4型号的x86机,操作系统为Linux 6.8系统,数据库系统为GBase 8a Cluster 862版。管理节点和数据节点分别部署完成后,开始迁移源业务系统的历史数据到集群中。在60天内,总部已接入应急指挥、后勤管理、安监一体化等36个业务系统的历史数据及部分增量数据合计共169 968.677 GB到贴源历史区。

4 结 语

在国家电网全业务统一数据中心建设目标的要求下,为了实现全业务、全类型、全维度数据的融合,本文进行了企业级数据仓库模型建设的初步探索。结合国网的业务特征和实际需求可知,数据仓库的建设是分层次分阶段逐步开展的,现阶段以明细层分系统模型的设计、贴源历史层的数据迁移与分系统层的数据接入为主要设计、建设内容。通过明细层分系统模型的设计,将业务系统中的系统表、配置表、统计表、日志表等非业务数据表进行了清理,保留了表征业务含义的明细数据,有效规避了数据仓库上游应用在调用业务数据时对源系统的运行性能影响。

在明细层分系统模型设计成果基础上,以企业级信息模型为指导,围绕国网人员、财务、物资、项目、资产、电网、客户、市场、安全及综合十大主题域按域设计,通过交叉讨论和统筹设计的方式对各域模型成果进行整合、统一,保障数据唯一性,形成明细数据层分域模型。基于明细层模型设计成果,结合实际业务需求,采用反范式的设计方式,通过改变数据粒度(如:按照日、周、月、季、年等颗粒度)对公司热点数据进行分析,采用聚合、合并、增加属性、去掉属性等方法,最终形成统一的数据仓库轻度汇总层模型,为分析挖掘应用提供高效的支撑,是企业级数据仓库设计的下一步重点建设任务。

参 考 文 献

[1] 游建培.数据仓库应用及未来发展[J].金融电子化,2007(9):65-67.

[2] 任润虎.电力系统数据仓库技术及其应用[D].天津大学,2010.

[3] 王建伟.移动通信经营分析系统数据集市设计与实现[D].北京邮电大学,2012.

[4] 罗先贤.数据仓库在城市公共建筑能耗管理中的应用[J].计算机应用,2011,31(10):2853-2857.

[5] 丁学英.企业数据中心建设探讨[J].电力信息化,2007,5(9):30-33.

[6] 戴心凌.大型商业银行企业级数据仓库系统的构建[D].复旦大学,2010.

[7] 付立辰.电力企业中数据仓库模型的研究与应用[D].华北电力大学,2012.

[8] 张玉芳,熊忠阳.数据仓库数据模型的设计[J].计算机应用,1999,19(9):10-12.

猜你喜欢

数据仓库数据库模型
适用于BDS-3 PPP的随机模型
自制空间站模型
基于数据仓库的数据倾斜解决方案研究
模型小览(二)
数据库
探析电力系统调度中数据仓库技术的应用
数据仓库系统设计与实现
数据库
离散型随机变量分布列的两法则和三模型
数据库