一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于本体的电网数据集市自动数据加载方法与流程

2022-12-31 18:13:36 来源:中国专利 TAG:


1.本发明涉及数据仓库技术领域,具体涉及一种基于本体的电网数据集市自动数据加载方法。


背景技术:

2.按多维数据模型及其关联方式来实现数据仓库已经无法满足大数据时代对海量数据的组织要求。因此,电网企业开始引入新的data vault(以下简称dv)建模方法,即运用范式建模与分析建模的融合方法构建新型数据仓库,满足对电网大数据组织的特殊要求。
3.dv建模方法强调建立一个可审计的原始数据层(数据仓库层),关注数据组织的历史性、可追溯性和原子性,适合为来自多个电网源业务系统提供长期历史存储。同时,为支持电网最终用户的数据分析工作,还需要建立数据集市,将原始数据层数据转换成多维(简称md)数据模型保存的数据,才能满足最终用户利用数据集市数据展开olap分析的需求。
4.电网dv建模方法带来了数据仓库良好的可扩展性,但也放宽了对数据的语义约束。原始数据层集成多个电网源业务系统数据,这些数据即使在各个源系统中都是良好一致的,但集成后却可能带来相互冲突、不一致的数据。传统数据仓库要求在对多源系统集成过程中必须修改不一致数据,但这些修改常常导致新的、更大的错误。因此,电网dv数据仓库要求在原始数据层保留各个源业务系统的数据,而将修改不一致数据的任务延迟到构建数据集市的数据加载过程。因此,在数据集市的数据加载过程中,如何能够高效发现、修复这些不一致数据,并最后完成数据加载就成为电网dv数据仓库建设中亟待解决的技术问题。
5.目前公开的有关构建dv数据仓库的专利只针对自动化搭建data vault数据仓库构建和装载数据的方法和系统装置,并未考虑如何检测dv数据仓库中的不一致数据,以及如何具体修复这些不一致数据,存在以下缺陷:
6.1)在完成电网dv数据仓库的数据加载后,经常会发现原始数据层中存在不一致的劣质数据,为了保证数据的可跟踪性、可审计性,dv建模方法容许这些来自多个源业务系统的不一致数据集成加载到原始数据层,等到需要分析数据之前,即数据加载到数据集市之前,再处理这些不一致数据,但现有文献缺少关于检测和修复dv中不一致数据的完整解决方案;
7.2)现有基于统计的数据可信度检测方法,或者删除数据记录的修复方法,常常检测出无效的函数依赖关系和冲突数据,而且简单删除会带来数据缺失等问题,无法满足构建高质量电网数据仓库的数据质量要求。
8.综上所述,亟需解决的技术问题是:如何将电网dv数据仓库中的原始数据,在保持不变更原始数据层的要求下,发现和修复不一致数据,并高质量地自动加载到数据集市供最终用户使用。


技术实现要素:

