System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种电力数据血缘查询方法技术_技高网

一种电力数据血缘查询方法技术

技术编号:40610350 阅读:4 留言:0更新日期:2024-03-12 22:18
本发明专利技术涉及一种电力数据血缘查询方法,包括1)统计数据库表的字段信息;2)比较不同表中的字段名,得出不同表中相似度高的字段;3)若存在相似度高的字段,则将这两字段所对应的属性列数据进行比较,判断是否具有血缘关系;4)若两表不存在相似度高的字段或相似度高的字段对应的数据无血缘关系,则将其中一个表的每列数据与另一个表的一列或多列数据进行比较,判断是否具有血缘关系;5)统计数据库中找到的数据血缘关系,在前端进行可视化展示。本发明专利技术能够准确快速找出数据库表之间的关联字段,确定数据表之间的血缘关系,对数据血缘进行可视化展示,增加对数据血缘关系的检索功能,使得相关工作人员能对数据进行整体宏观的掌握和把控。

【技术实现步骤摘要】

本专利技术属于数据查询,具体涉及一种电力数据血缘查询方法


技术介绍

1、随着电网信息化水平的不断提高,电力数据呈现爆炸式增长,在电力领域的数据库中,存放着大量且复杂的数据,它们有着重要的应用价值,通过这些数据可以用来制定发展策略、预测动向。而实际上,大量电力数据库数据的价值仍未得到深度挖掘。数据血缘是指数据之间的依赖关系,它描述了数据库中表与表之间的关联关系。尤其目前无法自动分析已有数据库表之间的关联关系,导致相似场景下数据无法实现横向比较,具有数据血缘关系的数据无法纵向分析。电力业务数据之间存在的关联信息不明确,无法呈现数据关联视图,难以起到有效支撑制定企业发展策略的作用。目前已有的数据血缘查询方法,主要是通过人工标注查询的方式,这种方法存在效率低、成本高、易出错的问题,且目前对数据血缘的可视化缺乏有效的展示,导致相关工作人员难以对数据进行宏观的把控。


技术实现思路

1、本专利技术的目的在于克服现有技术的不足,提供一种电力数据血缘查询方法,采用基于相似度的方法查询数据库表之间的血缘关系,能够准确快速的找出数据库表之间的关联字段,确定数据表之间的血缘关系,克服了传统方法效率低、成本高、易出错的问题。此外,对数据血缘进行可视化展示,增加对数据血缘关系的检索功能,使得相关工作人员能对数据进行整体宏观的掌握和把控。为业务人员自主高效使用数据提供辅助支撑,推进了企业的数字化进程。

2、本专利技术解决其技术问题是通过以下技术方案实现的:

3、一种电力数据血缘查询方法,其特征在于:所述方法的步骤为:

4、s1、统计数据库表的字段信息;当多个数据表中各列字段间具有数据血缘关系时,这些列字段中的数据具有相同的值特性,使用sql语句查询出数据库中所有的表信息及数据表中的字段信息,并以key-value键值对的形式存储表、字段信息,即key对应为数据库表名称,所对应的value值为该数据表包含的所有字段名;

5、s2、比较不同表中的字段名,根据相似度算法得出不同表中相似度高的字段;在数据血缘关系的查询中,对于不同表中的字段,字段名越相似,则越可能表达同一意思,对应的属性列数据中更可能存在相同的值,得到数据表的字段信息后,采用改进的jaro-winkler距离相似度算法,两两比较表中的字段名,若某两字段名的相似度达到一定的阈值,则判定两字段相似,很大可能存在血缘关系;jaro-winkler算法是由jaro distant算法改进而来,综合考虑前缀匹配长度和匹配窗口机制,算法将字符串之间的相似性用[0,1]之间的数字表示,数值越大相似度越高,jaro distant值由以下公式衡量:

6、

7、其中:匹配窗口为一定长度的窗口,两个相等字符串的下标差值只有小于这个窗口的长度才算匹配成功,匹配窗口的计算公式如下:

8、

9、m为在匹配窗口长度的范围内、字符串s1和s2匹配的字符串长度;

