CN109101651A - 一种元数据全链路分析的方法 - Google Patents

一种元数据全链路分析的方法 Download PDF

Info

Publication number
CN109101651A
CN109101651A CN201810971665.5A CN201810971665A CN109101651A CN 109101651 A CN109101651 A CN 109101651A CN 201810971665 A CN201810971665 A CN 201810971665A CN 109101651 A CN109101651 A CN 109101651A
Authority
CN
China
Prior art keywords
sentence
sql
field
full link
text
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810971665.5A
Other languages
English (en)
Inventor
肖庆超
王培元
程林
杨培强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Group Co Ltd
Original Assignee
Inspur Software Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Software Group Co Ltd filed Critical Inspur Software Group Co Ltd
Priority to CN201810971665.5A priority Critical patent/CN109101651A/zh
Publication of CN109101651A publication Critical patent/CN109101651A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明特别涉及一种元数据全链路分析的方法。该元数据全链路分析的方法,首先处理存储过程,去掉其中的无关信息;然后找出可能影响数据流向的sql,根据类型分别做预处理;最后进行数据流向查找。该元数据全链路分析的方法,通过服务接口的形式,对sql语句、存储过程语句进行分析,获取其中的表与表之间的字段全链路关系,从而实现了对数据流向全自动、彻底的分析,达到了梳理数据仓库中的数据流向的目的,极大地节省了时间和人力,为数据挖掘做好了准备。

Description