9.为了克服现有技术存在的缺陷与不足,本发明提供一种基于本体的电网数据集市自动数据加载方法,本发明运用dv建模方法构建电网数据仓库并加载数据,其中的三类数据表保存电网营销数据、设备数据或生产数据等的原始数据;然后构建相应装置,基于本体和函数依赖关系并运用数据语义方法计算其置信度,检测原始数据找出不一致数据;再按照电网业务特点,基于本体、数据语义置信度和函数依赖关系具体修复不一致数据;最后,将电网数据仓库中的数据,按建模顺序自动加载到数据集市中。
10.为了达到上述目的,本发明采用以下技术方案:
11.本发明一种基于本体的电网数据集市自动数据加载方法,包括下述步骤:
12.构建电网dv数据仓库,采用中心点、链接、附属三类表分别保存电网业务实体、关系及其属性数据,作为来源表;
13.构建电网本体知识库,对多个同类附属表设定标杆附属表和次要附属表;
14.构建函数依赖表、数据语义置信度计算表和函数依赖修复表;
15.对函数依赖表中选定中心点的若干函数依赖表达式,查找中心点及其标杆附属表,对标杆附属表检测函数依赖的成立模式,将不符合函数依赖的数据字段输出到数据语义置信度计算表;
16.对函数依赖表中选定中心点的函数依赖表达式,查找对应次要附属表,对次要附属表检测函数依赖的成立模式,将不符合函数依赖的数据字段输出到数据语义置信度计算表;
17.对数据语义置信度计算表中的记录检测函数依赖的成立模式,计算数据语义置信度计算表中的数据置信度,并确定修复值,存入函数依赖修复表;
18.基于多维模型构建电网数据集市作为目标表,多维模型包括事实表和维度表;
19.对多维模型的维度表加载数据,对多维模型的事实表加载数据。
20.作为优选的技术方案,构建函数依赖表,具体表示为:
21.fd-list(fd_id,t_id,fd-left,fd-right,conf-fd)
22.其中,fd_id表示函数依赖表达式的标识,t_id表示函数依赖所属的中心点表或链接表标识,fd-left表示函数依赖表达式的左部名,fd-right表示函数依赖表达式的右部名,conf-fd表示函数依赖的数据置信度;
23.构建数据语义置信度计算表,具体表示为:
24.ds-conf(ds_id,fd_id,sat_id,bus_key,dts,fd-l,fd-r,conf-l,conf-r,repair)
25.其中,ds_id表示该表顺序主键,fd_id表示函数依赖表达式的标识,sat_id表示附属表标识,bus_key表示业务键,dts表示时间戳,fd-l表示函数依赖表达式左部值,fd-r表示函数依赖表达式右部值,conf-l表示函数依赖表达式左部的数据置信度,conf-r表示函数依赖表达式右部的数据置信度,repair表示修复值;
26.构建函数依赖修复表,具体表示为:
27.fd-repair(rp_id,fd_id,sat_id,bus_key,dts,fd-l,fd-r,repair),其中,rp_id表示该表顺序主键,fd_id表示函数依赖表达式的标识,sat_id表示附属表标识,bus_key表示业务键,dts表示时间戳,fd-l表示函数依赖表达式左部值,fd-r表示函数依赖表达式右
部值,repair表示函数依赖表达式的修复值。
28.作为优选的技术方案,对函数依赖表中选定中心点的若干函数依赖表达式,查找对应的中心点及其附属表,对标杆附属表检测函数依赖的成立模式,将不符合函数依赖的数据字段输出到数据语义置信度计算表,具体步骤包括:
29.获取同类附属表;
30.以标杆附属表为主,基于电网本体知识库对次要附属表中的字段名进行匹配;
31.根据字段名匹配结果,针对附属表中函数依赖表达式左部和函数依赖表达式右部对应的字段值,检测全部数据记录是否满足函数依赖表达式;
32.基于电网本体知识库将标杆附属表中的最新修改数据判定为满足函数依赖表达式,不输出到数据语义置信度计算表,将标杆附属表中不符合函数依赖的数据字段输出到数据语义置信度计算表。
33.作为优选的技术方案,对标杆附属表检测函数依赖的成立模式,对于存在成立模式值数据的处理步骤包括:
34.如果存在一个函数依赖表达式左部值拥有相同函数依赖表达式右部值的记录数量大于不相同函数依赖表达式右部值的记录数量,则将该相同函数依赖表达式右部值作为成立模式值;
35.将不相同函数依赖表达式右部值的记录输出到函数依赖修复表,更新当前函数依赖修复表对应标识;
36.对于不存在成立模式值数据的处理步骤包括:
37.将全部不符合函数依赖的数据记录,输出到数据语义置信度计算表,更新数据语义置信度计算表对应标识。
38.作为优选的技术方案,所述对函数依赖表中选定中心点的函数依赖表达式,查找对应次要附属表,对次要附属表检测函数依赖的成立模式,将不符合函数依赖的数据字段输出到数据语义置信度计算表,具体步骤包括:
39.将次要附属表某业务键值与时间戳记录的函数依赖表达式左部值和函数依赖表达式右部值与标杆附属表中相应记录且符合函数依赖的对应字段值进行比较,若在函数依赖表达式左部值和函数依赖表达式右部值字段上,次要附属表与标杆附属表的字段值都是一致的,则判定次要附属表记录符合函数依赖;
40.对次要附属表检测函数依赖的成立模式,基于电网本体知识库将次要附属表中的最新修改数据判定为满足函数依赖表达式,不输出到数据语义置信度计算表,将次要附属表中不符合当前函数依赖的数据记录输出至数据语义置信度计算表。
41.作为优选的技术方案,将次要附属表某业务键值与时间戳记录的函数依赖表达式左部值和函数依赖表达式右部值与标杆附属表中相应记录且符合函数依赖的对应字段值进行比较;
42.若在函数依赖表达式左部值字段上,次要附属表与标杆附属表的字段值是一致的,但在函数依赖表达式右部值字段上,次要附属表与标杆附属表的字段值不一致,则将标杆附属表的函数依赖表达式右部字段值作为成立模式值,并输出到函数依赖修复表,更新函数依赖修复表对应标识;
43.若在函数依赖表达式左部值字段上,次要附属表与标杆附属表的字段值不一致,
则该记录输出到数据语义置信度计算表。
44.作为优选的技术方案,计算数据语义置信度计算表中的数据置信度,并确定修复值,具体步骤包括:
45.利用本体知识库分别确定函数依赖左部、函数依赖右部的证据属性,按数据语义置信度计算表中的附属表标识,以及函数依赖表达式左部和函数依赖表达式右部的字段名,在电网本体知识库中分别查找标杆附属表或次要附属表左部和右部的决定属性,作为贝叶斯网络的父节点,
46.基于贝叶斯方法计算得到数据语义置信度计算表中的数据置信度;
47.根据数据置信度确定修复值。
48.作为优选的技术方案,基于贝叶斯方法计算得到数据语义置信度计算表中的数据置信度,具体步骤包括:
49.计算条件概率:根据贝叶斯网络的节点和父节点关系,计算各函数依赖表达式左部值l和函数依赖表达式右部值r出现的次数,按下列式子计算出条件概率:
[0050][0051]
计算函数依赖表达式左部值l和函数依赖表达式右部值r的数据置信度,并对进行归一化处理:具体表示为:
[0052][0053][0054][0055]
根据数据置信度确定修复值,具体包括:
[0056]
当函数依赖表达式左部值相同,但函数依赖表达式右部值各不相同,选择conf_r’(r)最大值对应的r值作为修复值置入函数依赖修复表,如果conf_r’(r)值都相等,则选择conf_l’(l)最大值的记录的r值作为修复值置入函数依赖修复表;
[0057]
当函数依赖表达式左部值相同,每组有相等数量的函数依赖表达式右部值f,组内函数依赖表达式右部值相等但组间不等,则选择conf_r’(r)组内累计最大值的r值作为修复值置入函数依赖修复表;如果conf_r’(r)值组内累计最大值都相等,则选择conf_l’(l)值组内累计最大值的记录的r值作为修复值置入函数依赖修复表。
[0058]
作为优选的技术方案,对多维模型的维度表加载数据,具体步骤包括:
[0059]
利用电网本体知识库和电网数据表命名规则,在目标表中查找客户维度表,确定客户维度表主键与客户中心点业务键名的匹配;
[0060]
利用电网本体知识库和电网数据表命名规则,在来源表查找客户中心点及其附属表;
[0061]
将中心点业务键值存入临时维度表;
[0062]
将与客户维度表相关的标杆附属表数据存入临时维度表;
[0063]
将与客户维度表相关的次要附属表数据存入临时维度表;
[0064]
对临时维度表中的每个业务键值,保留一个最新时间戳的记录,删除其余记录;
[0065]
基于函数依赖修复表,获得标杆附属表标识与函数依赖修复表中附属表标识相同的全部修复记录,获得次要附属表标识与函数依赖修复表中附属表标识相同的全部修复记录,修复临时维度表中的数据;
[0066]
将临时维度表中的数据,写入对应的客户维度表,完成单个维度表的数据加载;
[0067]
重复单个维度表的数据加载步骤,对多维模型的所有维度表建立临时维度表。
[0068]
作为优选的技术方案,对多维模型的事实表加载数据,具体步骤包括:
[0069]
利用电网本体知识库和电网数据表命名规则,在目标表中查找所要建立的事实表,确定该事实表的主键,以及构成事实表主键中的外键与中心点表业务键名的匹配;
[0070]
利用电网本体知识库和电网数据表命名规则,确定该事实表对应的链接表,以及链接表下的若干同类附属表;
[0071]
将该链接表中的业务键值存入临时事实表;
[0072]
将该链接表的标杆附属表数据存入临时事实表;
[0073]
将该链接表的次要附属表数据存入临时事实表;
[0074]
将临时事实表中的数据,写入对应的事实表,时间戳写入事实表的日期维度值,完成单个事实表的数据加载;
[0075]
重复单个事实表的数据加载步骤,对多维模型的所有事实表建立临时事实表。
[0076]
本发明与现有技术相比,具有如下优点和有益效果:
[0077]
(1)本发明基于电网dv数据仓库采用容纳不一致数据的策略,实现可跟踪性、可审计性;本发明利用本体知识库和电网命名规则匹配数据表名和字段名语义,区分标杆附属表和次要附属表,再借助函数依赖关系检测dv附属表内和表间的不一致数据,最后,按照电网业务特点,运用数据语义和贝叶斯网络方法计算其置信度,并确定修复值,实现了dv不一致数据的管理方案。
[0078]
(2)本发明利用电网dv数据中的函数依赖关系和数据语义置信度计算方法,在不变更电网dv数据仓库的情况下,修复不一致数据,并根据电网多维模型特点自动完成数据集市的加载,解决了高质量自动加载数据集市的技术问题。
附图说明
[0079]
图1为本发明基于本体的电网数据集市自动数据加载方法的流程示意图;
[0080]
图2为本发明电网dv数据仓库的部分示例图;
[0081]
图3为本发明获得电网dv数据仓库中包含的函数依赖及其置信度的示例图;
[0082]
图4为本发明标杆附属表sat_custaddr1的数据记录示意图;
[0083]
图5为本发明次要附属表sat_custaddr2的数据记录示意图;
[0084]
图6为本发明检验标杆附属表函数依赖成立情况后的数据语义置信度计算表示意图;
[0085]
图7为本发明检验次要附属表函数依赖成立情况后的函数依赖修复表示意图;
[0086]
图8为本发明条件概率及置信度的计算结果示意图;
[0087]
图9为本发明数据语义置信度计算表处理后函数依赖修复表结果示意图;
[0088]
图10为本发明电网多维模型示例图;
[0089]
图11为本发明客户临时维度表初始数据示意图;
[0090]
图12为本发明修复后的客户临时维度表示意图;
[0091]
图13为本发明客户维度表示意图;
[0092]
图14为本发明写入业务键的临时事实表示意图;
[0093]
图15为本发明写入标杆附属表数据的临时事实表示意图;
[0094]
图16为本发明写入事实表的数据示例图。
具体实施方式
[0095]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0096]
实施例
[0097]
如图1所示,本实施例提供一种基于本体的电网数据集市自动数据加载方法,包括下述步骤:
[0098]
s1:构建电网dv数据仓库,其中包括电网dv模型中的三类表及表中存储的数据;假设已获得电网dv数据仓库中包含的函数依赖及其置信度;构建电网本体知识库,其中包括电网业务和输配电设备相关的词汇定义、相互关联的语义信息、dv三类具体表的关系,以及词汇概念的具体实例;对多个同类附属表设定了标杆附属表和次要附属表。此外,还规定一个数据语义置信度阈值α,用于判定数据记录语义和函数依赖成立的标准。
[0099]
(1)如图2所示,电网dv模型用中心点、链接、附属三类表分别保存电网业务实体、关系和中心点/链接的属性数据;在图中有电网客户中心点表hub_cust(有客户附属表sat_customer和客户地址附属表sat_custaddr1、sat_custaddr2)、用电合同中心点表hub_contract(有合同附属表sat_contract)和服务中心点表hub_service(有服务附属表sat_service),还有客户-合同链接表lnk_cust-cont和合同-服务链接表lnk_cont-serv(有合同-服务附属表sat_usage);
[0100]
(2)中心点表以业务键为基础连接链接表、附属表,链接表保存多对多关系;
[0101]
(3)一个中心点或链接可能有多个附属表,每个附属表可对应一个源业务系统,并按时间戳(load_date)形成相关属性的不同时期的历史记录,这三类表中保存有记录来源(rec_source)属性,可以记录所有源电网业务系统的数据集合。
[0102]
电网dv模式适合高效存储电网的海量数据,但不利于用户使用数据,所以在电网数据仓库环境中,建立以事实表和维度表为基础的多维模型,用于支持最终用户分析数据。
[0103]
s2:建立函数依赖表、数据语义置信度计算表和函数依赖修复表。按照电网dv数据仓库特征,遵循以下步骤构建这四种表:
[0104]
(1)建立函数依赖表fd-list(fd_id,t_id,fd-left,fd-right,conf-fd),其中,fd_id表示函数依赖表达式的标识,t_id表示函数依赖所属的中心点/链接表标识,fd-left表示函数依赖表达式的左部名,fd-right表示函数依赖表达式的右部名,conf-fd表示函数依赖的数据置信度。
[0105]
(2)输入已确定的函数依赖及其数据置信度(≥α),按函数依赖表达式标识、所属表标识、表达式左部和右部,以及数据置信度分别存入函数依赖表fd-list的fd_id、t_id、fd-left、fd-right和conf-fd字段。
[0106]
(3)建立数据语义置信度计算表ds-conf(ds_id,fd_id,sat_id,bus_key,dts,fd-l,fd-r,conf-l,conf-r,repair),其中,ds_id表示该表顺序主键,fd_id表示函数依赖表达式的标识,sat_id表示附属表标识,bus_key表示业务键,dts表示时间戳,fd-l表示函数依赖表达式左部值,fd-r表示函数依赖表达式右部值,conf-l表示函数依赖表达式左部的数据置信度,conf-r表示函数依赖表达式右部的数据置信度,repair表示修复值。
[0107]
(4)建立函数依赖修复表fd-repair(rp_id,fd_id,sat_id,bus_key,dts,fd-l,fd-r,repair),其中,rp_id表示该表顺序主键,fd_id表示函数依赖表达式的标识,sat_id表示附属表标识,bus_key表示业务键,dts表示时间戳,fd-l表示函数依赖表达式左部值,fd-r表示函数依赖表达式右部值,repair表示函数依赖表达式的修复值。
[0108]
如图3所示,已获得电网dv数据仓库中包含的函数依赖及其置信度,本实施例规定数据语义置信度阈值为α=0.65;
[0109]
s3:对函数依赖表fd-list中的某个中心点的若干函数依赖表达式,找到对应的中心点及其附属表,检测这些函数依赖对标杆附属表是否成立,将不符合函数依赖的数据字段输出到数据语义置信度计算表ds-conf。
[0110]
s31:获取同类附属表:对这些函数依赖,获取其函数依赖表fd-list中的t_id(中心点标识)和函数依赖表达式左部fd-left和函数依赖表达式右部fd-right(非数值型,以下相同),利用用户设定和电网本体知识库,明确同类附属表,以及标杆附属表及次要附属表。
[0111]
a)获得设定标杆附属表:根据用户设定(利用电网数据表的命名规则),获得标杆附属表,本实施例设定sat_custaddr1为标杆附属表;
[0112]
b)判断是否同类附属表:利用电网本体知识库,证实附属表是函数依赖所属的中心表或链接表t_id下对同一个业务对象的同类特征的属性说明,如:具有用户业务对象的地址特征的附属表;通过查询电网本体知识库可知,sat_custaddr1和sat_custaddr2均为具有用户业务对象的地址特征的同类附属表;
[0113]
c)获得全部同类附属表:除标杆附属表外,其他同类附属表表为次要附属表,本实施例sat_custaddr1为标杆附属表,sat_custaddr2为次要附属表。
[0114]
s32:表中字段名匹配:利用电网本体知识库,以标杆附属表为主,对多个附属表中的字段名进行匹配,假设有附属表1的字段f1,与附属表2的字段f2,本体知识库的推理有两种方式:
[0115]
a)如果本体知识库中保存了“f1≡f2”规则,则直接得到肯定结果;
[0116]
b)否则,在本体知识库上执行推理和如果满足,则得到肯定结果,否则f1和f2不匹配。
[0117]
在本实施例中,利用电网本体知识库,以sat_custaddr1为主,对次要附属表sat_custaddr2中的字段名进行匹配,匹配结果为:sat_custaddr1中的“姓名”与sat_custaddr2中的“姓名”匹配,sat_custaddr1中的“电话”与sat_custaddr2中的“固定电话”匹配,sat_custaddr1中的“省市”与sat_custaddr2中的“省”匹配,sat_custaddr1中的“城市”与sat_
custaddr2中的“市”匹配,sat_custaddr1中的“地址”与sat_custaddr2中的“用电地址”匹配。
[0118]
s33:对标杆附属表检测函数依赖的成立模式:根据字段名匹配结果,对附属表中函数依赖表达式左部fd-left和函数依赖表达式右部fd-right对应的字段值,检测全部数据记录是否满足函数依赖表达式fd-left