10、t为匹配的字符串通过改变顺序转变为另一个字符串需要的换位个数;

11、|s1|、|s2|分别为需要比对的字符串长度;

12、jaro-winkler算法对jaro distant算法进行了修改,更加综合地衡量了字符串的相似性,用jwsim表示该算法下属性名的相似性系数,具体计算公式如下:

13、jwsim=dj+l*p(1-dj);

14、其中:dj为jaro distant值;

15、l为匹配的前缀长度;

16、p为一个范围因子常量,用来调整前缀匹配的权值,但是p的值不能超过0.25,winkler的标准默认设置值p=0.1;

17、jaro-winkler距离算法适合短字符串的相似性计算,但没有考虑两个字符串中相同字符间隔问题,使得对一些本不该进行匹配的字段名了进行相似度匹配,编辑距离是一个字符串转换成另一个字符串所需的最少编辑操作次数,编辑距离算法对字符串中字符的位置比较敏感,可以较好的解决上述问题,故将编辑距离算法与jaro-winkler距离算法进行融合,在计算jaro distant值dj时,将公式更新为:

18、

19、其中:editdistant(s1,s2)表示字符串s1与字符串s2之间的编辑距离,其余参数上面均有说明;在得到jaro distant值dj后,再使用jwsim=dj+l*p(1-dj)计算两字符的相似度值,既考虑了前缀相同的重要性,也考虑到了字符串中字符的位序问题;

20、s3、若存在相似度高的字段,则将这两字段所对应的属性列数据进行比较,判断是否具有血缘关系,得到两相似度高的字段名后,使用sql语句查询出两字段对应的属性列数据,再使用intersection方法求出两属性列的交集,然后使用基于tf-idf的相似度算法对两属性列数据进行比较,查看两属性列中数据是否达到相似度阈值,若达到相似度阈值,两字段便具有血缘关系,若达不到相似度阈值,则不存在血缘关系;jaro-winkler算法适用于比较像字段名这种短字符串的相似度,不适用于两属性列属性值相似度的比较,故使用改进的tf-idf算法进行比较,基本的tf-idf相似度算法的公式如下:

21、

22、其中:nw是在某一文本中词条w出现的次数;

23、n是该文本总词条数;

24、y是语料库的文档总数;

25、yw是包含词条w的文档数;

26、分母加一是为了避免w未出现在任何文档中从而导致分母为0的情况,但要将tf-idf算法应用在属性列数据上,计算两属性列数据的重合度,则需要对tf-idf算法进行改进,改进后的tf-idf算法只计算两属性列交集中属性值的tf-idf值,具体公式如下:

27、

28、其中:nw1是属性值w在第一属性列中出现的次数,n1是第一属性列属性值个数;

29、nw2是属性值w在第二属性列中出现的次数,n2是第二属性列属性值个数;

30、y是属性列的个数;

31、yw是属性值w在所有属性列中出现的次数;

32、nw1、nw2均为两属性列交集中的属性值,因为是计算交集中属性值的tf-idf值,因此,在上述算法中,属性值至少会出现一次,即保证了分母yw不会等于0,故分母不用再进行加1计算;在求得两属性列交集中各属性值的tf-idf的值后,进行求和运算,得到最终两属性列的相似度的值;

33、s4、若两表不存在相似度高的字段或相似度高的字段对应的数据无血缘关系,则选中第一个表中的某一列数据与第二个表中的一列或多列数据进行比较,先用sql语句提取属性列数据,再使用intersection方法求两属性列的交集,若有交集,则使用改进后的tf-idf算法计算两属性列的相似度,进而判断是否具有血缘关系;

34、s5、通过上诉步骤得到数据表之间的血缘关系后,以二维表的形式将得到的血缘关系本文档来自技高网...

【技术保护点】

1.一种电力数据血缘查询方法,其特征在于:所述方法的步骤为:

【技术特征摘要】

1.一种电力数据血缘查询方法,...

【专利技术属性】
技术研发人员:宗祥瑞冯冰刘宁金尧郑剑周斌杜岳凡张锡喆
申请(专利权)人:国网天津市电力公司高压分公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1