基于统一维度建模的电力信息系统数据管理系统及其方法
技术领域
本发明涉及一种数据处理技术领域的数据建模方法,具体讲涉及一种基于统一维度建模的电力信息系统数据管理系统及其方法。
背景技术
Kimball提出的维度建模(dimensional modeling)是数据仓库建设中的一种数据建模方法。该法介绍了按照事实表,维度表构建数据仓库,数据集市。该法广为流传的名字是星型模式(Star-schema)。实体关系模型(E-R)建模通常用于为单位的所有进程创建一个复杂的模型。实践证明这种方法在创建高效联机事务处理(OLTP)系统方面很有效。相反,维度建模则针对零散的业务进程创建个别模型。例如,将销售信息创建为一个模型,而库存则创建为另一个模型,客户帐户也可创建为另一个模型。创建的每个模型捕获事实数据表中的事实,以及那些链接到事实数据表中的维度表中的事实的特性。这些排列产生的架构称为星型模式或雪花模式,实践表明这在数据仓库设计中很有效。
维度建模将信息组织到结构中,这些结构通常对应于分析者希望对数据仓库数据使用的查询方法。例如查询1999年第三季度西北地区的食品销售额,从三个维度(产品、地理、时间)指定要汇总的信息。
广泛被使用星型模式的原因在于针对各个维度作了大量的预处理,如按照维度预先统计、分类、排序等。通过这些预处理,能够极大的提升数据仓库的处理能力。特别是针对3NF的建模方法,星型模式在性能上占据明显的优势。
同时,维度建模法的另外一个优点是,维度建模非常直观,紧紧围绕着业务模型,可以直观的反映出业务模型中的业务问题。不需要经过特别的抽象处理,即可以完成维度建模。这一点也是维度建模的优势。概括讲,维度建模有如下优点:
a)维度建模是可预测的标准框架。允许数据库系统和最终用户查询工具在数据方面生成强大的假设条件,这些数据主要在表现和性能方面起作用。
b)星型连接模式的可预测框架能够忍受不可预知的用户行为的变化。
c)具有非常好的可扩展性,以便容纳不可预知的新数据源和新的设计决策。可以很方便在不改变模型粒度情况下,增加新的分析维度和事实,不需要重载数据,也不需要为了适应新的改变而重新编码。较好的扩展性意味着以前的所有应用都可以继续运行,并不会产生不同的结果。
但是,维度建模法的缺点也是非常明显的,由于在构建星型模式之前需要进行大量的数据预处理,因此会涉及大量的数据处理工作。而且,当业务发生变化,需要重新进行维度定义时,往往需要重新进行维度数据的预处理。而在这些预处理过程中,往往会导致大量的数据冗余。
维度建模法的另外一缺点是,如果只是依靠单纯的维度建模,不能保证数据来源的一致性和准确性,而且在数据仓库的底层,不是特别适用于维度建模的方法。
随着信息系统的应用,越来越多的电力生产和运营数据被产生和采集,数据仓库技术正在逐步应用于高效的数据管理以及进一步的数据分析和挖掘,为电力企业的运营管理和分析决策过程提供支持。在现有的数据仓库技术中,往往是对预知的数据类型进行维度划分并据此设计相应的多个维度表和事实表来描述数据。如果出现新的数据类型,则需要设计与之对应的新的事实表和维度表,并调整相应的数据管理功能。因此,这种方式往往会导致后期难于对数据扩展。而电力运营管理尤其是交易管理中,数据结构较为复杂,并且由于业务的拓展和变化,常常会出现新的数据结构,上述的建模方法在实际使用中往往会带来后期大量的维护和扩展工作。
发明内容
针对现有技术的不足,本发明的目的是提供一种基于统一维度建模的电力信息系统数据管理系统及其方法,该方法实现电力信息系统中复杂结构数据的统一管理,方便数据的检索、存储以及不同业务系统之间的数据交互,为数据管理工具的设计和开发提供统一的数据基础。
本发明的目的是采用下述技术方案实现的:
本发明提供一种基于统一维度建模的电力信息系统数据管理系统,其改进之处在于,所述系统包括:
用于管理和维护可用的数据维度属性池的数据维度属性池管理模块;
用于完成数据的定义和数据维度模型的描述的数据维度模型定义模块;和
为数据的检索、存储以及统计分析提供统一的数据管理接口,使得数据的使用不因结构的改变而改变的数据管理接口服务模块。
进一步地,所述数据检索指数据维度属性检索,数据检索过程为:首先到维度属性定义信息表中查找数据维度属性定义信息,获得已知数据维度属性和检索数据维度属性定义编码,然后根据数据的已知数据维度属性定义编码和值到数据实体表中查找到满足条件的数据实体列表,根据检索数据维度属性定义编码中获得需检索的数据维度属性的值;
所述数据存储指将数据实体存储到数据实体表中,数据存储过程为:数据存储时首先按照数据维度属性定义编码查找该数据的维度属性定义信息组合,创建数据实体编码,按照数据维度属性定义信息逐条生成数据实体记录并为每条实体记录的维度属性值赋值,然后查找数据定义的存储表名,将数据实体存储到数据实体表中;
所述数据统计分析用于统计分析数据实体列表中的数据项,数据统计分析过程为:从数据维度属性定义信息表查数据的维度属性定义组,将找到统计条件相关的数据维度属性定义编码,根据统计条件到数据实体表中找到符合条件的数据实体列表,统计所述数据实体列表中的数据项并进行运算得到所需的统计结果。本发明还提供一种基于统一维度建模的电力信息系统数据管理系统的管理方法,其改进之处在于,所述方法包括下述步骤:
(1)建立数据维度属性池;
(2)动态管理数据维度属性池;
(3)设置数据维度属性定义表;
(4)用数据维度属性定义信息描述数据;
(5)调用公共的数据管理服务接口模块进行数据存储、数据检索以及数据统计分析。
进一步地,所述步骤(1)中,对数据进行维度分析,按照最小粒度原则划分数据维度,并提供用于描述数据的维度类别和维度属性,建立数据维度属性池。
进一步地,所述步骤(2)采用数据维度属性池管理模块实现;数据维度属性池中的数据维度类别和各类维度中的维度属性均能够根据实际数据的需要进行扩展。
进一步地,所述步骤(3)中,维度属性定义表包括用于记录数据定义的各项维度属性定义的数据定义编码/属性类/属性命名/数据类型/数据单位字段,维度属性定义表中的一条记录对应数据的一个维度属性描述。
进一步地,所述步骤(4)中,维度属性定义组在结构上相同的数据的模型描述信息;定义数据时,采用维度属性定义表中的一组维度属性定义信息描述数据,一组维度属性定义信息对应数据实体表中的多组维度属性值记录;对于结构不同的数据,采用与之对应的维度属性定义组描述。
进一步地,每个数据的结构表现为维度属性定义表中的一组维度属性定义记录,同一个数据的各个维度属性定义记录通过相同的数据定义编码标记;每个数据的数据实体对应数据实体表中的一组维度属性值记录,同一个数据的各个实体通过相同的数据实体编码标记。
与最接近的现有技术相比,本发明具有的有益效果是:
1、本发明涉及一种基于统一维度建模的电力信息系统数据管理方法,通过维度属性定义信息的组合描述不同结构的数据,通过一组维度属性定义记录共同描述数据,维度属性定义组可以根据数据结构特点任意定义,如果数据结构发生变化,只要调整相应的维度属性定义组,并根据维度属性定义信息自身的数据结构设计了统一的数据管理接口服务。
2、本发明的突出特点在于采用维度属性定义组描述数据结构,数据的维度属性定义组可以根据数据结构的需要灵活设置。相对于采用表结构定义数据结构的方式,这种方法可以实现电力信息系统中各种复杂数据结构的统一建模,使得数据模型不再受制于固定的表结构设计。
3、采用这种方法对数据统一建模后,数据结构的描述信息在结构上相同,数据的管理以及对外的接口可以基于统一的维度属性定义结构进行标准化设计,便于统一的数据管理功能以及平台管理工具的开发。
附图说明
图1是本发明提供的统一维度数据建模示意图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
为适应电力信息系统中复杂多变的数据结构,实现对不同结构数据的统一建模。复杂数据结构是相对于主体-时间-数值这种简单的数据结构而言的,指数据由多项属性共同描述,每个数据对应的属性类别、数量都不尽相同。本发明提供一种基于统一维度建模的电力信息系统数据管理系统,包括以下功能模块:
一、数据维度属性池管理:
数据维度属性池管理模块完成可用的数据维度属性的统一管理和维护。
首先对电力信息系统中常见的各类数据进行综合分析,按照最小粒度原则对数据进行维度划分,提出用于描述数据的各种维度类别和相应的维度属性,建立综合的数据维度属性池。
为满足复杂且多样的数据结构,对数据维度属性池还需要进行动态管理,根据实际数据的需要对维度属性池中的数据维度的类别、各类维度中的维度属性进行扩展。
二、数据维度模型定义:
数据维度模型定义模块完成数据的定义和维度模型的描述。
设置统一的维度属性定义表,包括数据定义编码/属性类/属性命名/数据类型/数据单位等字段,用于记录数据定义的各项维度属性定义,该表中的一条记录对应数据的一个维度属性描述。
定义数据时,采用维度属性定义表中的一组维度属性定义信息对数据进行描述,与之对应的是数据实体表中的多组维度属性值记录。对于结构不同的数据,采用不同的维度属性定义组描述即可。
在这种数据建模方法中,不是通过表结构而是通过维度属性定义来对数据结构进行描述。数据结构可能各异,但是用于描述数据结构的维度属性定义信息的结构相同,因此基于数据维度属性进行的数据检索、存储等操作可以进行标准化设计,便于统一的数据管理功能及管理工具的开发。
在具体实现中,所有数据在维度属性定义信息表中被统一地定义,每个数据的定义对应该表中的一组维度属性定义记录,同一个数据的各个维度属性定义记录通过相同的数据定义编码标记。相应的,每个数据的数据实体也对应了数据实体表中的一组维度属性值记录,同一个数据的各个实体通过相同的数据实体编码标记。
三、数据管理接口服务
数据管理接口服务模块提供统一的数据管理接口,使得数据的使用不因结构的改变而改变。本发明中由于描述数据的维度属性定义具有相同的结构,因此数据的检索、存储以及统计分析等操作都可以采用统一的接口服务实现。
数据检索:首先到维度属性定义信息表查找数据的维度定义信息获得已知维度属性和检索维度属性的定义编码,然后根据数据的已知维度属性定义编码和值到数据实体表中查找到满足条件的数据实体列表,根据检索维度属性的定义编码从中获得需检索的维度属性的值。
数据存储:数据存储时首先按照数据定义编码查找该数据的定义信息组合,创建数据实体编码,按照数据的维度属性定义信息逐条生成数据实体记录并为每条实体记录的维度属性值赋值,然后查找数据定义的存储表名,将数据实体存储到该实体表中。
数据统计分析:到维度属性定义信息表查找数据的维度属性定义组,找到统计条件相关的维度属性定义编码,再根据统计条件到数据实体表中找到符合条件的数据实体列表,对列表中的统计数据项进行运算得到所需的统计结果。由于数据建模时已经按照最细粒度原则进行了维度划分,避免了冗余数据和多种层级数据同时存在的情形,相应也就避免了数据统计中的重复统计。
在本发明的基于统一维度建模的电力信息系统数据管理方法中,数据结构由维度属性定义组而不是由特定的数据表结构描述,因此对于多种复杂多变的数据结构只要为其选择合适的维度属性定义组合即可,不需要频繁调整数据库的表格形式,因而具有较好的适应性。同时由于描述数据的维度属性定义信息本身具有相同的结构,因此对数据的检索和存储等处理设计了统一的接口方法,实现了电力信息系统中数据的统一管理。
本发明还提供一种基于统一维度建模的电力信息系统数据管理系统的管理方法,包括下述步骤:
(1)建立数据维度属性池;对数据进行维度分析,按照最小粒度原则划分数据维度,并提供用于描述数据的维度类别和维度属性,建立数据维度属性池。
(2)动态管理数据维度属性池;采用数据维度属性池管理模块实现;数据维度属性池中的数据维度类别和各类维度中的维度属性均能够根据实际数据的需要进行扩展。
(3)设置数据维度属性定义表;维度属性定义表包括数据定义编码/属性类/属性命名/数据类型/数据单位字段,用于记录数据定义的各项维度属性定义,维度属性定义表中的一条记录对应数据的一个维度属性描述。
(4)用数据维度属性定义信息描述数据;数据的模型描述信息即维度属性定义组在结构上相同;定义数据时,采用维度属性定义表中的一组维度属性定义信息描述数据,一组维度属性定义信息对应数据实体表中的多组维度属性值记录;对于结构不同的数据,采用与之对应的维度属性定义组描述。每个数据的结构表现为维度属性定义表中的一组维度属性定义记录,同一个数据的各个维度属性定义记录通过相同的数据定义编码标记;每个数据的数据实体对应数据实体表中的一组维度属性值记录,同一个数据的各个实体通过相同的数据实体编码标记。
(5)调用公共的数据管理服务接口模块进行数据存储、数据检索以及数据统计分析。
本发明提供的管理方法具有以下特点:
(1)数据的统一维度建模:基于统一存储结构的数据维度建模----将数据属性划分为主体、应用、时间、版本等多个类别,数据的多个属性并列排布,属性的数量不影响数据的存储结构,通过属性的灵活组合实现对不同结构数据的描述。本发明通过维度属性定义表中的一组维度属性定义信息描述数据的结构,与之对应的是数据实体表中的多组维度属性值记录。对于结构不同的数据,采用与之对应的维度属性定义组描述即可,不受固定数据结构的限制。为满足复杂且多样的数据结构,数据维度的类别、各类维度中的维度属性都可以根据实际需要进行扩展。
(2)描述数据结构的数据采用相同的维度属性结构,即描述数据的维度属性自身具有相同的结构:均具有数据定义编码/属性类/属性命名/数据类型/数据单位等字段。
在具体实现中,所有数据在维度属性定义信息表中被统一地定义,每个数据的结构表现为该表中的一组维度属性定义记录,同一个数据的各个维度属性定义记录通过相同的数据定义编码标记。相应的,每个数据的数据实体也对应了数据实体表中的一组维度属性值记录,同一个数据的各个实体通过相同的数据实体编码标记。
实施例
以下以电力交易运营中发电权交易月度结算电量这一数据结构定义为例说明基于统一维度建模的数据管理方法的使用。
1.对数据进行最小粒度的维度划分,该数据的维度包括主体、应用、时间、数值四类,主体维包括购方、售方、输电方三个,应用包括交易类型(发电权)、数据所属子系统(结算)、电量计量口径(上网),时间包括开始时间和结束时间两个,数值维则有电量、电价、输电价三个,总计11个。
2.遍历现有的维度类别和维度属性,如不包括上述的维度属性,则在维度属性池管理模块增加相应的维度类别和维度属性的定义;
3.定义数据的名称为交易月度结算数据,为其生成一个数据定义编码,假设为10011;在维度属性定义表中依次定义数据的11个维度对应的维度属性定义信息(当定义其他数据时,对应的是维度属性定义表中另外的一组维度属性定义信息),每条的数据定义编码都是10011(步骤1生成的数据定义编码)并各有一个独立的维度属性定义编码。
4.数据的每个数据实体也对应了11条维度属性值记录(一个数据实体对应一组,一个数据定义可能对应多个数据实体。当定义其他数据时,对应的是同一个数据实体表中另外的一组维度属性值记录),每条的维度属性定义编码也是10011,同时还有一个数据实体编码标记这是同一个实体数据。
5.根据步骤3、4可知,不同结构的数据对应的数据定义信息和数据实体信息数据均是相同结构的记录,因此数据定义完成后即可调用公共的数据管理服务进行数据的存储、检索以及统计分析等操作。
当出现新的不同结构的数据时,只要根据需要定义新的维度类别或属性,然后在维度属性定义表中为数据定义不同的维度属性定义组合,既不需要创建新的数据定义表,也不需要对现有的表进行改动。本发明的统一维度数据建模示例表如下表1、表2和表3所示。
表1数据定义表
表2数据维度属性定义表
数据注册编码 |
属性项 |
属性命名 |
数据类型 |
数据单位 |
10011 |
主体1 |
购方电厂 |
字符 |
- |
10011 |
主体2 |
售方电厂 |
字符 |
- |
10011 |
应用1 |
交易类型 |
字符 |
- |
10011 |
应用2 |
计量口径 |
字符 |
- |
10011 |
时间1 |
开始时间 |
日期 |
yyyy-MM-dd |
10011 |
时间2 |
结束时间 |
日期 |
- |
10011 |
数值1 |
电量 |
浮点 |
MWh |
10011 |
数值2 |
电价 |
浮点 |
元/MWh |
表3数据实体表
数据实体编码 |
数据注册编码 |
数据项 |
数据值 |
a1110001 |
10011 |
购方电厂 |
A厂 |
a1110001 |
10011 |
售方电厂 |
B厂 |
a1110001 |
10011 |
开始时间 |
2014/1/1 |
a1110001 |
10011 |
结束时间 |
2014/10/1 |
a1110001 |
10011 |
交易类型 |
发电权 |
a1110001 |
10011 |
计量口径 |
发电侧 |
a1110001 |
10011 |
电量 |
10000 |
a1110001 |
10011 |
电价 |
345 |
a1110002 |
10011 |
购方电厂 |
C厂 |
a1110002 |
10011 |
售方电厂 |
D厂 |
a1110002 |
10011 |
开始时间 |
2015/1/1 |
a1110002 |
10011 |
结束时间 |
2015/12/31 |
a1110002 |
10011 |
交易类型 |
委托外送 |
a1110002 |
10011 |
计量口径 |
上网侧 |
a1110002 |
10011 |
电量 |
15000 |
a1110002 |
10011 |
电价 |
388 |
本发明的基于统一维度建模的电力信息系统数据管理方法,提出了统一维度建模的方法并设计了相应的数据管理接口,满足电力信息系统中结构复杂且多变的数据描述需求。基于数据维度属性进行的数据检索、存储等操作可以进行标准化设计,便于统一的数据管理功能及管理工具的开发。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。