fd-right,即对电网业务对象,一个函数依赖表达式左部fd-left值必须对应一个相同的fd-right值;
[0119]
s34:若标杆附属表中有不符合该函数依赖的数据记录,则输出到数据语义置信度计算表ds-conf:
[0120]
a)对新数据的处理(最新数据不是错误):利用电网本体知识库,查询相对某函数依赖表达式左部fd-left值,其对应函数依赖表达式右部fd-right值是最近更新值,即对新记录,虽然函数左部值与此前相同,但允许函数右部值与此前不同,所以该记录是符合函数依赖的,不输出到数据语义置信度计算表ds-conf;
[0121]
b)对存在成立模式值数据的处理:
[0122]
i)如果存在一个函数依赖表达式左部fd-left值拥有相同函数依赖表达式右部fd-right值的记录数量大于不相同函数依赖表达式右部值fd-right的记录数量,则该多数相同函数依赖表达式右部值fd-right值将作为成立模式值,不输出到数据语义置信度计算表ds-conf;
[0123]
ii)将少数具有不相同函数依赖表达式右部值fd-right值的记录(记录数》0)直接输出到函数依赖修复表,即生成新的rp_id,当前函数依赖标识置入fd_id,标杆附属表标识置入sat_id,业务键置入bus_key,时间戳置入dts,函数依赖左部值置入fd-l,函数依赖右部值置入fd-r,成立模式值置入repair。
[0124]
c)对不存在成立模式数据的处理:将全部不符合函数依赖的数据记录,按以下形式,生成新的该表顺序主键ds_id,当前函数依赖标识置入fd_id,标杆附属表标识置入sat_id,业务键值置入bus_key,时间戳置入dts,函数依赖左部值置入fd-l,函数依赖右部值置入fd-r,输出到数据语义置信度计算表ds-conf。
[0125]
如图4所示,设有标杆附属表sat_custaddr1的数据记录,如图5所示,设有次要附属表sat_custaddr2的数据记录;
[0126]
在本实施例中,对函数依赖“城市