一种元数据全链路分析的方法
技术领域
本发明涉及数据流向分析技术领域,特别涉及一种元数据全链路分析的方法。
背景技术
随着大数据的兴起,数据仓库、数据流向成了非常重要的分析信息。其中,数据流向主要从sql,存储过程,ETL等工具进行分析。ETL可以根据配置信息进行快速分析,而sql和存储过程分析起来比较麻烦,目前的分析都是不彻底或者需要人工干预,不能全自动、彻底的分析其中的流向关系。针对上述问题,本发明提出了一种元数据全链路分析的方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的元数据全链路分析的方法。
本发明是通过如下技术方案实现的:
一种元数据全链路分析的方法,其特征在于,包括以下步骤:
(1)处理存储过程,去掉其中的无关信息;
(2)找出可能影响数据流向的sql,根据类型分别做预处理;
(3)进行数据流向查找。
所述步骤(1)中,首先获取存储过程文本内容,以一行为单位存储;解析文本内容,去掉文本中/**/和//注释的部分;并在行与行之间加空格合并成一行数据,然后去掉数据中包括换行在内的其他无关字符,并将连在一起的多空格合并成一个,进而得到了一个完整、规范、干净的存储过程内容。
所述步骤(2)中,解析获取的存储过程文本内容,采用分号;切割文本,得到单条sql内容;并从中筛选出可能通过表改变另一张表的sql单条语句;
对筛选出的单条sql语句进行逐一分析,如果是execute immediate开头的,则先将其中包含的sql提取出来;如果不是execute immediate开头的,则分别对可能通过表改变另一张表的sql单条语句进行处理。
可能通过表改变另一张表的sql单条语句包括insert语句,create语句,update语句和merge语句。
当可能通过表改变另一张表的sql单条语句为create语句时,解析方法为拆分出其中的insert部分和update部分,分别根据insert语句和update语句进行解析处理。
当可能通过表改变另一张表的sql单条语句为update语句时,解析方法包括以下步骤:
(A)根据文本拆分出set后面的语句,并根据逗号,拆成多条,逐条进行分析;
(B)判断是否存在select语句,如果存在,进入下一步,否则舍弃;
(C)对于存在select语句的sql获取等号=前后内容,等号=前面内容则为目标字段,根据顺序提取目标字段,采用解析insert语句方式解析select语句,获取表间关系。
当可能通过表改变另一张表的sql单条语句为create语句时,解析方法包括以下步骤:
(A)判断是否是根据select创建表,如果是,则进入下一步,否则舍弃;
(B)判断是否命名新表字段名称;
如果没有,则从后边的select语句中获取字段名称,并分析表间的关系;
如果有,则按照顺序提起字段名,分别在后面的select语句中查找分析。
当可能通过表改变另一张表的sql单条语句为insert语句时,解析方法包括以下步骤:
(A)判断是否select语句插入数据,如果是进入下一步,否则舍弃;
(B)判断insert是否是根据字段名插入数据;如果是,则从文本中按顺序提取字段名,如果不是,则获取表的全部字段,并按照顺序排序;
(C)根据上一步获取的字段顺序,从select语句中获取相应顺序的字段的来源;
(D)判断select最外层是否含有union、union all、minus或intersect,如果有union、union all或intersect,则将sql拆成两个sql语句,分别进行分析,然后将两部分的结果值合并;如果是minus,则只取前一部分进行分析;
(E)如果相应位置字段是字段而不是内嵌sql,根据文本获取到其中包含的有用的所有字段,分别查找,然后将结果集合并;
(F)如果相应位置字段是字段是内嵌sql,则递归查找。
所述步骤(E)中,查找规则包括以下步骤:
(i)首先判断是否是根据别名获取的字段名;
(ii)如果是根据别名,则找到相应的别名的表,如果表是内嵌sql,则进行递归获取;否则这张表就是来源表;
(iii)如果不是根据别名,则判断表的个数,如果是一张表,则该表是来源表,该字段是来源字段;如果多张表,则循环查询表的字段,看表是否包含这个字段,直到找到存在这个字段的表;
(iv)如果是*,则查询下面所有表字段,并根据表顺序排序,找到相应的字段及其表。
本发明的有益效果是:该元数据全链路分析的方法,通过服务接口的形式,对sql语句、存储过程语句进行分析,获取其中的表与表之间的字段全链路关系,从而实现了对数据流向全自动、彻底的分析,达到了梳理数据仓库中的数据流向的目的,极大地节省了时间和人力,为数据挖掘做好了准备。
附图说明
附图1为本发明元数据全链路分析的方法示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
该元数据全链路分析的方法,包括以下步骤:
(1)处理存储过程,去掉其中的无关信息;
(2)找出可能影响数据流向的sql,根据类型分别做预处理;
(3)进行数据流向查找。
所述步骤(1)中,首先获取存储过程文本内容,以一行为单位存储;解析文本内容,去掉文本中/**/和//注释的部分;并在行与行之间加空格合并成一行数据,然后去掉数据中包括换行在内的其他无关字符,并将连在一起的多空格合并成一个,进而得到了一个完整、规范、干净的存储过程内容。
所述步骤(2)中,解析获取的存储过程文本内容,采用分号;切割文本,得到单条sql内容;并从中筛选出可能通过表改变另一张表的sql单条语句;
对筛选出的单条sql语句进行逐一分析,如果是execute immediate开头的,则先将其中包含的sql提取出来;如果不是execute immediate开头的,则分别对可能通过表改变另一张表的sql单条语句进行处理。
可能通过表改变另一张表的sql单条语句包括insert语句,create语句,update语句和merge语句。
当可能通过表改变另一张表的sql单条语句为create语句时,解析方法为拆分出其中的insert部分和update部分,分别根据insert语句和update语句进行解析处理。
当可能通过表改变另一张表的sql单条语句为update语句时,解析方法包括以下步骤:
(A)根据文本拆分出set后面的语句,并根据逗号,拆成多条,逐条进行分析;
(B)判断是否存在select语句,如果存在,进入下一步,否则舍弃;
(C)对于存在select语句的sql获取等号=前后内容,等号=前面内容则为目标字段,根据顺序提取目标字段,采用解析insert语句方式解析select语句,获取表间关系。
当可能通过表改变另一张表的sql单条语句为create语句时,解析方法包括以下步骤:
(A)判断是否是根据select创建表,如果是,则进入下一步,否则舍弃;
(B)判断是否命名新表字段名称;
如果没有,则从后边的select语句中获取字段名称,并分析表间的关系;
如果有,则按照顺序提起字段名,分别在后面的select语句中查找分析。
当可能通过表改变另一张表的sql单条语句为insert语句时,解析方法包括以下步骤:
(A)判断是否select语句插入数据,如果是进入下一步,否则舍弃;
(B)判断insert是否是根据字段名插入数据;如果是,则从文本中按顺序提取字段名,如果不是,则获取表的全部字段,并按照顺序排序;
(C)根据上一步获取的字段顺序,从select语句中获取相应顺序的字段的来源;
(D)判断select最外层是否含有union、union all、minus或intersect,如果有union、union all或intersect,则将sql拆成两个sql语句,分别进行分析,然后将两部分的结果值合并;如果是minus,则只取前一部分进行分析;
(E)如果相应位置字段是字段而不是内嵌sql,根据文本获取到其中包含的有用的所有字段,分别查找,然后将结果集合并;
(F)如果相应位置字段是字段是内嵌sql,则递归查找。
所述步骤(E)中,查找规则包括以下步骤:
(i)首先判断是否是根据别名获取的字段名;
(ii)如果是根据别名,则找到相应的别名的表,如果表是内嵌sql,则进行递归获取;否则这张表就是来源表;
(iii)如果不是根据别名,则判断表的个数,如果是一张表,则该表是来源表,该字段是来源字段;如果多张表,则循环查询表的字段,看表是否包含这个字段,直到找到存在这个字段的表;
如果是*,则查询下面所有表字段,并根据表顺序排序,找到相应的字段及其表。

