一种基于电网DV数据仓库的自动生成多维模型方法与流程


一种基于电网dv数据仓库的自动生成多维模型方法
技术领域
1.本发明涉及电网数据仓库技术领域,具体涉及一种基于电网dv数据仓库的自动生成多维模型方法。


背景技术:



2.随着数字化技术的发展,电网企业持续获得的海量数据需要高效处理。data vault(以下简称dv)建模技术,融合交易建模与分析建模风格,为海量、多样数据提供了新的整体解决方案,成为解决大数据存储和处理技术的一种新型数据仓库解决方案。电网dv模型为建立数据仓库层使用了中心点表、链接表和附属表三类数据表,以便最大限度地保存电网多种源业务系统输入的各类数据。同时,为支持最终用户做深入的数据分析,需要构建多维(md)模型才能使用olap软件展开分析。电网dv链接表和附属表的设计带来了dv数据仓库良好可扩展性,但也极大放宽了数据语义约束,隐藏了数据间的函数依赖(fd)关系,不利于后续多维分析应用。因此,需要发现、明确业务数据间的fd关系,才能构建多维分析模型及其维度和层次结构,从而支持标准olap分析操作。
3.进一步地,由于dv建模方法采用多对多形式建模业务实体关系,并且集成多个源业务系统可能带来的数据不一致会干扰寻函数依赖及其传递路径。因此,对涉及成千上万个数据表的电网dv数据仓库而言,链接表和附属表中隐含的函数依赖关系难以直接人为确定,如何高效自动地发现函数依赖,构造多维模型是数据仓库建设中面临的难题。
4.目前从基于范式的关系数据库中构建多维模型,通常采用统计置信度和手工方法。统计置信度方法在海量数据中常常出大量近似成立,但无效的函数依赖;而手工方法涉及的模式转换复杂、效率低,难以遍历众多关系表来构建多维模型。因此,亟需一种能够实现从电网dv数据仓库中自动构建适合电网用户分析的多维模型的技术。


技术实现要素:



5.为了克服现有技术存在的缺陷与不足,本发明提供一种基于电网dv数据仓库的自动生成多维模型方法。本发明从适合存储电网海量数据的dv数据仓库中,借助数据语义、函数依赖及其遍历路径方法,自动构建适合电网用户分析的多维模型。
6.为了达到上述目的,本发明采用以下技术方案:
7.本发明提供一种基于电网dv数据仓库的自动生成多维模型方法,包括下述步骤:
8.构建电网dv数据仓库,采用中心点表、链接表、附属表分别存储电网业务实体、关系及其属性数据;
9.建立函数依赖候选表、多维模型候选表和附属表数据语义置信度计算表;
10.选取电网dv数据仓库中的链接表,遍历链接表相关中心点,查事实表属性和维度表属性及其函数依赖关系,并将属性标识及其函数依赖关系分别存入多维模型候选表和函数依赖候选表;
11.选取电网dv数据仓库中的中心点附属表,在附属表数据语义置信度计算表中存入
附属表数据,并按规则生成附属表的全部函数依赖候选表达式,利用附属表数据计算每个函数依赖候选的置信度;
12.对附属表数据语义置信度计算表中的数据构建贝叶斯网络结构,得到节点间的依赖关系,检测附属表数据语义置信度计算表数据对函数依赖候选的成立模式,对函数依赖候选表中附属表的函数依赖候选,基于附属表数据语义置信度计算表逐条记录计算其数据置信度;
13.基于多维模型候选表构造和优化多维模型候选;
14.遍历多维模型候选表,输出多维模型。
15.作为优选的技术方案,函数依赖候选表表示为:cand-fd(fd_id,t_id,fd_left,fd_right,conf-fd),其中,fd_id表示函数依赖表达式的标识,t_id表示函数依赖所属的表标识,fd_left表示函数依赖表达式的左部,fd_right表示函数依赖表达式的右部,conf-fd表示函数依赖的数据置信度;
16.多维模型候选表表示为:cand-md(md_id,t_id,attr,p-node),其中,md_id表示多维模型的标识,t_id表示事实表或维度表标识,attr表示属性标识,p-node表示attr的父节点属性标识;
17.附属表数据语义置信度计算表表示为:conf-ds(st_id,attr1,

,attrn,conf-st,incon),其中st_id是附属表主键,attri表示附属表的第i个属性,conf-st表示该记录对某函数依赖的数据置信度,incon表示该记录与某函数依赖不一致标志。
18.作为优选的技术方案,将链接表中包含的中心点之间的函数依赖关系及其候选置信度,按照函数依赖候选表达式标识、所属表标识以及表达式序对《业务键i,业务键j》和超过数据语义置信度阈值的数据置信度分别写入函数依赖候选表的标识fd_id、函数依赖所属的表标识t_id、函数依赖表达式的左部fd_left、函数依赖表达式的右部fd_right和函数依赖的数据置信度conf-fd。
19.作为优选的技术方案,选取电网dv数据仓库中的链接表,从相关中心点表开始遍历,生成事实表属性和维度表属性及其函数依赖关系,并将属性标识及其函数依赖关系分别存入多维模型候选表和函数依赖候选表,具体步骤包括:
20.将链接表节点及其附属表属性存入多维模型候选表;
21.将链接表节点与其附属表属性的函数依赖关系存入函数依赖候选表;
22.若判定dv模型中该链接表有连接中心点还未遍历,则遍历链接表相关的中心点节点;
23.将中心点业务键存入多维模型候选表;
24.将链接表与该业务键的函数依赖关系存入函数依赖候选表;
25.若判定当前中心点尚未遍历,则进入遍历中心点的所有附属;
26.直至遍历当前链接表所有中心点,以及遍历dv模型中所有链接表。
27.作为优选的技术方案,对附属表数据语义置信度计算表中的数据构建贝叶斯网络结构,得到节点间的依赖关系,具体步骤包括:
28.将数据语义置信度计算表的每个属性作为一个节点,计算节点之间的信息增益得到节点间的相关性,计算每个节点值域的大小,值域大的作为父节点,排序后获得贝叶斯网络结构,得到节点间的依赖关系。
29.作为优选的技术方案,检测附属表数据语义置信度计算表数据对函数依赖候选的成立模式,具体步骤包括:
30.对函数依赖候选表中该附属表的一个函数依赖候选,若在附属表数据语义置信度计算表中的对应两个属性上,存在满足其函数依赖候选表达式的记录,则函数依赖候选表达式的左部值与函数依赖候选表达式的右部值的记录组成当前函数依赖的成立模式;
31.对数据语义置信度计算表中符合成立模式的记录,设置并更新相应标志。
32.作为优选的技术方案,对函数依赖候选表中附属表的函数依赖候选,基于附属表数据语义置信度计算表逐条记录计算其数据置信度,具体步骤包括:
33.根据贝叶斯网络中节点和父节点关系,计算各属性实例值a出现的次数,计算出条件概率:
[0034][0035]
计算附属表数据语义置信度计算表中每个记录的各个属性实例值a的数据置信度,具体表示为:
[0036][0037]
进行归一化处理,表示为:
[0038][0039]
计算附属表数据语义置信度计算表记录的数据置信度,并写入附属表数据语义置信度计算表对应的属性,直至全部记录计算完成,数据置信度的计算公式具体表示为:
[0040]
conf-st=min(conf_attri′
(a),a∈fd_left∪fd_right)
[0041]
其中,conf-st表示附属表数据语义置信度计算表中记录对某函数依赖的数据置信度,fd_left表示函数依赖表达式的左部,fd_right表示函数依赖表达式的右部。
[0042]
作为优选的技术方案,在附属表数据语义置信度计算表设置标志,所述标志用于标记数据记录与函数依赖是否一致;
[0043]
对附属表数据语义置信度计算表中符合成立模式的记录,将对应标志设置为标记值;
[0044]
设置数据语义置信度阈值和链接表有效记录比例阈值;
[0045]
对附属表数据语义置信度计算表,若某数据记录对某函数依赖的数据置信度达到数据语义置信度阈值时,将对应标志设置为标记值;
[0046]
统计标志为标记值所对应的数据记录数占总数据记录数的比例值,当比例值达到链接表有效记录比例阈值时,更新函数依赖候选表对应的函数依赖候选数据置信度。
[0047]
作为优选的技术方案,基于多维模型候选表构造和优化多维模型候选,具体步骤包括:
[0048]
确定事实表和事实度量;
[0049]
按照电网业务实体的命名规则,将次业务实体合并到主业务实体;
[0050]
将日期维度的函数依赖关系存入函数依赖候选表;
[0051]
确定维度表和层次结构;
[0052]
将日期维度存入多维模型候选表。
[0053]
作为优选的技术方案,确定维度表和层次结构,具体步骤包括:
[0054]
对多维模型候选表,到函数依赖所属的表标识为中心点表标识的记录,对属性attr为业务键的父节点属性标识p-node置表lki主键,对属性attr为非主属性的父节点属性标识p-node置该中心点业务键,lki表示电网dv数据仓库中与该中心点连接的第i个链接表;
[0055]
对多维模型候选表,查函数依赖所属的表标识为中心点表标识且属性attr为非主属性的记录,查对应的函数依赖候选表cand-fd中该中心表标识相同的函数依赖关系记录,若有符合预设规则的记录,则将函数依赖候选表cand-fd的该函数依赖左部值置入该属性attr的父节点属性标识p-node;
[0056]
对函数依赖候选表cand-fd中函数依赖左部为非主属性的记录,若在函数依赖候选表cand-fd中有m个记录的右部值与多维模型候选表中同一个中心点的属性attr值相等,则在多维模型候选表复制增加该属性attr的m-1个记录,并将该属性attr记录对应的函数依赖候选表cand-fd中m个左部值分别置入该属性attr的m个记录的父节点属性标识p-node中。
[0057]
本发明与现有技术相比,具有如下优点和有益效果:
[0058]
(1)现有电网dv数据仓库的多对多关系和从多源业务系统输入的数据导致数据不一致性的问题,都会干扰寻函数依赖及其传递路径,并缺少相关的解决方案。本发明采用贝叶斯网络和数据语义置信度方法,在dv附属表数据中发现业务实体属性之间的函数依赖关系,构建自动抽取隐含函数依赖关系的方法,支持生成维度层次结构,从而为生成多维模型奠定基础。
[0059]
(2)现有从关系数据库中构建多维模型,通常采用统计置信度和手工方法,在海量数据中常常出大量近似成立,但无效的函数依赖,而且模式转换复杂、效率低;在电网dv数据仓库中,不带附属表的链接中隐含有实体间的函数依赖关系,而中心点附属表中隐含实体内的函数依赖关系。本发明利用从电网dv数据仓库中发现的函数依赖关系,通过遍历dv模型的中心点表、链接表和附属表三类表,生成多维模型候选,并借助电网dv的命名规则和函数依赖等特点,约简合并多维模型,最终高效率、高质量地自动生成多维模型。
附图说明
[0060]
图1为本发明基于电网dv数据仓库的自动生成多维模型方法的流程示意图;
[0061]
图2为本发明电网dv数据仓库的部分示例图;
[0062]
图3为本发明链接表中包含的中心点之间的隐含函数依赖及置信度示意图;
[0063]
图4为本发明遍历链接表相关中心点及其附属后的多维模型候选表示意图;
[0064]
图5为本发明遍历链接表相关中心点及其附属后的函数依赖候选表示意图;
[0065]
图6为本发明数据语义置信度计算表中的附属表数据示意图;
[0066]
图7为本发明生成函数依赖候选后的函数依赖候选表数据示意图;
[0067]
图8为本发明对fd:城市

