掌桥专利:专业的专利平台
掌桥专利
首页

一种数据表血缘分析方法、装置、设备及存储介质

文献发布时间:2024-04-18 19:59:31


一种数据表血缘分析方法、装置、设备及存储介质

技术领域

本发明涉及数据分析技术领域,特别涉及一种数据表血缘分析方法、装置、设备及存储介质。

背景技术

在实际生产应用中,常常需要加工任务间的血缘关系。例如:对于产品性数仓系统,即所有部署本产品的地区使用同一套架构和代码,由总部根据当地客户购买的产品清单,发放控制脚本以控制各个任务的加工与否,往往一个产品功能后台涉及几百个加工任务,如果没有血缘关系,挨个去分析会相当耗费时间,如果采用记录的方式,会有大量的人工成本,且质量保障难度也比较大。并且,系统在生产运行的时候,客户常会对数据的计算过程产生疑问,技术人员可对该系统没有过多的了解,如果不基于任务血缘分析就需要在成百上千个任务中找出任务的加工顺序。目前已有的技术是基于单行SQL(StructuredQuery Language,即结构化查询语言数据库)代码进行数据表的血缘解析,这样可以帮助用户了解表间的依赖关系,但不能满足任务之间的依赖关系。因此,如何对加工任务之间的血缘关系进行分析是需要解决的。

发明内容

有鉴于此,本发明的目的在于提供一种数据表血缘分析方法、装置、设备及存储介质,能够对加工任务之间的血缘关系进行分析。其具体方案如下:

第一方面,本申请公开了一种数据表血缘分析方法,包括:

获取待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务;

对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码,并基于所述目标标识号编码在所述预设数据资源库中搜索相应的目标数据库语句;

在预设业务场景下基于所述目标数据库语句确定所述目标加工任务的血缘任务,并将所述血缘任务确定为新的目标加工任务后,跳转至对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码的步骤,直至在所述预设业务场景下所述目标加工任务不存在对应的血缘任务;

基于所有所述目标加工任务生成所述待分析数据表对应的血缘关系图谱。

可选的,所述获取待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务之前,还包括:

建立数据加工任务与对应目标数据表之间的映射关系,并基于所述映射关系生成所述任务关系映射表。

可选的,所述获取待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务,包括:

通过预设表单信息或用户端发送的疑问数据查询指令确定待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务。

可选的,所述对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码,并基于所述目标标识号编码在所述预设数据资源库中搜索相应的目标数据库语句,包括:

对Kettle的数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码,并基于所述目标标识号编码在Kettle的数据资源库中搜索相应的SQL语句。

可选的,所述Kettle的数据资源库为Oracle数据库。

可选的,所述在预设业务场景下基于所述目标数据库语句确定所述目标加工任务的血缘任务,包括:

基于预设实际生产规则确定所述待分析数据表对应的预设业务场景;

基于所述目标数据库语句确定所述目标数据库语句对应的所有操作数据表;

将所述操作数据表确定为当前的目标数据表,并基于所述任务关系映射表确定所述目标数据表对应的数据加工任务;

将所述数据加工任务确定为所述目标加工任务的血缘任务。

可选的,所述基于所述目标数据库语句确定所述目标数据库语句对应的所有操作数据表之后,还包括:

基于预设正则表达式或预设数据清洗规则将所述所有操作数据表中符合预设剔除条件的操作数据表进行剔除。

第二方面,本申请公开了一种数据表血缘分析装置,包括:

加工任务确定模块,用于获取待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务;

目标语句确定模块,用于对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码,并基于所述目标标识号编码在所述预设数据资源库中搜索相应的目标数据库语句;

血缘任务确定模块,用于在预设业务场景下基于所述目标数据库语句确定所述目标加工任务的血缘任务,并将所述血缘任务确定为新的目标加工任务后,跳转至对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码的步骤,直至在所述预设业务场景下所述目标加工任务不存在对应的血缘任务;