Claims (9)

1.一种元数据全链路分析的方法,其特征在于,包括以下步骤:
(1)处理存储过程,去掉其中的无关信息;
(2)找出可能影响数据流向的sql,根据类型分别做预处理;
(3)进行数据流向查找。
2.根据权利要求1所述的元数据全链路分析的方法,其特征在于:所述步骤(1)中,首先获取存储过程文本内容,以一行为单位存储;解析文本内容,去掉文本中/**/和//注释的部分;并在行与行之间加空格合并成一行数据,然后去掉数据中包括换行在内的其他无关字符,并将连在一起的多空格合并成一个,进而得到了一个完整、规范、干净的存储过程内容。
3.根据权利要求1所述的元数据全链路分析的方法,其特征在于:所述步骤(2)中,解析获取的存储过程文本内容,采用分号;切割文本,得到单条sql内容;并从中筛选出可能通过表改变另一张表的sql单条语句;对筛选出的单条sql语句进行逐一分析,如果是executeimmediate开头的,则先将其中包含的sql提取出来;如果不是execute immediate开头的,则分别对可能通过表改变另一张表的sql单条语句进行处理。
4.根据权利要求3所述的元数据全链路分析的方法,其特征在于:可能通过表改变另一张表的sql单条语句包括insert语句,create语句,update语句和merge语句。
5.根据权利要求4所述的元数据全链路分析的方法,其特征在于:当可能通过表改变另一张表的sql单条语句为create语句时,解析方法为拆分出其中的insert部分和update部分,分别根据insert语句和update语句进行解析处理。
6.根据权利要求4所述的元数据全链路分析的方法,其特征在于,当可能通过表改变另一张表的sql单条语句为update语句时,解析方法包括以下步骤:
根据文本拆分出set后面的语句,并根据逗号,拆成多条,逐条进行分析;
判断是否存在select语句,如果存在,进入下一步,否则舍弃;
对于存在select语句的sql获取等号=前后内容,等号=前面内容则为目标字段,根据顺序提取目标字段,采用解析insert语句方式解析select语句,获取表间关系。
7.根据权利要求4所述的元数据全链路分析的方法,其特征在于,当可能通过表改变另一张表的sql单条语句为create语句时,解析方法包括以下步骤:
判断是否是根据select创建表,如果是,则进入下一步,否则舍弃;
判断是否命名新表字段名称;
如果没有,则从后边的select语句中获取字段名称,并分析表间的关系;
如果有,则按照顺序提起字段名,分别在后面的select语句中查找分析。
8.根据权利要求4-7中任意一项所述的元数据全链路分析的方法,其特征在于,当可能通过表改变另一张表的sql单条语句为insert语句时,解析方法包括以下步骤:
判断是否select语句插入数据,如果是进入下一步,否则舍弃;
判断insert是否是根据字段名插入数据;如果是,则从文本中按顺序提取字段名,如果不是,则获取表的全部字段,并按照顺序排序;
根据上一步获取的字段顺序,从select语句中获取相应顺序的字段的来源;
判断select最外层是否含有union、union all、minus或intersect,如果有union、union all或intersect,则将sql拆成两个sql语句,分别进行分析,然后将两部分的结果值合并;如果是minus,则只取前一部分进行分析;
如果相应位置字段是字段而不是内嵌sql,根据文本获取到其中包含的有用的所有字段,分别查找,然后将结果集合并;
如果相应位置字段是字段是内嵌sql,则递归查找。
9.根据权利要求8所述的元数据全链路分析的方法,其特征在于,所述步骤(E)中,查找规则包括以下步骤:
首先判断是否是根据别名获取的字段名;
如果是根据别名,则找到相应的别名的表,如果表是内嵌sql,则进行递归获取;否则这张表就是来源表;
如果不是根据别名,则判断表的个数,如果是一张表,则该表是来源表,该字段是来源字段;如果多张表,则循环查询表的字段,看表是否包含这个字段,直到找到存在这个字段的表;
如果是*,则查询下面所有表字段,并根据表顺序排序,找到相应的字段及其表。
CN201810971665.5A 2018-08-24 2018-08-24 一种元数据全链路分析的方法 Pending CN109101651A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810971665.5A CN109101651A (zh) 2018-08-24 2018-08-24 一种元数据全链路分析的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810971665.5A CN109101651A (zh) 2018-08-24 2018-08-24 一种元数据全链路分析的方法