省市”,检测标杆附属表sat_custaddr1全部数据记录,发现该函数依赖存在成立模式问题,即对业务键为“cu006”、“cu007”的两条记录,虽然函数依赖左部的“城市”字段都有值“福州市”,但函数依赖右部的“省市”字段上分别有值“福建省”和“广东省”,因此判定不存在成立模式,如图6所示,在数据语义置信度计算表ds-conf中存入记录(“ds001”,“fd018”,“sat_custaddr1”,“cu006”,“2022/9/21”,“福州市”,“福建省”,
“”
,
“”
,
“”
)、(“ds002”,“fd018”,“sat_custaddr1”,“cu007”,“2022/9/21”,“福州市”,“广东省”,
“”
,
“”
,
“”
)。
[0127]
s4:对函数依赖表fd-list中的该中心点的这些函数依赖表达式,在次要附属表中,获取与若干函数依赖表达式左部fd-left和函数依赖表达式右部fd-right对应的字段值,检测全部数据记录是否符合函数依赖,将不符合函数依赖的数据字段输出到数据语义置信度计算表ds-conf。
[0128]
s41:与标杆附属表中符合函数依赖的记录比较:对除ds-conf保存的数据记录之
外的标杆附属表记录,按前述字段名匹配结果,将次要附属表某业务键值与时间戳记录的函数依赖表达式左部fd-left值和函数依赖表达式右部fd-right值与标杆附属表中相应记录且符合函数依赖的对应字段值进行比较,按比较结果分别处理:
[0129]
a)若在fd-left和fd-right字段上,次要附属表与标杆附属表的字段值都是一致的,则这些次要附属表记录符合函数依赖;
[0130]
b)若在fd-left字段上,次要附属表与标杆附属表的字段值是一致的,但在fd-right字段上次要附属表与标杆附属表的字段值不一致,则将标杆附属表的fd-right字段值作为成立模式值,并直接输出到函数依赖修复表,即生成新的rp_id,当前函数依赖标识置入fd_id,次要附属表标识置入sat_id,业务键值置入bus_key,时间戳置入dts,次要附属表函数依赖左部值置入fd-l、右部值置入fd-r,成立模式值置入repair;
[0131]
c)若在fd-left字段上,次要附属表与标杆附属表的字段值不一致,则该记录输出到数据语义置信度计算表ds-conf,即生成新的ds_id,当前函数依赖标识置入fd_id,次要附属表标识置入sat_id,业务键值置入bus_key,时间戳置入dts,函数依赖左部值置入fd-l,函数依赖右部值置入fd-r,输出到数据语义置信度计算表ds-conf。
[0132]
s42:对次要附属表检测函数依赖的成立模式:对与ds-conf保存的标杆附属表数据记录对应的次要附属表数据记录,检测其是否满足表达式函数依赖表达式fd_left