图谱生成模块,用于基于所有所述目标加工任务生成所述待分析数据表对应的血缘关系图谱。

第三方面,本申请公开了一种电子设备,包括:

存储器,用于保存计算机程序;

处理器,用于执行所述计算机程序以实现前述的数据表血缘分析方法。

第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的数据表血缘分析方法。

可见,本申请中,首先获取待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务;对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码,并基于所述目标标识号编码在所述预设数据资源库中搜索相应的目标数据库语句;在预设业务场景下基于所述目标数据库语句确定所述目标加工任务的血缘任务,并将所述血缘任务确定为新的目标加工任务后,跳转至对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码的步骤,直至在所述预设业务场景下所述目标加工任务不存在对应的血缘任务;基于所有所述目标加工任务生成所述待分析数据表对应的血缘关系图谱。即,通过首先确定待分析数据表对应的目标加工任务作为初始任务,在数据库中查找生成所述初始任务使用到的所有数据表,在依次查询所述所有数据对应的加工任务,来确定所述初始任务的血缘任务,然后依次确定新的加工任务使用到的所有数据表,进而确定新的数据表对应的新的加工任务,直到找到的加工任务没有对应的数据表后,即没有对应的血缘任务后,说明已经找到了跟所述待分析数据表对应的目标加工任务有关的所有血缘任务。然后根据查找数据将查询到的所有数据进行整理生成相应的关系图谱图。这样一来,可以清晰的帮助客户了解到加工任务之间的依赖关系。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种数据表血缘分析方法流程图;

图2为本申请公开的一种具体的数据表血缘分析方法流程图;

图3为本申请公开的一种数据表血缘分析装置结构示意图;

图4为本申请公开的一种电子设备结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

现有技术中,基本是基于单行SQL代码进行数据表的血缘解析,没有对加工任务进行血缘分析的方法。因此,本申请将具体介绍一种数据表血缘分析方法。

参见图1所示,本申请实施例公开了一种数据表血缘分析方法,包括:

步骤S11:获取待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务。

本实施例中,所述获取待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务之前,还包括:建立数据加工任务与对应目标数据表之间的映射关系,并基于所述映射关系生成所述任务关系映射表。即,创建一个映射表,用来记录各个加工任务与进行加工的目标数据表之间的映射关系。所述获取待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务,包括:通过预设表单信息或用户端发送的疑问数据查询指令确定待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务。即,根据任务加工过程中菜单所使用的表名或者客户对加工任务使用过程中提出的疑问数据表名,在预设设置的任务关系映射表中确定出该表名对应的目标加工任务。

步骤S12:对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码,并基于所述目标标识号编码在所述预设数据资源库中搜索相应的目标数据库语句。

本实施例中,对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码,并基于所述目标标识号编码在所述预设数据资源库中搜索相应的目标数据库语句。即,在确定了需要建立血缘关系图谱的目标加工任务后,在预设数据库中查询所述目标加工任务对应的ID(Identity document,即标识号)编号,然后根据获取到的ID编码在数据资源库中搜索相应的SQL语句。

步骤S13:在预设业务场景下基于所述目标数据库语句确定所述目标加工任务的血缘任务,并将所述血缘任务确定为新的目标加工任务后,跳转至对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码的步骤,直至在所述预设业务场景下所述目标加工任务不存在对应的血缘任务。

本实施例中,在预设业务场景下基于所述目标数据库语句确定所述目标加工任务的血缘任务。即,根据所述SQL语句查询到所述目标加工任务所使用到的所有数据表然后,利用预设任务关系映射表确定所述新的数据表对应的加工任务,将所述新的数据表对应的加工任务确定为所述目标加工任务的血缘任务,并将所述血缘任务确定为新的目标加工任务后,跳转至步骤12,直到在预设业务场景下所述目标加工任务不存在对应的血缘任务。

步骤S14:基于所有所述目标加工任务生成所述待分析数据表对应的血缘关系图谱。