Publications (1)

Publication Number Publication Date
CN109101651A true CN109101651A (zh) 2018-12-28

Family

ID=64851290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810971665.5A Pending CN109101651A (zh) 2018-08-24 2018-08-24 一种元数据全链路分析的方法

Country Status (1)

Country Link
CN (1) CN109101651A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019252A (zh) * 2019-04-16 2019-07-16 成都四方伟业软件股份有限公司 信息处理的方法、装置及电子设备
CN111611248A (zh) * 2020-05-25 2020-09-01 山东浪潮商用系统有限公司 一种自动分析指标口径的方法、系统和装置
CN112328599A (zh) * 2020-11-12 2021-02-05 杭州数梦工场科技有限公司 基于元数据的字段血缘分析方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095345A1 (en) * 2004-10-28 2006-05-04 Microsoft Corporation System and method for an online catalog system having integrated search and browse capability
CN102289460A (zh) * 2011-07-13 2011-12-21 中国工商银行股份有限公司 一种向测试环境进行报表元数据同步的方法及系统
CN104866316A (zh) * 2015-06-02 2015-08-26 雷虹 数据中心中间件系统
CN105808413A (zh) * 2016-03-02 2016-07-27 上海新炬网络信息技术有限公司 基于业务流程可视化的sql性能监控方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095345A1 (en) * 2004-10-28 2006-05-04 Microsoft Corporation System and method for an online catalog system having integrated search and browse capability
CN102289460A (zh) * 2011-07-13 2011-12-21 中国工商银行股份有限公司 一种向测试环境进行报表元数据同步的方法及系统
CN104866316A (zh) * 2015-06-02 2015-08-26 雷虹 数据中心中间件系统
CN105808413A (zh) * 2016-03-02 2016-07-27 上海新炬网络信息技术有限公司 基于业务流程可视化的sql性能监控方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019252A (zh) * 2019-04-16 2019-07-16 成都四方伟业软件股份有限公司 信息处理的方法、装置及电子设备
CN111611248A (zh) * 2020-05-25 2020-09-01 山东浪潮商用系统有限公司 一种自动分析指标口径的方法、系统和装置
CN111611248B (zh) * 2020-05-25 2023-07-25 浪潮软件科技有限公司 一种自动分析指标口径的方法、系统和装置
CN112328599A (zh) * 2020-11-12 2021-02-05 杭州数梦工场科技有限公司 基于元数据的字段血缘分析方法及装置

Similar Documents

Publication Publication Date Title
CN109101651A (zh) 一种元数据全链路分析的方法
CN110909016B (zh) 基于数据库的重复关联检测方法、装置、设备及存储介质
CN102567530A (zh) 一种文章类型网页智能抽取系统及其方法
CN101794307A (zh) 基于互联网分词思想的车载导航poi搜索引擎
CN103440232A (zh) 一种科技论文标准化自动检测编辑方法
CN106503195A (zh) 一种基于搜索引擎的翻译词库检索方法及系统
CN103440233A (zh) 一种科技论文标准化自动检测编辑系统
CN104462268B (zh) 一种html文档信息抽取表达式的方法及系统
CN101339560B (zh) 一种搜索系列性数据的方法、装置及一种搜索引擎系统
CN106909609A (zh) 确定相似字符串的方法、文件查重的方法及系统
CN102467544A (zh) 基于空间模糊编码的信息智能搜索方法及系统
Biba et al. Boosting text classification through stemming of composite words
CN105808561A (zh) 一种从网页中提取摘要的方法和装置
US9218336B2 (en) Efficient implementation of morphology for agglutinative languages
CN102799584A (zh) 一种针对检测仪器输出数据筛选提取的处理方法
CN104636384B (zh) 一种处理文档的方法及装置
CN105426490A (zh) 一种基于树形结构的索引方法
CN104715065B (zh) 一种长查询词的搜索方法和装置
CN106557459B (zh) 一种从工单中提取新词的方法和装置
CN112183074A (zh) 一种数据增强方法、装置、设备及介质
CN110543622A (zh) 文本相似度检测方法、装置、电子设备及可读存储介质
CN106934002B (zh) 一种搜索关键字数字化解析方法和引擎
CN116662308B (zh) 基于数仓日志文件的血缘数据提取方法
KR20100086860A (ko) 통계에 의한 시소러스 데이터베이스 구축 방법
US20090228497A1 (en) Patent Reference Processor

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181228