省市的conf-st置信度的计算过程示意图;
[0068]
图9为本发明对fd:城市

省市的conf-st置信度的计算结果示意图;
[0069]
图10为本发明对fd:地址

城市的conf-st置信度的计算结果示意图;
[0070]
图11为本发明对fd:地址

省市的conf-st置信度的计算结果示意图;
[0071]
图12为本发明获取附属表函数依赖候选后的函数依赖候选表数据示意图;
[0072]
图13为本发明增加日期维度后的函数依赖候选表cand-fd示意图;
[0073]
图14为本发明生成日期维度后的函数依赖候选表cand-md示意图。
具体实施方式
[0074]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0075]
实施例1
[0076]
如图1所示,本实施例提供一种基于电网dv数据仓库的自动生成多维模型方法,从适合存储电网海量数据的dv数据仓库中,借助数据语义、函数依赖及其遍历路径方法,自动构建适合电网用户分析的多维模型。首先,运用dv建模方法构建电网数据仓库并加载数据,其中的三类数据表保存电网营销数据、生产数据和物资数据等;然后基于fd成立模式和数据语义的方法,从附属表中获得隐含的fd;再按照电网业务特点,基于链接表遍历相关的中心点和链接fd路径,构造出多维模型(一个多维模型仅以一个带有附属的链接表为基础)候选;最后,根据用户指定置信度,评估和优化获得有效的多维模型,具体包括下述步骤:
[0077]
s1:构建电网dv数据仓库,其中包括电网dv模型中的三类表及表中存储的数据;假设已获得链接表的函数依赖候选及其置信度;此外,设置一个数据语义置信度阈值α和一个链接表有效记录比例阈值β,前者是判定链接表链接中心点表的数据记录语义和函数依赖成立的标准,后一个说明链接表中应具备的有效记录比例。
[0078]
在本实施例中,数据语义置信度阈值α和链接表有效记录比例阈值β的优选值均为0.6;
[0079]
在本实施例中,电网dv模型的中心点表、链接表、附属表三类表分别保存业务实体、关系及其属性数据;中心点表以业务键为基础连接链接表、附属表,形成中心辐射式架构,将所有数据连接起来,链接表支持保存多对多关系;
[0080]
如图2所示,中心点、链接、附属三类表分别保存电网业务实体、关系和中心点/链接的属性数据;在图中有电网客户中心点表hub_cust(有客户附属表sat_customer和客户地址附属表sat_custaddr)、电网客户分类中心点表hub_custcls(有客户分类附属表sat_custcls)、用电合同中心点表hub_contract(有合同附属表sat_contract)和服务中心点表hub_service(有服务附属表sat_service),还有客户-分类链接表lnk_cust-cls、客户-合同链接表lnk_cust-cont和用电状况链接表lnk_usage(有用电状况附属表sat_usage);
[0081]
在本实施例中,一个中心点或链接可能有多个附属,每个附属按时间戳(load_date)形成相关属性的不同时期的历史记录,在一个中心点下可保存多个电网源业务系统的相关属性的序列数据;同时,三类表中都保存有记录来源(rec_source)属性,可以独立保存所有电网源业务系统的数据,也能保存因多个电网源业务系统带来的不一致数据;
[0082]
本实施例从多个源业务系统,向上述电网dv数据仓库模型中加载入相应的数据,对电网海量数据的组织最大限度地满足集中化、高扩展、高可用性的电网数据平台的需求,
同时支持全网型、跨域数据整合,以及动态按需供应和实时分配资源;
[0083]
电网dv模式适合高效存储电网的海量数据,但不利于用户分析数据,所以在dv数据仓库环境中,建立以事实表和维度表为基础的多维模型,用于支持最终用户分析数据。在构建多维模型时,需要明确业务实体之间和实体内的函数依赖关系,即需要出链接表中和中心点附属表中的函数依赖关系。
[0084]
s2:建立函数依赖候选表、多维模型候选表和附属表数据语义置信度计算表。按照电网dv数据仓库特征,遵循以下步骤构建这三种表:
[0085]
s21:建立函数依赖候选表cand-fd(fd_id,t_id,fd_left,fd_right,conf-fd),其中,fd_id表示函数依赖表达式的标识,t_id表示函数依赖所属的表标识,fd_left表示函数依赖表达式fd_id的左部,fd_right表示函数依赖表达式fd_id的右部,conf-fd表示函数依赖的数据置信度。
[0086]
s22:将链接表中可能包含的中心点之间的fd(h

h)及其候选置信度,按函数依赖候选表达式标识、所属表标识(如链接表“lk”),以及表达式序对《业务键i,业务键j》和数据置信度(≥α)分别写入函数依赖候选表cand-fd的fd_id、t_id、fd_left、fd_right和conf-fd字段。
[0087]
在本实施例中,依据dv模型三类表的特征,附属表与中心表、附属表与链接表、链接表与中心点表之间都存在明确的fd关系,即s