本实施例中,基于所有所述目标加工任务生成所述待分析数据表对应的血缘关系图谱。即将所有所述目标加工任务按照血缘关系分析的过程生成完整的血缘关系图谱。这样一来,用户对数据计算过程产生的疑问可以通过血缘关系图谱进行查询。

可见,本实施例中,首先获取待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务;对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码,并基于所述目标标识号编码在所述预设数据资源库中搜索相应的目标数据库语句;在预设业务场景下基于所述目标数据库语句确定所述目标加工任务的血缘任务,并将所述血缘任务确定为新的目标加工任务后,跳转至对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码的步骤,直至在所述预设业务场景下所述目标加工任务不存在对应的血缘任务;基于所有所述目标加工任务生成所述待分析数据表对应的血缘关系图谱。即,通过首先确定待分析数据表对应的目标加工任务作为初始任务,在数据库中查找生成所述初始任务使用到的所有数据表,在依次查询所述所有数据对应的加工任务,来确定所述初始任务的血缘任务,然后依次确定新的加工任务使用到的所有数据表,进而确定新的数据表对应的新的加工任务,直到找到的加工任务没有对应的数据表后,即没有对应的血缘任务后,说明已经找到了跟所述待分析数据表对应的目标加工任务有关的所有血缘任务。然后根据查找数据将查询到的所有数据进行整理生成相应的关系图谱图。这样一来,可以清晰的帮助客户了解到加工任务之间的依赖关系。

上述实施例中对数据表血缘分析的大概过程进行了介绍,本实施例将针对确定血缘任务的具体过程进行分析。

参见图2所示,本申请实施例公开了一种具体的数据表血缘分析方法,包括:

步骤S21:获取待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务。

步骤S22:对Kettle的数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码,并基于所述目标标识号编码在Kettle的数据资源库中搜索相应的SQL语句。

本实施例中,所述Kettle的数据资源库为Oracle数据库。

步骤S23:基于预设实际生产规则确定所述待分析数据表对应的预设业务场景,并基于所述目标数据库语句确定所述目标数据库语句对应的所有操作数据表。

本实施例中,基于预设实际生产规则确定所述待分析数据表对应的预设业务场景,并基于所述目标数据库语句确定所述目标数据库语句对应的所有操作数据表。即,利用Oracle(一款关系数据库管理系统)的数据字典表all_tables和存储有Kettle的SQL代码字段进行逐个的instr操作,将SQL代码与Oracle的数据字典表all_tables进行关联,关联条件为instr(upper(sql代码),all_tables.table_name)>0,并根据实际生产规则定义all_tables的用户名(一般为业务用户),以获取SQL中使用到的所有表名信息。

本实施例中,所述基于所述目标数据库语句确定所述目标数据库语句对应的所有操作数据表之后,还包括:基于预设正则表达式或预设数据清洗规则将所述所有操作数据表中符合预设剔除条件的操作数据表进行剔除。即,根据预先定义的正则表达式或特定的数据清洗规则,清除可能无需使用的表,例如以“test”开头或以“tmp”开头的表,具体规则按照用户的实际需求生成的设计规范进行定义。

步骤S24:将所述操作数据表确定为当前的目标数据表,并基于所述任务关系映射表确定所述目标数据表对应的数据加工任务。

本实施例中,将所述操作数据表确定为当前的目标数据表,并基于所述任务关系映射表确定所述目标数据表对应的数据加工任务;即,在获取到所述所有表名信息后,在所述任务关系映射表中查找各个表明信息对应的新的数据加工任务。

步骤S25:将所述数据加工任务确定为所述目标加工任务的血缘任务,并在将所述血缘任务确定为新的目标加工任务后,跳转至对Kettle的数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码的步骤,直至在所述预设业务场景下所述目标加工任务不存在对应的血缘任务。

步骤S26:基于所有所述目标加工任务生成所述待分析数据表对应的血缘关系图谱。

其中,关于上述步骤S21、S25和S26的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。