fd_right,即对电网业务对象,一个fd_left值必须对应一个相同的fd_right值;
[0133]
s43:若这些次要附属表中有不符合该函数依赖的数据记录,则输出到数据语义置信度计算表ds-conf:
[0134]
a)对更新数据的处理:利用电网本体知识库,查询相对某fd_left值,其对应fd_right值是最近更新值,即对最新记录,虽然函数左部值与此前相同,但允许函数右部值与此前不同,所以该记录是符合函数依赖的,不输出到ds-conf表;
[0135]
b)对存在成立模式值数据的处理:
[0136]
i)如果存在一个函数依赖表达式左部值fd_left拥有相同函数依赖表达式右部值fd_right的记录数量大于不相同函数依赖表达式右部值fd_right的记录数量,则该多数相同函数依赖表达式右部值fd_right将作为成立模式值,不输出到数据语义置信度计算表ds-conf;
[0137]
ii)将少数具有不相同fd_right值的记录(记录数》0)直接输出到函数依赖修复表,即生成新的rp_id,当前函数依赖标识置入fd_id,次要附属表标识置入sat_id,业务键置入bus_key,时间戳置入dts,函数依赖左部值置入fd_l,函数依赖右部值置入fd_r,成立模式值置入repair。
[0138]
c)对不存在成立模式数据的处理:将全部不符合函数依赖的数据记录,按以下形式,生成新的ds_id,当前函数依赖标识置入fd_id,次要附属表标识置入sat_id,业务键值置入bus_key,时间戳置入dts,函数依赖左部值置入fd_l,函数依赖右部值置入fd_r,输出到数据语义置信度计算表ds-conf。
[0139]
在本实施例中,检测次要附属表sat_custaddr2函数依赖成立模式并处理不符合函数依赖的数据记录。对函数依赖“市

省”,有“cu003”和“cu008”两条记录,当与标杆附属表中相应记录(按前面的同义词匹配,对应标杆附属表的“城市”和“省市”字段)进行比较时,发现在函数依赖表达式左部fd-left(市)字段上,次要附属表与标杆附属表的字段值是
一致的,但在fd-right字段(省)上次要附属表与标杆附属表的字段值不一致的情况,如图7所示,输出函数依赖修复表记录(“rp001”,“fd021”,“sat_custaddr2”,“cu203”,“2022/9/21”,“广州市”,“福建省”,“广东省”)、(“rp002”,“fd021”,“sat_custaddr2”,“cu208”,“2022/9/21”,“厦门市”,“广东省”,“福建省”)。
[0140]
在本实施例中,检测已保存入数据语义置信度计算表ds-conf的“cu006”、“cu007”标杆附属表两条记录对应的次要附属表记录,检测结果显示,这些次要附属表记录满足函数依赖“市

省”的成立模式,所以这些记录不存入数据语义置信度计算表ds-conf。
[0141]
s5:对数据语义置信度计算表ds-conf中的记录检测函数依赖的成立模式,计算数据语义置信度计算表ds-conf中的数据置信度,并确定修复值,存入函数依赖修复表。
[0142]
s51:对数据语义置信度计算表ds-conf中的次要附属表记录,检测函数依赖的成立模式:对表中该函数依赖对应的fd-l和fd-r字段,检测此表全部记录是否满足该记录fd_id的表达式fd-left