h、s

l和l

h,同时,在链接表和附属表中存在多种隐含的fd关系。根据电网dv数据仓库的数据特征,由于中心点表h或链接表l的附属s用于存储电网业务属性值的历史数据,所以可以确定,在每个时间点,最多有一个s∈s元组对于各个h∈h或l∈l的元组是有效的,即h

s或l

s;另外,中心点h至少与一个链接l相连,即l

h。因此,对于电网dv数据仓库中的各个附属和中心点,都存在一个链路,从该链路可以经过最多两个fd(有向线)到达该附属或中心点,即l
→h→
s。综上所述,基于电网dv数据仓库构建一个多维模型,应该从一个链接表的事实节点开始,借助fd的遍历路径方法,发现度量集和维度集。
[0088]
其中,对一个数据表r的多个属性组间,如果一个属性组x能够唯一确定另一个属性组y,则y函数依赖于x。如果表h的每个元组都函数依赖于p,则p可以作为h的主键。如果表s的一个属性组f不是s的主键,而是另一个表h的主键则f是s的外键,即fd记为f

p。本发明中,在不会引起混乱时也将这种fd记为s

h。
[0089]
对一个多维模型,可表示为一个由节点与有向线构成的有向无环图,其中节点表示属性,有向线表示两个属性间的fd关系;这个有向图中存在一个事实节点f,从f通过有向路径可到达每个其他节点;这些路径和节点可划分为度量集和维度集,度量集中包含数值型的叶子节点,维度集中包含若干不可聚合的描述性属性与可聚合的非数值属性。
[0090]
如图3所示,本实施例得到现有链接表中包含的fd(h

h)及其候选置信度;
[0091]
s23:建立多维模型候选表cand-md(md_id,t_id,attr,p-node),其中,md_id表示多维模型的标识,t_id表示事实表(链接表)或维度表(中心点表)标识,attr表示属性标识,p-node表示attr的父节点。
[0092]
s24:建立附属表数据语义置信度计算表conf-ds(st_id,attr1,

,attrn,conf-st,incon),其中st_id是附属表主键,attri表示附属表的第i个属性(1≤i≤n),conf-st表示本条conf-ds记录(从某个附属表记录复制得到)对某函数依赖的数据置信度,incon表示
本条conf-ds记录与某函数依赖不一致标志。
[0093]
s3:遍历链接表相关中心点,生成事实表属性和维度表属性及其关系:选取电网dv数据仓库中的一个链接表lki(带有附属表),从相关中心点开始遍历,将相关节点(属性标识)及其有向线(fd关系)分别存入多维模型候选表cand-md和函数依赖候选表cand-fd。
[0094]
s31:将链接表节点及其附属表属性存入多维模型候选表cand-md:将记录(“md-lk”,“lk
i”,表lki主键,
“”
),以及链接表lki对应附属表的若干属性,以记录(“md-lk”,“lk
i”,度量名,
“”
)方式存入多维模型候选表cand-md。
[0095]
在本实施例中,md-lk中的md表示多维前缀,lk表示链接表;lki表示链接表i的标识;
[0096]
s32:将链接表节点与其附属表属性的函数依赖关系fd(l

s)存入函数依赖候选表cand-fd:将若干链接表与属性的函数依赖关系fd记录(序号,“lk
i”,表lki主键,度量名,1)存入函数依赖候选表cand-fd。
[0097]
s33:如果dv模型中该链接表有连接中心点还未遍历,则进入遍历链接表lki相关的中心点节点:
[0098]
a)将中心点业务键,以记录(“md-lk”,中心点表标识,业务键标识,
“”
)方式存入多维模型候选表cand-md。
[0099]
b)将链接表与该业务键的函数依赖关系fd(l

h)存入函数依赖候选表cand-fd:将函数依赖关系fd记录(序号,中心点表标识,表lki主键,业务键标识,1)存入函数依赖候选表cand-fd。
[0100]
c)如果该中心点尚未遍历,则进入遍历中心点的所有附属:
[0101]
i)将若干该中心点附属属性,以记录(“md-lk”,中心点表标识,附属属性,
“”
)方式存入多维模型候选表cand-md。
[0102]
ii)将中心点业务键与附属属性的fd(h

s)存入函数依赖候选表cand-fd:将若干fd记录(序号,中心点表标识,业务键标识,附属属性,1)存入函数依赖候选表cand-fd。
[0103]
iii)如果dv模型中该中心点有链接表与其连接,则检查该链接表有无附属表。
[0104]
如果该链接表无附属表且函数依赖候选表cand-fd中有该链接表隐含fd(置信度≥α),则(跳过该链接表)转到本步骤的s33继续遍历与lki间接相关的中心点节点,其中,函数依赖候选表cand-fd中的该链接表隐含fd表示该链接表连接的两个中心点(实体)业务键之间存在函数依赖关系;
[0105]
d)检查该链接表是否有中心点尚未遍历,有则转向本步骤s33。
[0106]
s34:如果dv模型中还有其他链接表还未遍历,则转向本步骤s31。
[0107]
在本实施例中,选取电网dv数据仓库中带有附属表的合同-服务链接表lnk_cont-serv,先从用电合同中心点表hub_contract开始遍历相关表,然后再遍历服务中心点表hub_service及其相关表,将相关属性和函数依赖关系fd分别写入多维模型候选表cand-md和函数依赖候选表cand-fd。
[0108]
1)将链接表节点及其附属表属性存入cand-md:将记录(“md-lk”,“lnk_cont-serv”,“cont-serv_id”,
“”
),以及合同-服务链接表lnk_cont-serv的附属表sat_cont-serv的两个属性,以记录(“md-lk”,“lnk_cont-serv”,“电量”,
“”
)、(“md-lk”,“lnk_cont-serv”,“金额”,
“”
)方式存入表cand-md。
[0109]
2)将合同-服务链接表lnk_cont-serv的链接表节点与其sat_cont-serv附属表属性的fd(l

s)存入函数依赖候选表cand-fd:将fd记录(“fd003”,“lnk_cont-serv”,“cont-serv_id”,“电量”,1)、(“fd004”,“lnk_cont-serv”,“cont-serv_id”,“金额”,1)存入函数依赖候选表cand-fd,这些是度量集。
[0110]
3)合同-服务链接表lnk_cont-serv中有连接的用电合同中心点表hub_contract还未遍历,因此首先遍历合同-服务链接表lnk_cont-serv相关的中心点节点hub_contract及其附属,这些是维度集:
[0111]
a)将中心点业务键cont_key,以记录(“md-lk”,“hub_contract”,“cont_key”,
“”
)形式存入多维模型候选表cand-md。
[0112]
b)将链接表与该业务键的fd(l

h)存入函数依赖候选表cand-fd:将fd记录(“fd005”,“lnk_cont-serv”,“cont-serv_id”,“cont_key”,1)存入函数依赖候选表cand-fd。
[0113]
c)因用电合同中心点表hub_contract的合同附属表sat_contract尚未遍历,则遍历该附属表:
[0114]
i)如图4所示,将若干该中心点附属属性,以记录(“md-lk”,“hub_contract”,“用电地址”,
“”
)、(“md-lk”,“hub_contract”,“总金额”,
“”
)、(“md-lk”,“hub_contract”,“折扣”,
“”
)形式存入多维模型候选表cand-md。
[0115]
ii)如图5所示,将中心点业务键与附属属性的fd(h

s)存入函数依赖候选表cand-fd:将若干fd记录(“fd006”,“hub_contract”,“cont_key”,“用电地址”,1)、(“fd007”,“hub_contract”,“cont_key”,“总金额”,1)、(“fd008”,“hub_contract”,“cont_key”,“折扣”,1)存入函数依赖候选表cand-fd。
[0116]
iii)除合同-服务链接表lnk_cont-serv外,用电合同中心点表hub_contract还与客户-合同链接表lnk_cust-cont相连,该链接表无附属表且函数依赖候选表cand-fd中有该链接表的隐含fd:cont_key

