一种基于Gbase存储过程的数据血缘采集方法及装置制造方法及图纸

技术编号:37044989 阅读:11 留言:0更新日期:2023-03-29 19:23
本发明专利技术公开一种基于Gbase存储过程的数据血缘采集方法及装置,通过去除存储过程定义过程体的固定关键词;通过正则表达式捕获存储过程变量,转化为Key

【技术实现步骤摘要】
一种基于Gbase存储过程的数据血缘采集方法及装置


[0001]本专利技术涉及数据血缘采集
,尤其公开了一种基于Gbase存储过程的数据血缘采集方法及装置。

技术介绍

[0002]目前国产替代化的趋势已经越来越明显,不少国内企业已经数据库软件替换为Gbase,并在Gbase上搭建数据仓库,其中有不少企业是将存储过程作为数仓加工的,并包含了Gbase存储过程的一些特定语句,这类业务场景下,数据血缘无法通过直接解析SQL的形式来生成。
[0003]因此,现有Gbase中存储过程中一些特定语句干扰导致不能准确生成数据血缘,是目前亟待解决的技术问题。

技术实现思路

[0004]本专利技术提供了一种基于Gbase存储过程的数据血缘采集方法及装置,旨在解决现有Gbase中存储过程中一些特定语句干扰导致不能准确生成数据血缘的技术问题。
[0005]本专利技术的一方面涉及一种基于Gbase存储过程的数据血缘采集方法,包括以下步骤:
[0006]去除存储过程定义过程体的固定关键词;
[0007]通过正则表达式捕获存储过程变量,转化为Key

Value形式;
[0008]根据Key去替换变量名为变量值;
[0009]处理循环结构与分支结构,并针对自定义标签做处理;
[0010]语法兼容,根据一些关键词替换或去除SQL语句。
[0011]进一步地,去除存储过程定义过程体的固定关键词的步骤中,去除定义存储过程定义过程体的固定语法,提取出存储过程执行的SQL功能语句。
[0012]进一步地,通过正则表达式捕获存储过程变量,转化为Key

Value形式的步骤中,使用正则表达式去除变量定义,在正则表达式中定义子表达式匹配变量定义的变量名和变量值,并使用捕获组捕获变量名和变量值,形成一个key

value的数据结构。
[0013]进一步地,根据Key去替换变量名为变量值的步骤中,根据key

value中的key去查找存储过程中使用变量的索引值,替换该索引值位置的字符串为value。
[0014]进一步地,语法兼容,根据一些关键词替换或去除SQL语句的步骤包括:
[0015]在SQL语法解析上,采用MySQL解析器,并针对几种MySQL不支持的语法做特定转换,在不破坏整体语义的情况下,对关键字做近似替换,如果是不包含数据血缘的相关SQL操作,则不做替换,直接删除整句SQL;
[0016]在存储过程中,针对干扰血缘采集的临时表结构,在采集时,将针对采集的血缘关系链路转换为链表存储,后续进行遍历时,将临时表前一节点的链表指针指向临时表的后一节点,去除临时表。
[0017]本专利技术的另一方面涉及一种基于Gbase存储过程的数据血缘采集装置,包括:
[0018]去除模块,用于去除存储过程定义过程体的固定关键词;
[0019]转化模块,用于通过正则表达式捕获存储过程变量,转化为Key

Value形式;
[0020]替换模块,用于根据Key去替换变量名为变量值;
[0021]处理模块,用于处理循环结构与分支结构,并针对自定义标签做处理;
[0022]替换去除模块,用于语法兼容,根据一些关键词替换或去除SQL语句。
[0023]进一步地,去除模块中,使用正则表达式去除变量定义,在正则表达式中定义子表达式匹配变量定义的变量名和变量值,并使用捕获组捕获变量名和变量值,形成一个key

value的数据结构。
[0024]进一步地,转化模块中,使用正则表达式去除变量定义,在正则表达式中定义子表达式匹配变量定义的变量名和变量值,并使用捕获组捕获变量名和变量值,形成一个key

value的数据结构。
[0025]进一步地,替换模块中,根据key