fd-right,即对电网业务对象,一个fd-l值必须对应一个相同的fd-r值;
[0143]
s52:对符合函数依赖的数据记录,则删除其记录:
[0144]
a)对符合函数依赖数据的处理:按照业务键值与时间戳查标杆附属表,如果未查到相同键记录,且如果一个fd-l值对应一个相同的fd-r值,则从数据语义置信度计算表ds-conf表中删除之;
[0145]
b)对存在成立模式值数据的处理:
[0146]
i)如果存在一个fd-l值拥有相同fd-r值的记录数量大于不相同fd-r值的记录数量,则该多数相同fd-r值将作为成立模式值,从数据语义置信度计算表ds-conf中删除这些存在模式值的记录;
[0147]
ii)将具有少数不相同fd-r值的记录(记录数》0)直接存入到函数依赖修复表,即生成新的rp_id,当前函数依赖标识置入fd_id,次要附属表标识置入sat_id,业务键值置入bus_key,时间戳置入dts,函数依赖左部值置入fd-l,函数依赖右部值置入fd-r,成立模式值置入repair;
[0148]
iii)从数据语义置信度计算表ds-conf中删除这些少数不相同fd-r值并已存入函数依赖修复表的记录。
[0149]
s53:对数据语义置信度计算表ds-conf中的全部记录,计算数据置信度,确定修复值:对数据语义置信度计算表ds-conf中的记录,根据数据语义,计算数据语义置信度计算表ds-conf中的数据置信度,确定修复值。
[0150]
a)利用本体知识库分别确定函数依赖左右部的证据属性:按数据语义置信度计算表ds-conf中的附属表标识sat_id,以及fd_id涉及的函数依赖表达式(fd-list中)左部fd-left和函数依赖表达式右部fd-right的字段名,在电网本体知识库中分别查找标杆附属表或次要附属表左部和右部的决定属性,即左部和右部所依赖的属性,作为证据属性(父节点),然后,按贝叶斯方法,进行下述计算:
[0151]
i)计算条件概率:根据贝叶斯网络的节点和父节点关系,计算各fd-l值l和fd-r值r出现的次数,按下列式子计算出条件概率:
[0152]
[0153]
ii)按照如下公式计算数据语义置信度计算表ds-conf中fd-l和fd-r实例值l和r的数据置信度,并归一化处理。
[0154][0155]
归一化公式:
[0156][0157]
b)根据数据置信度确定修复值:不符合函数依赖的若干数据记录有两种情况,分别按以下处理:
[0158]
i)函数依赖表达式左部值fd-l相同,但若干函数依赖表达式右部值fd-r各不相同,则选择conf_r’(r)最大值的r值作为修复值置入这些若干记录的repair字段;如果conf_r’(r)值都相等,则选择conf_l’(l)最大值的记录的r值作为修复值置入这些若干记录的repair字段;
[0159]
ii)fd-l值相同,但存在两组以上,即每组有相等数量的函数依赖表达式右部值fd-r,组内函数依赖表达式右部值fd-r相等但组间不等,则选择conf_r’(r)组内累计最大值的r值作为修复值置入这些若干记录的repair字段;如果conf_r’(r)值组内累计最大值都相等,则选择conf_l’(l)值组内累计最大值的记录的r值作为修复值置入这些若干记录的repair字段。
[0160]
s54:生成函数依赖修复表的修复记录:对数据语义置信度计算表ds-conf中的记录,合并相同的fd_id,sat_id,bus_key,dts,fd-l,fd-r记录,仅保留其第1条记录;将所有数据语义置信度计算表ds-conf中记录存入函数依赖修复表fd-repair,其中新生成该表顺序主键rp_id,将数据语义置信度计算表ds-conf的fd_id,sat_id、bus_key、dts、fd-l、fd-r和repair分别置入fd-repair表对应字段名。
[0161]
s55:若函数依赖表fd-list中还有涉及其他中心点的函数依赖未处理,则获取其他中心点的函数依赖,转到步骤s3。
[0162]
在本实施例中,数据语义置信度计算表ds-conf中仅有两条记录,但其fd_l值相同,fd_r值不同,不符合函数依赖fd_id的成立模式,不能删除。
[0163]
在本实施例中,根据电网本体知识库,确定数据语义置信度计算表ds-conf中涉及的函数依赖fd_left为“城市”所依赖的属性为“地址”,fd_left为“市”所依赖的属性为“用电地址”,fd_right为“省市”所依赖的属性为“城市”,fd_right为“省”所依赖的属性为“市”,将所依赖的属性作为该左部或右部依赖的属性,按照贝叶斯方法计算条件概率及置信度,如图8所示,得到具体计算结果;
[0164]
对数据语义置信度计算表ds-conf中的“ds001”、“ds002”两条记录,属于fd_l值相同,但若干fd_r值各不相同,则选择conf_r’(r)组内累计最大值的“福建省”为修复值置入这两条记录的repair字段。
[0165]
合并数据语义置信度计算表ds-conf的记录后,生成新记录并存入函数依赖修复
表fd-repair,如图9所示,得到处理结果;
[0166]
s6:采用多维模型,构建电网数据集市作为目标表,其中包括电网多维模型中的两类表(事实表和维度表),本实施例步骤s1构建的电网dv数据仓库作为来源表。
[0167]
如图10所示,得到电网多维模型,在图中有电网业务对象的维度表:客户维度表md_customer、用电合同维度表md_contract和服务维度表md_service,以及日期维度表,还有用电情况事实表md_usage。
[0168]
s7:对多维模型的维度表加载数据。假设由来源表中的客户对象(涉及中心点及其附属表),向目标表中的客户维度表(关于电网客户对象仅有一个维度表)中加载数据。
[0169]
s71:利用电网本体知识库和电网数据表命名规则,在目标表中找到客户维度表,明确客户维度表主键名与客户中心点业务键名的匹配,如cust_key作为主键。
[0170]
s72:在来源表中找到客户中心点及其附属表:利用电网本体知识库和电网数据表命名规则(都带有customer标识或同义词),可确定客户维度表对应的中心点表是客户中心点,同样,可确定该中心点下有若干类附属表,同类附属表并区分标杆附属表和次要附属表(按命名规则标杆附属表带有bs标识)。
[0171]
s73:将中心点业务键值存入临时维度表:
[0172]
a)按目标表的维度表模式,建立一个临时维度表(需另外增加一个时间戳字段);
[0173]
b)按步骤s72中确定的中心点业务键与临时维度表业务键相同,将中心点业务键全部存入临时维度表业务键。
[0174]
s74:将与客户维度表相关的标杆附属表数据存入临时维度表:
[0175]
a)利用电网本体知识库和电网数据表命名规则,确定标杆附属表各字段与临时维度表的各字段的对应关系;
[0176]
b)按临时维度表中已有业务键值,将标杆附属表中相同业务键值的其他字段数据(包括时间戳),全部存入临时维度表;因时间戳不同,相同业务键值可能有多条记录。
[0177]
s75:将与客户维度表相关的次要附属表数据存入临时维度表:
[0178]
a)利用电网本体知识库和电网数据表命名规则,确定次要附属表各字段与临时维度表的各字段的对应关系;
[0179]
b)对次要附属表中的全部记录,按业务键值和时间戳与临时维度表中已有记录比较:
[0180]
i)如果有匹配记录,则用次要附属表记录,补充尚无具体值的临时维度表字段,已有具体值字段不存入;
[0181]
ii)如果无匹配记录,则用次要附属表记录的具体值,存入临时维度表字段(包括时间戳)。
[0182]
s76:删除临时维度表中的多余记录:对临时维度表中的每个业务键(如cust_key)值,仅保留一个最新时间戳的记录,其余记录删除;
[0183]
s77:利用函数依赖修复表,修复临时维度表中的数据:可以利用本体知识库进行字段名匹配。
[0184]
a)从函数依赖修复表fd-repair中,获得标杆附属表标识与sat_id相同的全部修复记录,按bus_key、dts值检索临时维度表中的数据记录集合a,并根据fd_id查询函数依赖表fd-list中的对应t_id的获得标杆附属表fd-left和fd-right的字段名,从而确定fd-l和
fd-r值对应的字段名,如果在集合a中的fd-left和fd-right的字段名与fd-l和fd-r值匹配,则将该fd-r值修复为fd-repair表的该repair字段值;
[0185]
b)从函数依赖修复表fd-repair中,获得次要附属表标识与sat_id相同的全部修复记录,按bus_key、dts值检索临时维度表中的数据记录集合b,并根据fd_id查询函数依赖表fd-list中的对应t_id的获得次要附属表fd-left和fd-right的字段名,从而确定fd-l和fd-r值对应的字段名,如果在集合b中的fd-left和fd-right的字段名与fd-l和fd-r值匹配,则将该fd-r值修复为fd-repair表的该repair字段值。
[0186]
s78:将临时维度表中的数据,存入对应的客户维度表(不存入时间戳)。
[0187]
s79:重复本步骤,对多维模型的其他维度表建立临时维度表。
[0188]
在本实施例中,以md_customer为例进行说明。假设由来源表中的客户业务对象,即客户中心点hub_customer及其附属表sat_customer、sat_custaddr1、sat_custaddr2,向目标表中的客户维度表中加载数据。
[0189]
1)利用电网本体知识库和电网数据表命名规则,在目标表中找到客户维度表md_customer,确定客户维度表主键与客户中心点业务键是匹配的,即将客户中心点hub_customer的业务键cust_key作为md_customer的主键。
[0190]
2)利用电网本体知识库和电网数据表命名规则(都带有customer标识或同义词),可确定客户维度表对应的中心点是客户中心点hub_customer,同样,可确定该中心点下有附属表sat_customer、sat_custaddr1、sat_custaddr2,同类附属表sat_custaddr1、sat_custaddr2,并区分为标杆附属表sat_custaddr1和次要附属表sat_custaddr2。
[0191]
3)将客户中心点hub_customer业务键值cust_key存入临时维度表:首先建立一个临时维度表(需另外增加一个时间戳字段),再将中心点业务键cust_key值全部存入临时维度表业务键字段。
[0192]
4)将与客户维度表相关的标杆附属表sat_custaddr1数据存入临时维度表:
[0193]
a)利用电网本体知识库和电网数据表命名规则,确定标杆附属表各字段与临时维度表的各字段的对应关系为姓名-姓名,电话-电话,省市-省市,城市-城市,地址-用电地址;
[0194]
b)按临时维度表中已有业务键值,将标杆附属表中相同业务键值的其他字段数据(包括时间戳),全部存入临时维度表,在本实施例中,各业务键只有一个时间戳,客户临时维度表存入10条记录。
[0195]
5)将与客户维度表相关的次要附属表为sat_custaddr2,将其数据存入临时维度表:
[0196]
a)利用电网本体知识库和电网数据表命名规则,确定次要附属表各字段与临时维度表的各字段的对应关系为姓名-姓名,固定电话-电话,省-省市,市-城市,用电地址-用电地址;
[0197]
b)因次要附属表sat_custaddr2中的记录,皆与临时维度表中记录匹配,无需为临时维度表补充具体值,所以,如图11所示,客户临时维度表仍然是10条记录;
[0198]
6)因客户临时维度表中每个cust_key都仅有一条记录,不存在多余记录,临时表保持不变。
[0199]
7)利用函数依赖修复表fd-repair,修复客户临时维度表中的数据:
[0200]
a)从函数依赖修复表fd-repair中,获得标杆附属表标识sat_custadddr1与sat_id相同的全部修复记录rp003和rp004,按bus_key、dts值检索临时维度表中的数据记录集合a,包括图11中的第6、7条记录。其中,第6条记录不用修复,第7条记录的“省市”字段修复为“福建省”。
[0201]
b)从函数依赖修复表fd-repair中,获得次要附属表标识sat_custadddr2与sat_id相同的全部修复记录rp001和rp002,按bus_key、dts值检索临时维度表中的数据记录集合b,包括图11中的第3、8条记录。然后利用本体知识库,确定“省”和“市”对应为临时表中的“省市”和“城市”字段,但未发现fd_l和fd_r值匹配,所以不用修复。
[0202]
如图12所示,得到经过修复后的客户临时维度表。
[0203]
8)如图13所示,将客户临时维度表中的数据,存入对应的客户维度表md_customer。
[0204]
9)重复本步骤,对多维模型的其他维度表加载数据。
[0205]
s8:对多维模型的事实表加载数据。假设由来源表中的业务对象关系(如合同-服务链接及其附属表),向目标表中的事实表(如用电情况事实表)中加载数据。
[0206]
s81:利用电网本体知识库和电网数据表命名规则,在目标表中找到用电情况事实表,明确用电情况事实表的主键,以及构成事实表主键中的外键与中心点表业务键名的匹配,如cust_key和cont_key等。
[0207]
s82:在来源表中找到合同-服务链接及其附属表,以及相关的中心点表:利用电网本体知识库和电网数据表命名规则(带有lnk_cont-serv、customer、contract和service标识或同义词),可确定用电情况事实表对应的链接表是合同-服务链接表,同样,可确定该链接表下的若干同类附属表,区分为标杆附属表和次要附属表(如标杆附属表的命名规则带有bs标识)。
[0208]
s83:将链接表中的业务键值存入临时事实表:
[0209]
a)建立临时表:按目标表的事实表模式,建立一个临时事实表;
[0210]
b)业务键存入临时表:
[0211]
i)检查业务键:如果目标表主键包含的外键数大于来源链接表中的外键数 1,需要查询函数依赖表fd-list,寻找目标表中外键与外键之间的函数依赖关系和对应的来源表链接,如果找到隐含函数依赖和对应的来源表链接,则继续,否则报告出错,算法结束;
[0212]
ii)确定业务键:如果目标表主键包含的外键数等于来源链接表中的外键数,或者目标表主键中的外键之间存在函数依赖和对应的来源表链接,利用本体知识库检测这些外键相互匹配,如果匹配,则继续,否则报告出错,算法结束;
[0213]
iii)向临时表存入业务键值:以来源表链接中的外键,以及包含外键函数依赖的链接(若有),获得目标表外键的对应实例值,按顺序存入临时事实表。
[0214]
s84:将合同-服务链接表的标杆附属表数据存入临时事实表:
[0215]
a)利用电网本体知识库和电网数据表命名规则,确定标杆附属表各字段与临时事实表的各字段的对应关系,也确定日期维度表的主键;
[0216]
b)按临时事实表中已有业务键值,将标杆附属表中相同业务键值的其他字段数据(包括时间戳),全部存入临时事实表;因时间戳不同,相同业务键值组合可能有多条不同时间戳的记录。
[0217]
s85:将合同-服务链接表的次要附属表数据存入临时事实表:
[0218]
a)利用电网本体知识库和电网数据表命名规则,确定次要附属表各字段与临时事实表的各字段的对应关系;
[0219]
b)对次要附属表中的全部记录,按业务键值组合和时间戳与临时事实表中已有记录比较:
[0220]
i)如果有匹配记录,则用次要附属表记录,补充尚无具体值的临时维度表字段,已有具体值字段不存入;
[0221]
ii)如果无匹配记录,则用次要附属表记录的具体值,存入临时维度表字段(包括时间戳)。
[0222]
s86:将临时事实表中的数据,存入对应的事实表,时间戳存入事实表的日期维度值。
[0223]
s87:重复本步骤,对多维模型的其他事实表加载数据。
[0224]
1)在本实施例中,利用电网本体知识库和电网数据表命名规则,在目标表中找到用电情况事实表md_usage,明确其主键包含:cust_key、cont_key、serv_key、date_id,其中cust_key与中心点表hub_customer的业务键匹配,cont_key与中心点表hub_contract的业务键匹配,serv_key与中心点表hub_service的业务键匹配。
[0225]
2)在本实施例中,利用电网本体知识库和电网数据表命名规则,在来源表中找到合同-服务链接lnk_cont-serv及其附属表sat_cont-serv,以及相关的中心点:hub_customer、hub_contract和hub_service。确定用电情况事实表md_usage对应链接表lnk_cont-serv,其标杆附属表为sat_cont-serv。
[0226]
3)如图14所示,将链接表中的业务键值存入临时事实表:
[0227]
a)按目标表的事实表模式,建立一个临时事实表;
[0228]
b)业务键存入临时表:
[0229]
i)检查目标表主键包含的外键数为4,而来源链接表中的外键数为2,应查询fd_list,找到目标表中外键与外键之间的函数依赖关系fd001:cont_key