cust_key,则转至本步骤s33,继续遍历与合同-服务链接表lnk_cont-serv间接相关的电网客户中心点表hub_cust。
[0117]
重复s33继续遍历合同-服务链接表lnk_cont-serv间接相关的电网客户中心点表hub_cust及其附属:
[0118]
a)将中心点业务键cust_key,以记录(“md-lk”,“hub_cust”,“cust_key”,
“”
)形式存入多维模型候选表cand-md。
[0119]
b)将链接表与该业务键的fd(l

h)存入函数依赖候选表cand-fd:将fd记录(“fd009”,“lnk_cont-serv”,“cont-serv_id”,“cust_key”,1)存入函数依赖候选表cand-fd。
[0120]
c)因电网客户中心点表hub_cust的附属表sat_customer和sat_custaddr尚未遍历,则遍历这2个附属表:
[0121]
i)将若干该中心点附属属性,以记录(“md-lk”,“hub_cust”,“姓名”,
“”
)、(“md-lk”,“hub_cust”,“电话”,
“”
)、(“md-lk”,“hub_cust”,“邮件”,
“”
)、(“md-lk”,“hub_cust”,“省市”,
“”
)、(“md-lk”,“hub_cust”,“城市”,
“”
)、(“md-lk”,“hub_cust”,“地址”,
“”
)形式存入多维模型候选表cand-md。
[0122]
ii)将中心点业务键与附属属性的fd(h

s)存入函数依赖候选表cand-fd:将若干
fd记录(“fd010”,“hub_cust”,“cust_key”,“姓名”,1)、(“fd011”,“hub_cust”,“cust_key”,“电话”,1)、(“fd012”,“hub_cust”,“cust_key”,“邮件”,1)、(“fd013”,“hub_cust”,“cust_key”,“省市”,1)、(“fd014”,“hub_cust”,“cust_key”,“城市”,1)、(“fd015”,“hub_cust”,“cust_key”,“地址”,1)存入函数依赖候选表cand-fd。
[0123]
iii)除客户-合同链接表lnk_cust-cont外,电网客户中心点表hub_cust还与客户-分类链接表lnk_cust-cls相连,该链接表无附属表且函数依赖候选表cand-fd中有该链接表的隐含fd:cust

