数据库表字段溯源方法和装置与流程
本公开涉及计算机,尤其涉及一种数据库表字段溯源方法和装置。
背景技术:
1、在数据仓库及数据治理领域,数据血缘分析是支撑数据质量管控、故障排查和影响分析的重要环节。随着数据加工链路日益复杂,一个下游表字段往往经过多层抽取-转换-加载(extract-transform-load,etl)、嵌套查询和存储过程加工才能生成,其数据来源追溯极为困难。
2、相关技术中,数据血缘构建主要依靠etl工具元数据解析或人工查阅结构化查询语言(structured query language,sql)脚本手动梳理,仅能识别表级依赖关系,无法实现字段级别的血缘追溯,且在面对多层嵌套子查询和临时表场景时,血缘链路易断裂、解析准确性差。
技术实现思路
1、本公开提供一种数据库表字段溯源方法和装置,以至少在一定程度上解决相关技术中的技术问题之一。本公开的技术方案如下:
2、根据本公开实施例的第一方面,提供一种数据库表字段溯源方法,获取数据库中待分析的sql脚本;识别所述sql脚本中的嵌套子查询,将所述嵌套子查询替换为临时表并在原位置建立对所述临时表的引用,同时将所述临时表的定义前置,使所述sql脚本转化为不包含嵌套子查询的线性化脚本;从所述线性化脚本中提取所引用的物理表,将所述物理表与所述线性化脚本关联存储,以建立表级依赖索引;针对所述线性化脚本中的数据写入操作,解析所述数据写入操作的目标字段与来源字段之间的映射关系,提取所述数据写入操作中的过滤条件信息,将所述映射关系和所述过滤条件信息关联存储,以构建字段级血缘关系库;基于所述字段级血缘关系库和所述表级依赖索引,对目标字段进行溯源,以得到从所述目标字段到原始基础表的字段的血缘链路,其中,所述原始基础表为不依赖于其他字段进行加工的物理表。
3、根据本公开实施例的第二方面,提供了一种数据库表字段溯源装置,包括:获取模块,用于获取数据库中待分析的sql脚本;转换模块,用于识别所述sql脚本中的嵌套子查询,将所述嵌套子查询替换为临时表并在原位置建立对所述临时表的引用,同时将所述临时表的定义前置,使所述sql脚本转化为不包含嵌套子查询的线性化脚本;第一存储模块,用于从所述线性化脚本中提取所引用的物理表,将所述物理表与所述线性化脚本关联存储,以建立表级依赖索引;第二存储模块,用于针对所述线性化脚本中的数据写入操作,解析所述数据写入操作的目标字段与来源字段之间的映射关系,提取所述数据写入操作中的过滤条件信息,将所述映射关系和所述过滤条件信息关联存储,以构建字段级血缘关系库;溯源模块,用于基于所述字段级血缘关系库和所述表级依赖索引,对目标字段进行溯源,以得到从所述目标字段到原始基础表的字段的血缘链路,其中,所述原始基础表为不依赖于其他字段进行加工的物理表。
4、根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如本公开第一方面实施例所述的数据库表字段溯源方法。
5、根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本公开第一方面实施例所述的数据库表字段溯源方法。
6、根据本公开实施例的第五方面,提供一种计算机程序产品,包括:计算机程序,所述计算机程序被处理器执行时实现如本公开第一方面实施例所述的数据库表字段溯源方法。
7、本公开的实施例提供的技术方案至少带来以下有益效果:
8、在本技术方案中,获取数据库中待分析的sql脚本;识别sql脚本中的嵌套子查询,将嵌套子查询替换为临时表并在原位置建立对临时表的引用,并将临时表的定义前置,使sql脚本转化为线性化脚本;从线性化脚本中提取所引用的物理表,关联存储以建立表级依赖索引;解析数据写入操作的目标字段与来源字段之间的映射关系,提取过滤条件信息,关联存储以构建字段级血缘关系库;基于字段级血缘关系库和表级依赖索引,对目标字段进行溯源,得到从目标字段到原始基础表的字段的血缘链路。由此,通过将嵌套子查询线性化,降低了复杂sql脚本的解析难度;通过提取字段级映射关系并关联过滤条件信息,实现了从表级血缘到字段级血缘的精细化追溯;通过递归溯源临时表,打通了从目标字段到原始基础表字段的全链路血缘,从而提高了数据血缘追溯的准确性和效率。
9、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
1.一种数据库表字段溯源方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述获取数据库中待分析的sql脚本,包括:
3.根据权利要求1所述的方法,其特征在于,所述识别所述sql脚本中的嵌套子查询,将所述嵌套子查询替换为临时表并在原位置建立对所述临时表的引用,同时将所述临时表的定义前置,使所述sql脚本转化为不包含嵌套子查询的线性化脚本,包括:
4.根据权利要求1所述的方法,其特征在于,所述从所述线性化脚本中提取所引用的物理表,将所述物理表与所述线性化脚本关联存储,以建立表级依赖索引,包括:
5.根据权利要求1所述的方法,其特征在于,所述针对所述线性化脚本中的数据写入操作,解析所述数据写入操作的目标字段与来源字段之间的映射关系,提取所述数据写入操作中的过滤条件信息,将所述映射关系和所述过滤条件信息关联存储,以构建字段级血缘关系库,包括:
6.根据权利要求1所述的方法,其特征在于,所述基于所述字段级血缘关系库和所述表级依赖索引,对目标字段进行溯源,以得到从所述目标字段到原始基础表的字段的血缘链路,包括:
7.根据权利要求1所述的方法,其特征在于,所述构建出从目标字段到原始基础表的字段的血缘链路之后,还包括:
8.根据权利要求7所述的方法,其特征在于,所述遍历所述有向无环图,包括:
9.一种数据库表字段溯源装置,其特征在于,包括:
10.一种电子设备,包括:
11.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至8中任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至8中任一项所述的方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com