[发明专利]基于数据库的重复关联检测方法、装置、设备及存储介质有效
| 申请号: | 201910967690.0 | 申请日: | 2019-10-12 |
| 公开(公告)号: | CN110909016B | 公开(公告)日: | 2023-06-16 |
| 发明(设计)人: | 林堋鑫 | 申请(专利权)人: | 中国平安财产保险股份有限公司 |
| 主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2455 |
| 代理公司: | 北京市京大律师事务所 11321 | 代理人: | 谢文强 |
| 地址: | 518048 广东省深圳市福田区益田路*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 数据库 重复 关联 检测 方法 装置 设备 存储 介质 | ||
本发明涉及大数据技术领域,公开了基于数据库的重复关联检测方法、装置、设备及存储介质,用于通过对结构化查询语言SQL脚本中的语句进行拆分,统计SQL中重复关联的源表,提高了检测效率。本发明方法包括:搜索数据库的代码库,代码库中包括所有结构化查询语言SQL脚本;对每个SQL脚本进行解析,得到多个SQL段落;对多个SQL段落进行预处理,生成多个处理后的SQL语句;将多个处理后的SQL语句输入到预置软件中进行分析,生成至少一对两两关联的源表表名;根据至少一对两两关联的源表表名对数据库的脚本目录进行标注,生成标注后的脚本目录;根据标注后的脚本目录在所有预置的SQL脚本中对两两关联的源表表名进行重复关联检测,并得到检测结果。
技术领域
本发明涉及大数据技术领域,尤其涉及基于数据库的重复关联检测方法、装置、设备及存储介质。
背景技术
随着互联网的快速发展,计算机设备处理的数据越来越多,数据库得到广泛应用。在数据库系统中,经常需要进行多维数据分析,而数据来源往往是关系型数据库中的多个表,所以经常要进行多表关联,而结构化查询语言(structured query language,SQL)中的多表连接(join)是一种比较消耗资源的操作,因为该操作涉及到网络输入(Input)/输出(Output)及全表扫描。
由于在大型的数据库系统中,不同的数据处理脚本往往由不同的开发人员开发,开发出来的大量脚本中,可能存在一些重复进行的多表关联的SQL语句。因此,对于常用的一些表,需要进行提前关联,然后让后续的SQL脚本都使用已关联好的中间表,以减少资源的重复消耗。
传统的数据仓库中间宽表的创建,一般需要数据分析人员根据个人经验,或者对已有的大量的SQL脚本进行人工的统计检测,找出哪些表是可以重复关联的,这样的人工分析统计,在脚本比较多的情况下,检测效率低且花费的时间较长,而且还可能遗漏部分脚本。
发明内容
本发明提供了基于数据库的重复关联检测方法、装置、设备及存储介质,用于通过对结构化查询语言SQL脚本中的SQL语句进行拆分,统计SQL中重复关联的源表,提高了检测效率。
本发明实施例的第一方面提供一种基于数据库的重复关联检测方法,包括:搜索数据库的代码库,所述代码库中包括所有结构化查询语言SQL脚本;对每个SQL脚本进行解析,得到多个SQL段落,每个SQL脚本包含至少一个SQL段落;对所述多个SQL段落进行预处理,生成多个处理后的SQL语句,每个SQL段落包含至少一个SQL语句;将所述多个处理后的SQL语句输入到预置软件中进行分析,生成至少一对两两关联的源表表名;根据所述至少一对两两关联的源表表名对所述数据库的脚本目录进行标注,生成标注后的脚本目录;根据所述标注后的脚本目录在所有预置的SQL脚本中对所述两两关联的源表表名进行重复关联检测,并得到检测结果。
可选的,在本发明实施例第一方面的第一种实现方式中,所述对每个SQL脚本进行解析,得到多个SQL段落,每个SQL脚本包含至少一个SQL段落包括:确定目标SQL脚本;根据预置行数在所述目标SQL脚本中查询多个预置SQL关键字,所述预置行数用于指示所述目标SQL脚本中需要进行检索的代码行数;当所述预置行数中包含所述预置SQL关键字时,生成多个SQL段落,每个SQL段落至少包括一个预置SQL关键字。
可选的,在本发明实施例第一方面的第二种实现方式中,所述对所述多个SQL段落进行预处理,生成多个处理后的SQL语句,每个SQL段落包含至少一个SQL语句包括:确定多个SQL段落中每个SQL段落的SQL关键字部分和非SQL关键字部分;确定每个SQL段落中对应的多个待选择分号;在所述对应的多个待选择分号中剔除非法分号,所述非法分号为对应的SQL脚本中非SQL关键字部分中的分号,得到每个SQL段落对应的多个目标分号;按照所述每个SQL段落对应的多个目标分号将对应的SQL段落进行分割,生成多个处理后的SQL语句,所述多个处理后的SQL语句包括每个SQL段落的处理后的SQL语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国平安财产保险股份有限公司,未经中国平安财产保险股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910967690.0/2.html,转载请声明来源钻瓜专利网。