clas,则转至本步骤s33,继续遍历与合同-服务链接表lnk_cont-serv间接相关的中心点表hub_custcls。
[0124]
重复s33继续遍历合同-服务链接表lnk_cont-serv间接相关的中心点表hub_custcls及其附属:
[0125]
a)将中心点业务键clas_key,以记录(“md-lk”,“hub_custcls”,“clas_key”,
“”
)形式存入多维模型候选表cand-md。
[0126]
b)将链接表与该业务键的fd(l

h)存入函数依赖候选表cand-fd:将fd记录(“fd016”,“lnk_cont-serv”,“cont-serv_id”,“clas_key”,1)存入函数依赖候选表cand-fd。
[0127]
c)因中心点表hub_custcls的附属表sat_custcls尚未遍历,需遍历这个附属表:
[0128]
i)将若干该中心点附属属性,以记录(“md-lk”,“hub_custcls”,“行业”,
“”
)、(“md-lk”,“hub_custcls”,“用电模式”,
“”
)形式存入多维模型候选表cand-md。
[0129]
ii)将中心点业务键与附属属性的fd(h

s)存入函数依赖候选表cand-fd:将若干函数依赖fd记录(“fd017”,“hub_custcls”,“clas_key”,“行业”,1)、(“fd018”,“hub_custcls”,“clas_key”,“用电模式”,1)存入函数依赖候选表cand-fd。
[0130]
iii)除客户-分类链接表lnk_cust-cls外,中心点表hub_custcls没有与其他链接表相连,重复循环结束。
[0131]
d)客户-分类链接表lnk_cust-cls已无中心点需要遍历。
[0132]
d)客户-合同链接表lnk_cust-cont已无中心点需要遍历。
[0133]
d)合同-服务链接表lnk_cont-serv还有服务中心点表hub_service需要遍历,转向本步骤s33。
[0134]
重复s33继续遍历合同-服务链接表lnk_cont-serv间接相关的服务中心点表hub_service及其附属:
[0135]
a)将中心点业务键serv_key,以记录(“md-lk”,“hub_service”,“serv_key”,
“”
)形式存入多维模型候选表cand-md。
[0136]
b)将链接表与该业务键的fd(l

h)存入函数依赖候选表cand-fd:将fd记录(“fd019”,“lnk_cont-serv”,“cont-serv_id”,“serv_key”,1)存入函数依赖候选表cand-fd。
[0137]
c)因该服务中心点表hub_service及其服务附属表sat_service尚未遍历,需遍历这个附属表:
[0138]
i)将若干该中心点附属属性,以记录(“md-lk”,“hub_service”,“服务名”,
“”
)、(“md-lk”,“hub_service”,“测量方式”,
“”
)方式存入多维模型候选表cand-md。
[0139]
ii)将中心点业务键与附属属性的fd(h

s)存入函数依赖候选表cand-fd:将fd记
录(“fd020”,“hub_service”,serv_key,“服务名”,1)、(“fd021”,“hub_service”,serv_key,“测量方式”,1)存入函数依赖候选表cand-fd。
[0140]
iii)除合同-服务链接表lnk_cont-serv外,服务中心点表hub_service没有与其他链接表相连,重复循环结束。
[0141]
d)合同-服务链接表lnk_cont-serv已无其他中心点需要遍历。
[0142]
4)在电网dv模型中没有其他链接表需要遍历,结束本步骤。
[0143]
s4:获取中心点附属表中的隐含函数依赖:选取电网dv数据仓库中的一个中心点附属表(每次处理一个附属表),在附属表数据语义置信度计算表conf-ds中存入该附属表数据,在函数依赖候选表cand-fd中生成该附属表的全部函数依赖候选表达式,并计算每个函数依赖候选置信度。
[0144]
s41:输入附属表数据语义置信度计算表conf-ds数据:输入电网dv数据仓库中该附属表最新加载日期的全部数据,分别写入附属表数据语义置信度计算表conf-ds的st_id,attr1,

,attrn。
[0145]
s42:生成函数依赖候选关系fd(s

s):对该附属表的非主属性且非数值属性构造候选fd:attri→
attrj,其中i≠j;如果附属表数据语义置信度计算表conf-ds中两属性值的数量|attri|《|attrj|,则删除该函数依赖候选;将若干候选fd记录,按(序号,中心点表标识,attri,attrj,0)形式,写入函数依赖候选表cand-fd。
[0146]
s43:对数据语义置信度计算表conf-ds中的数据构建贝叶斯网络结构,得到节点间的依赖关系:将数据语义置信度计算表conf-ds的每个属性attri作为一个节点,计算节点之间的信息增益得到节点间的相关性,然后再计算每个节点值域的大小,值域大的作为父节点,排序后获得贝叶斯网络结构,得到节点间的依赖关系。其中信息增益父节点,排序后获得贝叶斯网络结构,得到节点间的依赖关系。其中信息增益attrj是attri的父节点。
[0147]
s44:检测附属表数据语义置信度计算表conf-ds数据对函数依赖候选的成立模式:对函数依赖候选表cand-fd中该附属表的一个函数依赖候选,如果在附属表数据语义置信度计算表conf-ds中的对应两个属性上,存在满足其函数依赖候选表达式fd_left

fd_right的记录,即对电网业务,一个fd_left值拥有相同fd_right值的记录数量大于不相同fd_right值的记录数量,则该fd_left值与fd_right值的记录组成该函数依赖的成立模式;对符合成立模式的记录,设置相应incon为0,否则为1。
[0148]
s45:对该函数依赖候选fd,基于附属表数据语义置信度计算表conf-ds逐条记录计算其数据置信度,获得数据置信度conf-st值。
[0149]
a)计算条件概率:根据贝叶斯网络中节点和父节点关系,计算各属性attri实例值a出现的次数,根据下列式子计算出条件概率:
[0150][0151]
b)计算各个attri属性实例值a的数据置信度,并对该数值进行归一化处理:按照如下公式计算附属表数据语义置信度计算表conf-ds中每个记录的各个属性attri实例值a
的数据置信度,并归一化处理。
[0152][0153]
对conf_attri(a)进行归一化的公式:
[0154][0155]
c)附属表数据语义置信度计算表conf-ds中该记录的数据置信度conf-st:根据以下公式计算数据置信度,并写入附属表数据语义置信度计算表对应的属性。
[0156]
conf-st=min(conf_attri′
(a),a∈fd_left∪fd_right)
[0157]
d)重复执行a)至c),计算其他记录的数据置信度,直到附属表数据语义置信度计算表conf-ds中全部记录处理完毕。
[0158]
e)对函数依赖候选表cand-fd中该函数依赖候选关系fd,计算conf-fd的数据置信度值。
[0159]
i)对数据语义置信度计算表conf-ds,如果某数据记录对某函数依赖的数据置信度conf-st值《α,则将该记录incon置1。
[0160]
ii)对数据语义置信度计算表conf-ds,如果incon=0的数据记录数/总记录数≥有效记录比例β,则函数依赖候选表cand-fd对应的该函数依赖候选conf-fd=汇总数据记录conf-st值/总记录数。
[0161]
s46:如果函数依赖候选表cand-fd中还有本附属表的其他函数依赖候选关系fd未处理,则转到执行本步骤的s44。
[0162]
s47:重复执行本步骤,获取其他中心点附属表的隐含函数依赖,直到全部中心点附属表处理完。
[0163]
在本实施例中,选取电网dv数据仓库中的一个中心点附属表sat_custaddr进行说明,在数据语义置信度计算表conf-ds中保存该附属表数据,在函数依赖候选表cand-fd中生成该附属表的全部函数依赖候选表达式,并计算每个函数依赖候选的置信度。
[0164]
1)输入数据语义置信度计算表conf-ds数据:输入电网dv数据仓库中sat_custaddr附属表最新加载日期(load_date)的全部数据,分别存入数据语义置信度计算表conf-ds(st_id,省市,城市,地址),如图6所示。
[0165]
2)生成候选fd(s

s):对该附属表的非主属性且非数值属性构造候选fd:attri→
attrj,其中i≠j;如果附属表数据语义置信度计算表conf-ds中两属性值的数量|attri|《|attrj|,则删除该函数依赖候选;
[0166]
在本实施例中,到3个函数依赖候选fd:城市

省市、地址

城市、地址

省市,如图7所示,将它们按(序号,“hub_cust”,attri,attrj,0)形式,写入函数依赖候选表cand-fd。
[0167]
3)对数据语义置信度计算表conf-ds中的数据构建贝叶斯网络结构,得到节点间的依赖关系:将附属表数据语义置信度计算表conf-ds的每个属性attri作为一个节点,首先计算节点之间的信息增益得到节点间的相关性,然后再计算每个节点值域的大小,值域大的作为父节点,排序后获得贝叶斯网络结构,得到节点间的依赖关系。
[0168]
在本实施例中,计算节点“省市”、“城市”和“地址”之间的信息增益(ig)可得,ig(省市,城市)=h(省市)-h(省市|城市)=0.41,ig(城市,地址)=h(城市)-h(城市|地址)=1.32,ig(省市,地址)=h(省市)-h(省市|地址)=0.71,;每个节点的取值域值:|省市|=2,|城市|=4,|地址|=8。根据节点之间的信息增益及每个节点的取值域大小,将值域大的作为父节点,得到节点间的依赖关系为:地址