可见,本实施例中,通过先根据待分析数据表的数据表名先确定出初始的目标加工任务,然后根据预设的任务关系映射表确定所述目标加工任务对应的SQL代码中使用到的所有表名信息,然后根据新的表名信息依次确定与所述目标加工任务存在血缘关系的加工任务,在根据新获取到的加工任务对应的SQL代码中使用到的所有表名信息确定新的血缘任务,直到找到初始的目标加工任务所有的血缘任务。最后将找到的所有的任务生成相应的关系图谱。这样一来,可以帮助用户更好的了解任务之间的依赖关系。

参考图3所述,本申请实施例还相应公开了一种数据表血缘分析装置,包括:

加工任务确定模块11,用于获取待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务;

目标语句确定模块12,用于对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码,并基于所述目标标识号编码在所述预设数据资源库中搜索相应的目标数据库语句;

血缘任务确定模块13,用于在预设业务场景下基于所述目标数据库语句确定所述目标加工任务的血缘任务,并将所述血缘任务确定为新的目标加工任务后,跳转至对预设数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码的步骤,直至在所述预设业务场景下所述目标加工任务不存在对应的血缘任务;

图谱生成模块14,用于基于所有所述目标加工任务生成所述待分析数据表对应的血缘关系图谱。

可见,通过首先确定待分析数据表对应的目标加工任务作为初始任务,在数据库中查找生成所述初始任务使用到的所有数据表,在依次查询所述所有数据对应的加工任务,来确定所述初始任务的血缘任务,然后依次确定新的加工任务使用到的所有数据表,进而确定新的数据表对应的新的加工任务,直到找到的加工任务没有对应的数据表后,即没有对应的血缘任务后,说明已经找到了跟所述待分析数据表对应的目标加工任务有关的所有血缘任务。然后根据查找数据将查询到的所有数据进行整理生成相应的关系图谱图。这样一来,可以清晰的帮助客户了解到加工任务之间的依赖关系。

在一些具体的实施例中,所述数据表血缘分析装置,还可以包括:

映射表创建模块,用于建立数据加工任务与对应目标数据表之间的映射关系,并基于所述映射关系生成所述任务关系映射表。

在一些具体的实施例中,所述加工任务确定模块11,具体可以包括:

指令执行单元,用于通过预设表单信息或用户端发送的疑问数据查询指令确定待分析数据表的数据表名,并在预先设置的任务关系映射表中确定所述数据表名对应的目标加工任务。

在一些具体的实施例中,所述目标语句确定模块12,具体可以用于对Kettle的数据资源库中存储的所有标识号编码进行搜索以确定所述目标加工任务对应的目标标识号编码,并基于所述目标标识号编码在Kettle的数据资源库中搜索相应的SQL语句。

在一些具体的实施例中,所述血缘任务确定模块13,具体可以包括:

业务场景确定单元,用于基于预设实际生产规则确定所述待分析数据表对应的预设业务场景;

操作数据表确定单元,用于基于所述目标数据库语句确定所述目标数据库语句对应的所有操作数据表;

任务映射单元,用于将所述操作数据表确定为当前的目标数据表,并基于所述任务关系映射表确定所述目标数据表对应的数据加工任务;

任务确定单元,用于将所述数据加工任务确定为所述目标加工任务的血缘任务。

在一些具体的实施例中,所述数据表血缘分析装置,还可以包括:

数据表剔除模块,用于基于预设正则表达式或预设数据清洗规则将所述所有操作数据表中符合预设剔除条件的操作数据表进行剔除。

进一步的,本申请实施例还公开了一种电子设备,图4是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。

图4为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的数据表血缘分析方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。

本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。

其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的数据表血缘分析方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。

进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的数据表血缘分析方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种邻苯型光固化不饱和聚酯树脂及其制备方法
  • 一种聚酯苯丙接枝墨粉树脂及其制备方法
  • 一种新型低温高导热墨粉用苯丙树脂材料及其制备方法
技术分类

06120116524045