value中的key去查找存储过程中使用变量的索引值,替换该索引值位置的字符串为value。
[0026]进一步地,替换去除模块包括:
[0027]解析单元,用于在SQL语法解析上,采用MySQL解析器,并针对几种MySQL不支持的语法做特定转换,在不破坏整体语义的情况下,对关键字做近似替换,如果是不包含数据血缘的相关SQL操作,则不做替换,直接删除整句SQL;
[0028]存储单元,用于在存储过程中,针对干扰血缘采集的临时表结构,在采集时,将针对采集的血缘关系链路转换为链表存储,后续进行遍历时,将临时表前一节点的链表指针指向临时表的后一节点,去除临时表。
[0029]本专利技术所取得的有益效果为:
[0030]本专利技术提供一种基于Gbase存储过程的数据血缘采集方法及装置,通过去除存储过程定义过程体的固定关键词;通过正则表达式捕获存储过程变量,转化为Key

Value形式;根据Key去替换变量名为变量值;处理循环结构与分支结构,并针对自定义标签做处理;语法兼容,根据一些关键词替换或去除SQL语句。本专利技术提供的基于Gbase存储过程的数据血缘采集方法及装置,针对国产数据库Gbase的存储过程进行了数据血缘采集;针对存储过程的一些通用性关键词,做了相应的转换处理,去除了与数据血缘无关的冗余信息;针对Gbase特有的一些语法做了兼容处理,使其能被开源的SQL工具解析;针对国产数据库Gbase的存储过程做了相关适配,在一些使用Gbase存储过程加工数据的厂商,可以帮助其采取自动化的形式到数据血缘,便于数仓建设工作。
附图说明
[0031]图1为本专利技术提供的基于Gbase存储过程的数据血缘采集方法一实施例的流程示意图;
[0032]图2为图1中所示的语法兼容,根据一些关键词替换或去除SQL语句的步骤一实施例的细化流程示意图;
[0033]图3为本专利技术提供的基于Gbase存储过程的数据血缘采集装置一实施例的功能框图;
[0034]图4为图3中所示的替换去除模块一实施例的功能模块示意图。
[0035]附图标号说明:
[0036]10、去除模块;20、转化模块;30、替换模块;40、处理模块;50、替换去除模块;51、解析单元;52、存储单元。
具体实施方式
[0037]为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。
[0038]如图1和图2所示,本专利技术第一实施例提出一种基于Gbase存储过程的数据血缘采集方法,包括以下步骤:
[0039]步骤S100、去除存储过程定义过程体的固定关键词。
[0040]去除定义存储过程定义过程体的固定语法,提取出存储过程执行的SQL功能语句。
[0041]步骤S200、通过正则表达式捕获存储过程变量,转化为Key

Value形式。
[0042]通过正则表达式捕获存储过程变量,转化本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Gbase存储过程的数据血缘采集方法,其特征在于,包括以下步骤:去除存储过程定义过程体的固定关键词;通过正则表达式捕获存储过程变量,转化为Key

Value形式;根据Key去替换变量名为变量值;处理循环结构与分支结构,并针对自定义标签做处理;语法兼容,根据一些关键词替换或去除SQL语句。2.如权利要求1所述的基于Gbase存储过程的数据血缘采集方法,其特征在于,所述去除存储过程定义过程体的固定关键词的步骤中,去除定义存储过程定义过程体的固定语法,提取出存储过程执行的SQL功能语句。3.如权利要求1所述的基于Gbase存储过程的数据血缘采集方法,其特征在于,所述通过正则表达式捕获存储过程变量,转化为Key

Value形式的步骤中,使用正则表达式去除变量定义,在正则表达式中定义子表达式匹配变量定义的变量名和变量值,并使用捕获组捕获变量名和变量值,形成一个key

value的数据结构。4.如权利要求1所述的基于Gbase存储过程的数据血缘采集方法,其特征在于,所述根据Key去替换变量名为变量值的步骤中,根据key

value中的key去查找存储过程中使用变量的索引值,替换该索引值位置的字符串为value。5.如权利要求1所述的基于Gbase存储过程的数据血缘采集方法,其特征在于,所述语法兼容,根据一些关键词替换或去除SQL语句的步骤包括:在SQL语法解析上,采用MySQL解析器,并针对几种MySQL不支持的语法做特定转换,在不破坏整体语义的情况下,对关键字做近似替换,如果是不包含数据血缘的相关SQL操作,则不做替换,直接删除整句SQL;在存储过程中,针对干扰血缘采集的临时表结构,在采集时,将针对采集的血缘关系链路转换为链表存储,后续进行遍历时,将临时表前一节点的链表指针指向临时表的后一节点,去除临时表。6.一种基于Gbase存储过程的数据血缘采集装置,其特征在于,包括:...

【专利技术属性】
技术研发人员:覃巍李江华袁以特唐锦涛
申请(专利权)人:湖南航天信息有限公司
类型:发明
国别省市:

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

1