城市

省市。
[0169]
4)对某个本附属表的函数依赖候选,检测数据语义置信度计算表conf-ds数据对函数依赖候选的成立模式:
[0170]
对函数依赖候选表cand-fd中该附属表的一个函数依赖候选,如果在数据语义置信度计算表conf-ds中的对应两个属性上,存在满足其表达式fd_left

fd_right的记录,即对电网业务,一个fd_left值拥有相同fd_right值的记录数量大于不相同fd_right值的记录数量,则该fd_left值与fd_right值的记录组成该函数依赖的成立模式;对符合成立模式的记录,设置相应incon为0,否则为1。
[0171]
在本实施例中,对“城市

省市”、“地址

城市”和“地址

省市”函数依赖候选进行检测。对“城市

省市”,有ca003和ca010不符合成立模式;对“地址

城市”,有ca003不符合成立模式;对“地址

省市”,全部记录都符合成立模式。对不符合成立模式的记录,置incon为1,否则置0。
[0172]
5)对该候选fd,基于数据语义对附属表数据语义置信度计算表conf-ds中的数据逐条记录计算其数据置信度,获得数据置信度conf-st值。
[0173]
a)计算条件概率:根据贝叶斯网络中节点和父节点关系,计算各attri值a出现的次数,根据下列式子计算出条件概率:
[0174][0175]
b)计算各个attri实例值a的数据置信度,并对该数值进行归一化处理:按照如下公式计算附属表数据语义置信度计算表conf-ds中每个记录的各个attri实例值a的数据置信度,并归一化处理。
[0176][0177]
对conf_attri(a)进行归一化的公式:
[0178][0179]
c)计算附属表数据语义置信度计算表conf-ds中该记录的数据置信度conf-st:根据以下公式计算数据置信度,并写入属性conf-st。
[0180]
conf-st=min(conf_attri′
(a),a∈fd_left∪fd_right)
[0181]
d)继续执行a)至c),计算其他记录的数据置信度,直到附属表数据语义置信度计算表conf-ds中全部记录处理完毕。
[0182]
在本实施例中,对fd:城市

省市的conf-st计算过程和结果如图8、图9所示。
[0183]
e)对该候选fd,计算函数依赖候选表cand-fd中的conf-fd数据置信度。
[0184]
i)对附属表数据语义置信度计算表conf-ds,如果某数据记录的conf-st值《α,则
将该记录incon置1。
[0185]
在本实施例中,附属表数据语义置信度计算表conf-ds中st_id=ca003、ca010的conf-st《α=0.6,则将该两记录incon值置1。
[0186]
ii)对附属表数据语义置信度计算表conf-ds,如果incon=0的数据记录数/总记录数≥β=0.6,则函数依赖候选表cand-fd对应的该函数依赖候选conf-fd=汇总数据记录conf-st值/总记录数。
[0187]
本实施例函数依赖候选表cand-fd对应的该函数依赖候选conf-fd=0.62。
[0188]
6)如果函数依赖候选表cand-fd中还有本附属表的其他候选fd未处理,则转到执行本步骤的4)。
[0189]
在本实施例中,按上述过程,继续验证该附属表的候选fd:地址

城市,conf-st计算结果如图10所示。
[0190]
对附属表数据语义置信度计算表conf-ds,表中各记录的conf-st》0.6;对应的函数依赖候选conf-fd=汇总数据记录conf-st值/总记录数=0.85。
[0191]
在本实施例中,按上述过程,继续验证该附属表的候选fd:地址

省市,conf-st计算结果如图11所示。
[0192]
对附属表数据语义置信度计算表conf-ds,表中st_id为ca003、ca010的conf-st<0.6,将其incon值置为1;然后,如果incon=0的数据记录数/总记录数=0.8≥β=0.6,函数依赖候选表cand-fd对应的该函数依赖候选conf-fd=汇总数据记录conf-st值/总记录数=0.62。最后,如图12所示,得到函数依赖候选表cand-fd中的隐含函数依赖的置信度。
[0193]
s5:基于多维模型候选表cand-md,构造多维模型候选:从多维模型候选表cand-md中的一个事实表开始,评估和优化多维模型候选。
[0194]
s51:确定事实表和事实度量:对多维模型候选表cond_md,到t_id=“lk
i”的记录,对attr=表lki主键的p-node置“md-lk”;对attr值类型为数值型的置表lki主键。
[0195]
s52:维度合并:按照电网业务实体的命名规则,将次业务实体合并到主业务实体,如客户分类实体合并到客户实体。
[0196]
a)在多维模型候选表cand-md中到主/次业务实体的全部节点记录,首先删除次业务实体的attr为业务键的记录,然后将主业务实体的t_id值(中心点标识)置入次业务实体的t_id;
[0197]
b)在函数依赖候选表cand-fd中到主/次业务实体的fd(l

h)记录,首先删除次业务实体的fd(l

h)记录,然后到次业务实体的若干fd(h

s)记录,将主业务实体fd的t_id值(中心点标识)置入次业务实体fd的t_id,将主业务实体fd(l

h)的fd_right值置入若干次业务实体fd(h

s)的fd_left;
[0198]
c)在函数依赖候选表cand-fd中到次业务实体的若干fd(s

s)记录,将主业务实体fd(l

h)的t_id值(中心点标识)置入次业务实体的若干fd(s

s)的t_id。
[0199]
s53:将日期维度的函数依赖关系fd(h

s,s

s)存入函数依赖候选表cand-fd:将日期维度fd按记录(序号,“lk
i”,表lki主键,“date_id”,1)和若干记录(序号,“date”,“date_id”,日期属性,1)形式存入函数依赖候选表cand-fd;再将日期维度属性之间的若干fd(s

s),按记录(序号,“date”,日期属性i,日期属性j,1)(i≠j)形式存入函数依赖候选表cand-fd。
[0200]
s54:确定维度表和层次结构:
[0201]
a)对多维模型候选表cond_md,到函数依赖所属的表标识t_id为中心点表标识的记录,对实体的属性attr为业务键的父节点属性标识p-node置表lki主键,属性标识attr为非主属性的父节点属性标识p-node置业务键。
[0202]
b)对多维模型候选表cond_md,到函数依赖所属的表标识t_id为中心点表标识且属性标识attr为非主属性的记录,再到对应的函数依赖候选表cand-fd中该中心表标识相同的函数依赖关系fd(s

s)记录,如果这些记录中有函数依赖候选表cand-fd.fd_right=cond_md.attr,则将函数依赖候选表cand-fd.fd_left置入该属性标识attr的父节点属性标识p-node。
[0203]
c)对函数依赖候选表cand-fd中函数依赖表达式的左部fd_left为非主属性的记录,即函数依赖关系fd(s

s)记录,如果在函数依赖候选表cand-fd中有m个记录的函数依赖表达式的右部fd_right值与多维模型候选表cand-md中同一个中心点的属性attr值相等,则在多维模型候选表cand-md复制增加该属性attr的m-1个记录,并将该属性attr记录对应的函数依赖候选表cand-fd中m个函数依赖表达式的左部fd_left值分别置入该属性attr的m个记录的父节点属性标识p-node。
[0204]
s55:将日期维度存入多维模型候选表cand-md:将记录(“md-lk”,“date”,“date_id”,表lki主键),以及若干日期属性按记录(“md-lk”,“date”,日期属性,“date_id”)方式存入多维模型候选表cand-md;再到对应的函数依赖候选表cand-fd中t_id=“date”的若干fd(s

s)记录,如果这些记录中有fd_right=attr,且fd_left≠“date_id”,则将该记录的fd_left置入该attr的p-node。
[0205]
在本实施例中,从多维模型候选表cand-md中的一个事实表开始,评估和优化多维模型候选,具体示例如下:
[0206]
1)确定事实表和事实度量:对多维模型候选表cond_md,到t_id=“lnk_cont-serv”的记录,对attr=“cont-serv_id”的p-node置“md-lk”;对attr值类型为数值型的置“cont-serv_id”。
[0207]
2)维度合并:按照电网业务实体的命名规则,将次业务实体合并到主业务实体,如客户分类实体合并到客户实体。
[0208]
a)在多维模型候选表cand-md中到t_id为“hub_custcls”的全部节点记录,首先删除t_id为“hub_custcls”且attr为“clas_key”的记录,然后将t_id为“hub_custcls”的值更改为“hub_cust”。
[0209]
b)在函数依赖候选表cand-fd中到主/次业务实体的fd(l

h)记录,到t_id为“lnk_cont-serv”的fd(l

h)记录(fd016)并删除之,然后对t_id为“hub_custcls”的若干fd(h

s)记录(fd017、fd018),将其t_id更改为“hub_cust”;将记录fd017、fd018的fd_left置为“cust_key”。
[0210]
c)在函数依赖候选表cand-fd中没有次业务实体的fd(s

s)记录,跳过此步骤。
[0211]
3)将日期维度的fd(h

s,s

s)存入函数依赖候选表cand-fd:将日期维度fd按记录(序号,“date”,“lki_id”,date_id,1)和若干记录,按(序号,“date”,“date_id”,“日期”,1)形式存入“月份”和“年份”属性;如图13所示,再将日期维度属性之间的若干fd(s

s):日期