cust_key和链接标识lnk_cust-cont;
[0230]
ii)确定目标表主键包含的外键为:cust_key、cont_key、serv_key,以及日期维度标识date_id;
[0231]
iii)以cont_key的键值为基础,获取来源表lnk_cont-serv与lnk_cust-cont的外键联接对应实例值,按顺序存入临时事实表。
[0232]
4)如图15所示,将合同-服务链接表lnk_cont-serv的标杆附属表数据存入临时事实表:
[0233]
a)利用电网本体知识库和电网数据表命名规则,确定sat_cont-serv的load_date时间戳字段对应日期维度表的主键date_id;sat_cont-serv与临时事实表各字段的对应关系为:其中sat_cont-serv的“用电量”对应临时事实表中的“用电量”,sat_cont-serv的“金额”对应临时事实表中的“金额”。
[0234]
b)按临时事实表中已有业务键值,将标杆附属表中相同业务键值的其他字段数据(包括时间戳),全部存入临时事实表。
[0235]
5)本实施例中,合同-服务链接表lnk_cont-serv没有次要附属表,所以临时事实
表保持不变。
[0236]
6)如图16所示,将临时事实表中的数据,存入对应的事实表。
[0237]
7)重复本步骤,对多维模型的其他事实表加载数据。
[0238]
s9:至此,已加载多维模型目标表中的全部数据。
[0239]
本发明利用本体知识库和电网命名规则,借助函数依赖关系检测实体数据表内和表间的不一致数据,再按照电网业务特点,获得部分不一致数据修复值,也运用数据语义方法计算置信度确定修复值,最后,在不变更dv数据仓库的情况下,修改不一致数据,自动完成数据集市的加载。
[0240]
本发明利用本体知识库和电网命名规则匹配数据表名和字段名语义,区分标杆附属表和次要附属表,再借助函数依赖检测dv附属表内和表间的不一致性,最后,按照电网业务特点,运用数据语义和贝叶斯网络方法计算其置信度,并确定修复值,实现了dv不一致数据管理方案。
[0241]
本发明运用电网dv数据中的函数依赖关系方法,在不变更电网dv数据仓库的情况下,修复不一致数据;自动完成数据集市的加载,解决了高质量自动加载数据集市的技术问题。
[0242]
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献