月份、月份

年份存入函数依赖候选表cand-fd。
[0212]
4)确定维度表和层次结构:
[0213]
a)对多维模型候选表cond_md,到t_id为用电合同中心点表hub_contract、电网客户中心点表hub_cust、服务中心点表hub_service的中心点表标识记录,对这三个实体的attr为业务键(cont_key、cust_key、serv_key)的p-node置“cont-serv_id”;attr为非主属性的p-node置为相应业务键,如“用电地址”、“总金额”和“折扣”等。
[0214]
b)对多维模型候选表cond_md,到t_id为中心点表标识且attr为非主属性的记录,再到对应的函数依赖候选表cand-fd中该中心表标识相同的fd(s

s)记录,如果这些记录中有fd_left为非业务键、fd_right=attr,则将fd_left置入该attr的p-node,如attr=“省市”、“城市”的p-node分别置入了“城市”和“地址”。
[0215]
c)对函数依赖候选表cand-fd中fd_left为非主属性的记录,即fd(s

s)记录,如“城市

省市”和“地址

省市”有2个记录的fd_right值“省市”与多维模型候选表cand-md中点表的attr值“省市”相等,则在多维模型候选表cand-md复制增加attr值“省市”的1个记录,并将“城市”和“地址”分别置入attr值“省市”的p-node。
[0216]
5)如图14所示,将日期维度存入多维模型候选表cand-md:在本实施例中,增加“日期”、“月份”和“年份”等记录,并根据函数依赖候选表cand-fd的fd(s

s)记录,设置p-node。
[0217]
s6:以上是针对一个链接表lki(带有附属表)生成多维模型候选的过程,电网dv数据仓库中若有其他链接表(带有附属表)可重复步骤s3-s6(之前必须清空由链接表lki生成的全部fd),再生成另一个多维模型候选。
[0218]
在上述具体示例中,涉及一个合同-服务链接表lnk_cont-serv生成多维模型候选的过程,生成了多维模型候选表cand-md,共有24个节点。
[0219]
s7:输出多维模型候选表cand-md:从多维模型候选表cand-md中,以多维模型的标识md_id值为一个多维模型,顺序输出事实表或维度表标识t_id为链接表、中心点表的属性attr父节点p_node

attr。
[0220]
本发明面向电网dv数据仓库,按照电网业务数据特点和函数依赖语义特性,采用基于数据语义、函数依赖及其遍历路径方法,自动抽取附属表中的隐含函数依赖,并利用函数依赖遍历多维模型的度量和维度层次结构,解决了从电网业务实体链接表开始自动生成多维模型的技术问题,为高效、高质量构建多维模型提供有效支持。
[0221]
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

技术特征:


1.一种基于电网dv数据仓库的自动生成多维模型方法,其特征在于,包括下述步骤:构建电网dv数据仓库,采用中心点表、链接表、附属表分别存储电网业务实体、关系及其属性数据;建立函数依赖候选表、多维模型候选表和附属表数据语义置信度计算表;选取电网dv数据仓库中的链接表,遍历链接表相关中心点,查事实表属性和维度表属性及其函数依赖关系,并将属性标识及其函数依赖关系分别存入多维模型候选表和函数依赖候选表;选取电网dv数据仓库中的中心点附属表,在附属表数据语义置信度计算表存入附属表数据,并按规则生成附属表的全部函数依赖候选表达式,利用附属表数据计算每个函数依赖候选的置信度;对附属表数据语义置信度计算表中的数据构建贝叶斯网络结构,得到节点间的依赖关系,检测附属表数据语义置信度计算表数据对函数依赖候选的成立模式,对函数依赖候选表中附属表的函数依赖候选,基于附属表数据语义置信度计算表逐条记录计算其数据置信度;基于多维模型候选表构造和优化多维模型候选;遍历多维模型候选表,输出多维模型。2.根据权利要求1所述的基于电网dv数据仓库的自动生成多维模型方法,其特征在于,函数依赖候选表表示为:cand-fd(fd_id,t_id,fd_left,fd_right,conf-fd),其中,fd_id表示函数依赖表达式的标识,t_id表示函数依赖所属的表标识,fd_left表示函数依赖表达式的左部,fd_right表示函数依赖表达式的右部,conf-fd表示函数依赖的数据置信度;多维模型候选表表示为:cand-md(md_id,t_id,attr,p-node),其中,md_id表示多维模型的标识,t_id表示事实表或维度表标识,attr表示属性标识,p-node表示attr的父节点属性标识;附属表数据语义置信度计算表表示为:conf-ds(st_id,attr1,

,attr
n
,conf-st,incon),其中st_id是附属表主键,attr
i
表示附属表的第i个属性,conf-st表示该记录对某函数依赖的数据置信度,incon表示该记录与某函数依赖不一致标志。3.根据权利要求2所述的基于电网dv数据仓库的自动生成多维模型方法,其特征在于,将链接表中包含的中心点之间的函数依赖关系及其候选置信度,按照函数依赖候选表达式标识、所属表标识以及表达式序对<业务键i,业务键j>和超过数据语义置信度阈值的数据置信度分别写入函数依赖候选表的标识fd_id、函数依赖所属的表标识t_id、函数依赖表达式的左部fd_left、函数依赖表达式的右部fd_right和函数依赖的数据置信度conf-fd。4.根据权利要求1所述的基于电网dv数据仓库的自动生成多维模型方法,其特征在于,选取电网dv数据仓库中的链接表,遍历链接表相关中心点,查事实表属性和维度表属性及其函数依赖关系,并将属性标识及其函数依赖关系分别存入多维模型候选表和函数依赖候选表,具体步骤包括:将链接表节点及其附属表属性存入多维模型候选表;将链接表节点与其附属表属性的函数依赖关系存入函数依赖候选表;若判定dv模型中该链接表有连接中心点还未遍历,则遍历链接表相关的中心点节点;将中心点业务键存入多维模型候选表;
将链接表与该业务键的函数依赖关系存入函数依赖候选表;若判定当前中心点尚未遍历,则进入遍历中心点的所有附属;直至遍历当前链接表所有中心点,以及遍历dv模型中所有链接表。5.根据权利要求1所述的基于电网dv数据仓库的自动生成多维模型方法,其特征在于,对附属表数据语义置信度计算表中的数据构建贝叶斯网络结构,得到节点间的依赖关系,具体步骤包括:将数据语义置信度计算表的每个属性作为一个节点,计算节点之间的信息增益得到节点间的相关性,计算每个节点值域的大小,值域大的作为父节点,排序后获得贝叶斯网络结构,得到节点间的依赖关系。6.根据权利要求1所述的基于电网dv数据仓库的自动生成多维模型方法,其特征在于,检测附属表数据语义置信度计算表数据对函数依赖候选的成立模式,具体步骤包括:对函数依赖候选表中该附属表的一个函数依赖候选,若在附属表数据语义置信度计算表中的对应两个属性上,存在满足其函数依赖候选表达式的记录,则函数依赖候选表达式的左部值与函数依赖候选表达式的右部值的记录组成当前函数依赖的成立模式;对数据语义置信度计算表中符合成立模式的记录,设置并更新相应标志。7.根据权利要求1所述的基于电网dv数据仓库的自动生成多维模型方法,其特征在于,对函数依赖候选表中附属表的函数依赖候选,基于附属表数据语义置信度计算表逐条记录计算其数据置信度,具体步骤包括:根据贝叶斯网络中节点和父节点关系,计算各属性实例值a出现的次数,计算出条件概率:计算附属表数据语义置信度计算表中每个记录的各个属性实例值a的数据置信度,具体表示为:进行归一化处理,表示为:计算附属表数据语义置信度计算表记录的数据置信度,并写入附属表数据语义置信度计算表对应的属性,直至全部记录计算完成,数据置信度的计算公式具体表示为:conf-st=min(conf_attr
i
'(a),a∈fd_left∪fd_right)其中,conf-st表示附属表数据语义置信度计算表中记录对某函数依赖的数据置信度,fd_left表示函数依赖表达式的左部,fd_right表示函数依赖表达式的右部。8.根据权利要求1所述的基于电网dv数据仓库的自动生成多维模型方法,其特征在于,在附属表数据语义置信度计算表设置标志,所述标志用于标记数据记录与函数依赖是否一致;对附属表数据语义置信度计算表中符合成立模式的记录,将对应标志设置为标记值;
设置数据语义置信度阈值和链接表有效记录比例阈值;对附属表数据语义置信度计算表,若某数据记录对某函数依赖的数据置信度达到数据语义置信度阈值时,将对应标志设置为标记值;统计标志为标记值所对应的数据记录数占总数据记录数的比例值,当比例值达到链接表有效记录比例阈值时,更新函数依赖候选表对应的函数依赖候选数据置信度。9.根据权利要求1所述的基于电网dv数据仓库的自动生成多维模型方法,其特征在于,基于多维模型候选表构造和优化多维模型候选,具体步骤包括:确定事实表和事实度量;按照电网业务实体的命名规则,将次业务实体合并到主业务实体;将日期维度的函数依赖关系存入函数依赖候选表;确定维度表和层次结构;将日期维度存入多维模型候选表。10.根据权利要求1所述的基于电网dv数据仓库的自动生成多维模型方法,其特征在于,确定维度表和层次结构,具体步骤包括:对多维模型候选表,到函数依赖所属的表标识为中心点表标识的记录,对属性attr为业务键的父节点属性标识p-node置表lk
i
主键,对属性attr为非主属性的父节点属性标识p-node置该中心点业务键,lk
i
表示电网dv数据仓库中与该中心点连接的第i个链接表;对多维模型候选表,查函数依赖所属的表标识为中心点表标识且属性attr为非主属性的记录,查对应的函数依赖候选表中该中心表标识相同的函数依赖关系记录,若有符合预设规则的记录,则将函数依赖候选表的该函数依赖左部值置入该属性attr的父节点属性标识p-node;对函数依赖候选表中函数依赖左部为非主属性的记录,若在函数依赖候选表中有m个记录的右部值与多维模型候选表中一个中心点的属性attr值相等,则在多维模型候选表复制增加该属性attr的m-1个记录,并将该属性attr记录对应的函数依赖候选表中m个左部值分别置入该属性attr的m个记录的父节点属性标识p-node中。

技术总结


本发明公开了一种基于电网DV数据仓库的自动生成多维模型方法,该方法包括下述步骤:构建电网DV数据仓库,电网DV数据仓库模型包括DV数据仓库模型和多维模型,DV数据仓库模型包括中心点表、链接表、附属表三种类型表,多维模型由事实表和维度表及其层次结构组成;通过遍历链接表相关中心点表,生成事实表属性和维度表属性及其关系;结合链接表中业务实体间的函数依赖,利用附属表数据验证业务实体中属性间的依赖关系,抽取实体中隐含的函数依赖关系;利用函数依赖关系,基于多维模型候选表构造和优化多维模型候选;遍历多维模型候选表,输出多维模型。本发明能够在数据和模式两个层面,利用数据语义置信度方法,借助电网模型的命名规则等特点,约简和生成多维模型,最终高效、高质量地生成DV数据仓库的多维模型。质量地生成DV数据仓库的多维模型。质量地生成DV数据仓库的多维模型。


技术研发人员:

彭泽武 冯歆尧 梁子键 陈禹旭 谢瀚阳 梁盈威 苏华权 朱泰鹏 潘定

受保护的技术使用者:

广东电网有限责任公司

技术研发日:

2022.10.13

技术公布日:

2022/12/30

本文发布于:2024-09-22 01:43:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/51022.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:多维   函数   中心点   附属
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议