CN111782265A - 基于字段级血缘关系的软件资源系统及其建立方法 - Google Patents
基于字段级血缘关系的软件资源系统及其建立方法 Download PDFInfo
- Publication number
- CN111782265A CN111782265A CN202010597140.7A CN202010597140A CN111782265A CN 111782265 A CN111782265 A CN 111782265A CN 202010597140 A CN202010597140 A CN 202010597140A CN 111782265 A CN111782265 A CN 111782265A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- sub
- relationship
- node
- 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.)
- Granted
Links
- 239000008280 blood Substances 0.000 title claims abstract description 85
- 210000004369 blood Anatomy 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000013515 script Methods 0.000 claims abstract description 51
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 34
- 238000004458 analytical method Methods 0.000 claims abstract description 30
- 230000001502 supplementing effect Effects 0.000 claims abstract description 6
- 230000008676 import Effects 0.000 claims abstract description 4
- 230000014509 gene expression Effects 0.000 claims description 51
- 230000006870 function Effects 0.000 claims description 47
- 238000012360 testing method Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 16
- 239000000284 extract Substances 0.000 claims description 4
- 230000007613 environmental effect Effects 0.000 abstract 1
- 238000007726 management method Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000013523 data management Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于字段级血缘关系的软件资源系统及其建立方法,所述系统包含解析装置、异构环境数据导入装置和功能分类装置;解析装置用于从预定分布式文件系统中获取查询语句,将查询语句解析为抽象语法树后通过深度优先遍历算法遍历获得抽象语法树中节点数据,根据节点数据及其关联关系获得查询语句字段级的血缘关系;异构环境数据导入装置用于获取元数据管理系统中源表所对应的异构数据,根据异构数据与血缘关系之间的对应关系,将异构数据补充至血缘关系中;功能分类装置用于根据脚本类别对脚本进行分类,根据各类脚本的功能类别与补充异构数据后的血缘关系之间的逻辑关联,建立生成基于字段级血缘关系的树形结构获得软件资源系统。
Description
技术领域
本发明涉及大数据领域的结构化查询语言以及针对结构化查询语言的字段级血缘分析工具,尤指一种基于字段级血缘关系的软件资源系统及其建立方法。
背景技术
随着大数据技术的长足发展,数据无疑已经是每个企业非常重要的资产,利用数据挖掘相关价值信息已经成为经济增长的新动力。此外,随着数据的增长和使用,错误数据、垃圾数据、冗余数据等数据质量问题也日益突出,因此数据治理被确立为了长期的重点工作。
然而数据治理是一个系统性的工作,从数据产生到数据最终落地可能经历了好几个相关部门,现有的软件资源系统中,应用开发基本采用烟囱式开发,各应用之间存在了不同程度的技术或者数据壁垒,导致在数据治理过程中存在各应用之间互相不了解对方的技术和逻辑架构,为了应对这些问题,数据治理发起应用通常会开发一些小工具(比如通过常用的字符处理方式粗糙梳理出已方的数据加工的逻辑结构)方便工作人员梳理问题的逻辑脉络,最后再加之人工干预的方式来促进数据治理的进程,随着数据治理的形式越来越严峻,采用一些简单分立的小工具不仅无法连续快速推进数据治理的进度,还会因为数据治理问题的增多而无法达到精准数据治理的目的。
为此,业内亟需一种能够加快数据治理的进度和数据治理的精度的软件资源系统,予以联动上下游、业务和科技实现各部门间无障碍联动,以减少开发人员的工作量。
发明内容
本发明目的在于提供一种基于字段级血缘关系的软件资源系统及其建立方法,予以实现高效精准的大数据治理,通过软件资源系统,可以精确定位问题所属部门及维护人等信息,相关部门负责人接到问题后利用软件资源系统直接梳理问题链条而无需了解复杂的数据组织逻辑,进而快速定位问题原因,且问题修改后实现自动化测试。如此通过软件资源系统便可以实现多部门无障碍联动,快速且精准的通知问题、发现问题、解决问题、测试问题,实现高效精准数据整理。
为达上述目的,本发明所提供的基于字段级血缘关系的软件资源系统,具体包含解析装置、异构环境数据导入装置和功能分类装置;所述解析装置用于从预定分布式文件系统中获取查询语句,将查询语句解析为抽象语法树后通过深度优先遍历算法遍历获得所述抽象语法树中节点数据,根据所述节点数据及其关联关系获得查询语句字段级的血缘关系;所述异构环境数据导入装置用于获取元数据管理系统中源表所对应的异构数据,根据所述异构数据与所述血缘关系之间的对应关系,将所述异构数据补充至所述血缘关系中;所述功能分类装置用于根据脚本类别对脚本进行分类,根据各类脚本的功能类别与补充所述异构数据后的所述血缘关系之间的逻辑关联,建立生成基于字段级血缘关系的树形结构获得软件资源系统。
在上述基于字段级血缘关系的软件资源系统中,优选的,所述解析装置还包含标记模块,所述标记模块用于通过深度优先遍历算法遍历所述节点数据;当存在子查询表达式时,标记对应节点并通过递归算法遍历所述节点将所有子查询表达式按序存入单向链表。
在上述基于字段级血缘关系的软件资源系统中,优选的,所述解析装置还包含分析模块,所述分析模块用于根据所述单向链表中各子查询表达式的数据信息获得子查询表达式的血缘关系;根据所述单向链表中所有子查询表达式的血缘关系获得标记节点的查询语句字段级的血缘关系。
在上述基于字段级血缘关系的软件资源系统中,优选的,所述异构环境数据导入装置包含数据提取模块,所述数据提取模块用于根据所述元数据管理系统中源表对应的数据信息建立配置表,根据所述配置表按预设周期提取所述源表所对应的异构数据。
在上述基于字段级血缘关系的软件资源系统中,优选的,所述系统还包含测试案例装置,所述测试案例装置用于根据所述树形结构定位错误字段所对应的功能项;对所述功能项进行功能性测试。
本发明还提供一种基于字段级血缘关系的软件资源系统的建立方法,所述方法包含:从预定分布式文件系统中获取查询语句;将查询语句解析为抽象语法树后通过深度优先遍历算法遍历获得所述抽象语法树中节点数据,根据所述节点数据及其关联关系获得查询语句字段级的血缘关系;获取元数据管理系统中源表所对应的异构数据,根据所述异构数据与所述血缘关系之间的对应关系,将所述异构数据补充至所述血缘关系中;根据脚本类别对脚本进行分类,根据各类脚本的功能类别与补充所述异构数据后的所述血缘关系之间的逻辑关联,建立生成基于字段级血缘关系的树形结构获得软件资源系统。
在上述建立方法中,优选的,将查询语句解析为抽象语法树后通过深度优先遍历算法遍历获得所述抽象语法树中节点数据还包含:通过深度优先遍历算法遍历所述节点数据;当存在子查询表达式时,标记对应节点并通过递归算法遍历所述节点将所有子查询表达式按序存入单向链表。
在上述建立方法中,优选的,根据所述子查询表达式的数据类型将所述子查询表达式按序存入单向链表包含:当所述子查询表达式为单一功能的子查询时,将所述子查询表达式存入单节点链表,节点指针指向NULL,头指针指向标记节点位置;当所述子查询表达式为嵌套子查询时,按查询顺序将所述子查询表达式依次存入存入单向链表,其中所述单向链表中前一个子查询节点的指针指向后一个子查询节点,且头指针指向标记节点位置。
在上述建立方法中,优选的,根据所述节点数据及其关联关系获得查询语句字段级的血缘关系包含:根据所述单向链表中各子查询表达式的数据信息获得子查询表达式的血缘关系;根据所述单向链表中所有子查询表达式的血缘关系获得标记节点的查询语句字段级的血缘关系。
在上述建立方法中,优选的,获取元数据管理系统中源表所对应的异构数据包含:根据所述元数据管理系统中源表对应的数据信息建立配置表,根据所述配置表按预设周期提取所述源表所对应的异构数据。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本发明的有益技术效果在于:通过查询语句解析工具并结合深度优先遍历算法和递归算法梳理出基于查询语句的字段级粒度血缘关系,然后打通异构环境获取元数据信息以扩充血缘关系;基于扩充后的血缘关系系统,然后结合功能模块形成技术和业务上的最细粒度的软件资源系统,实现各部门的无障碍联动,从而减少了开发人员的工作量并提高治理效率和精度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1A为本发明一实施例所提供的基于字段级血缘关系的软件资源系统的结构示意图;
图1B为本发明一实施例所提供的基于字段级血缘关系的软件资源系统的应用结构示意图;
图2为本发明一实施例所提供的解析装置的结构示意图;
图3为本发明一实施例所提供的异构环境数据导入装置的结构示意图;
图4为本发明一实施例所提供的功能分类装置和测试案例装置的功能关系示意图;
图5为本发明一实施例所提供的基于字段级血缘关系的软件资源系统的建立方法流程示意图;
图6为本发明一实施例所提供的电子设备的结构示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
请参考图1A所示,本发明所提供的一种基于字段级血缘关系的软件资源系统,具体包含解析装置1、异构环境数据导入装置2和功能分类装置3;所述解析装置1用于从预定分布式文件系统中获取查询语句,将查询语句解析为抽象语法树后通过深度优先遍历算法遍历获得所述抽象语法树中节点数据,根据所述节点数据及其关联关系获得查询语句字段级的血缘关系;所述异构环境数据导入装置2用于获取元数据管理系统中源表所对应的异构数据,根据所述异构数据与所述血缘关系之间的对应关系,将所述异构数据补充至所述血缘关系中;所述功能分类装置3用于根据脚本类别对脚本进行分类,根据各类脚本的功能类别与补充所述异构数据后的所述血缘关系之间的逻辑关联,建立生成基于字段级血缘关系的树形结构获得软件资源系统。其中,所述查询语句可为sql语句。以此,本发明所提供的基于字段级血缘关系的软件资源系统主要通过语法解析工具,如sql解析工具将sql解析成抽象语法树,通过梳理抽象语法树中节点关系实现sql语句的血缘关系,然后引入异构环境的元数据信息扩充血缘关系系统,来构建业务粒度最细的应用软件资源系统,同时,为提高异构数据获取的效率,还可引入配置表的方式,后续实施例将对其详细说明,在此就不再一一详述。本发明所提供的上述实施例以扩充后的基于sql的血缘关系系统为基础,再联系资源中脚本和功能模块,最终形成软件资源系统。通过软件资源系统实现上下游最大限度无障碍联动,并最终实现快速且精确完成对问题自动定位和测试。
请参考图1B所示,在上述实施例中,解析装置1从分布式文件系统中获取sql语句,将sql语句解析成抽象语法树,然后通过深度优先遍历算法遍历抽象语法树中的节点,从而获取整段sql语句字段级血缘关系。异构环境数据导入装置2实现打通异构环境,从元数据管理系统或其他异构环境获取异构数据充实血缘关系。功能分类装置3首先提取出功能相同的脚本(如校验、聚合等功能),然后对同功能的脚本进行更细一级的分类(如校验功能脚本可以分为总分检验,关联校验等)。同时,通过系统已有的作业调度策略将脚本以作业的方式进行依赖配置。整个软件资源系统形成的过程是,首先解析装置1解析sql语句获取字段级血缘关系并通过异构数据导入装置2获取异构数据以充实血缘关系,然后通过sql配置表以及脚本和sql的映射关系表,将功能分类装置3获取的功能模块和字段级血缘关系系统建立连接形成树形结构,最后配合测试案例装置4构成了完整的从字段-〉表-〉sql语句-〉脚本-〉功能-〉测试案例系统的全链条软件资源系统。基于该系统可以对逻辑变动或者上游数据变动立即进行问题定位,找到发生变动的相关链条(例如图1B中字段2发生变动,就会从字段2开始通过遍历的方式往后追溯一直到功能模块,如图中粗链条),自动调起测试案例装置的相关功能模进行相关块测试。
在本发明一实施例中,所述解析装置可包含标记模块,所述标记模块用于通过深度优先遍历算法遍历所述节点数据;当存在子查询表达式时,标记对应节点并通过递归算法遍历所述节点将所有子查询表达式按序存入单向链表。进一步的,所述解析装置还包含分析模块,所述分析模块用于根据所述单向链表中各子查询表达式的数据信息获得子查询表达式的血缘关系;根据所述单向链表中所有子查询表达式的血缘关系获得标记节点的查询语句字段级的血缘关系。其具体处理过程可参考图2所示,解析装置首先借助词法分析算法和语法分析算法将sql语句解析为计算机容易处理的的抽象语法树(AST)。基于抽象语法树,可以通过深度优先遍历算法对待分析的sql的抽象语法树进行解析,从而梳理出sql语句的字段级血缘关系。在计算机中,语法树中的每个节点按照类型有对应的属性进行标识,树中节点之间的关系就是sql语句中字段与表,以及表与表之间的关系。
例如,一段sql语句:select id,name,sex from users where id>1;
sql语句中每个独立单词和表达式就是一个节点,通过词法分析和语法分析算法将孤立的节点组合成有上下文关系的抽象语法树。
以上只是最基本的sql语句,在实际开发过程中,根据业务的实际情况sql语句都是非常复杂的,往往sql语句中包含了各种形式的复杂子查询,从而影响了解析的精度。子查询按照复杂程度,主要分为简单子查询(如select子查询,join子查询等)和嵌套子查询(即子查询自身又内嵌了众多子查询)。针对不同类型的子查询问题,通过特殊处理方式,提高了sql解析的精度。不管是简单子查询还是复杂的子查询,统一采用链表技术进行单独存储分析,即对于简单的子查询采用单节点链表,复杂子查询采用多节点链表。传统字符或者正则表达式的方式对于简单的逻辑能勉强梳理清楚,但遇到复杂的逻辑(对于sql语句主要是子查询或者嵌套子查询)时字符处理难度大,使梳理精度大大降低;本发明在此采用链表不仅可以将子查询分离进行单独逐个精确分析,同时,在语法树梳理的技术上将子查询存入链表进行有序的单独梳理,最后又通过链表指针将相关子查询串接起来作为一个整体,这个处理过程逻辑清晰并且提高了精度。
整个解析装置的核心是通过递归算法对待分析sql的抽象语法树进行多次深度优先遍历,最终梳理出sql语句字段级血缘关系,其解析过程如下:
1)获取分布式文件系统中的sql脚本,采用sql解析器解析成抽象语法树。
2)利用深度优先遍历算法对抽象语法树进行遍历,获取节点数据(如字段信息、源表信息、目标表信息等)及其关联关系。
3)在遍历过程中,采用递归算法进行多次遍历判断节点是否存在子查询表达式(如subselect子查询、join子查询等),如果存在则标记该节点,并将获取到的子查询按顺序存入单向链表中,如果是简单子查询,则存入单节点链表,其节点指针指向NULL,头指针指向树的标记节点位置;如果是复杂的嵌套子查询,则按查询顺序依次存入链表中,其前一个子查询节点的指针指向后一个子查询节点,且头指针指向树的标记节点位置,依次类推。
4)然后从链表的最后一个数据节点开始,往前依次独立分析出每个子查询的数据信息,且前一个子查询的分析结果可以作为后一个子查询的部分数据基础,最后梳理出整个标记节点的子查询表达式的血缘关系。
5)如此一直遍历到穷尽,分析出整个sql的血缘关系。
例如通过sql解析装置可以将如下一段sql梳理出表1所示的血缘关系:
INSERT INTO KHXXB
SELECT A.CINO,B.NAME,C.AGE
FROM(SELECT CINO FROM TB1212)A
LEFT JOIN TB1717 B
ON A.CINO=B.CINO;
表1
目标表 | 字段 | 源表 | 关联位置 |
KHXXB | cino | TB1212 | left左表 |
KHXXB | name | TB1717 | left右表 |
KHXXB | age | TB1717 | left右表 |
在本发明一实施例中,所述异构环境数据导入装置包含数据提取模块,所述数据提取模块用于根据所述元数据管理系统中源表对应的数据信息建立配置表,根据所述配置表按预设周期提取所述源表所对应的异构数据。具体可参考图3所示,为了实现在数据治理过程中上下游部门真正的无障碍联动,除了基于sql的血缘关系是不够的,还需要引入其他环境的数据充实到sql血缘关系系统中,可以根据需要引入元数据管理系统中的源表所属应用部门名称、源表字段元数据信息、源表所属维护人(如字段长度,字典值等)等信息。如果说基于sql的血缘关系的形成可以让上下游部门跳过复杂的sql逻辑而直接看到sql对象之间关系,从而在技术角度达到了最细粒度的血缘关系,那么导入元数据管理系统中的元数据数据信息之后,则可以通过sql对象精准定位所属部门、维护人员等信息,从而在业务角度达到了最细粒度的血缘关系系统。由于所属部门、所属维护人、字段等元数据信息的更新变动速度相对比较慢,所以为了提高从元数据管理信息系统获取数据的效率,采用了配置表的方式。通过关联逻辑,定期自动化的从元数据管理系统获取相关信息并存储于配置表中,这样每次刷新sql的血缘关系的时候可以直接快速的从配置表中获取所需的元数据信息,此外采用配置表的方式也可以根据需要整合其他的其他异构环境的信息,这样既提高了获取效率又方便了后期的系统维护。
例如同样一句sql,结合异构环境数据导入装置后,可以梳理如下表2的血缘关系。
表2
再请参考图1B所示,在本发明一实施例中,所述系统还包含测试案例装置4,所述测试案例装置4用于根据所述树形结构定位错误字段所对应的功能项;对所述功能项进行功能性测试。现请参考图4所示,结合功能分类装置3和测试案例装置4对该实施例做整体说明。功能分类装置3的核心是将脚本按功能进行分类,可以通过脚本文件名识别脚本属性,然后将功能相同的脚本进行归类,例如图1B,脚本1和脚本3归类为功能1;脚本2和脚本4归类为功能2。此外任何脚本都不是孤立存在的,需要通过调度策略将脚本以作业的方式配置依赖关系(如图1B脚本2依赖脚本1,脚本3又依赖脚本2,常用的有automation调度策略),如果脚本1对应的某段sql发生了变动(比如逻辑修改了),从功能角度看,脚本直接对应功能1,功能1又直接对应测试案例1。然而脚本1、脚本2、脚本3存在依赖关系,脚本1的变动会影响其他两个脚本,所以最终会将三个脚本对应的两个功能全部调起。
请参考图5所示,本发明还提供一种基于字段级血缘关系的软件资源系统的建立方法,所述方法包含:
S501:从预定分布式文件系统中获取查询语句;
S502:将查询语句解析为抽象语法树后通过深度优先遍历算法遍历获得所述抽象语法树中节点数据,根据所述节点数据及其关联关系获得查询语句字段级的血缘关系;
S503:获取元数据管理系统中源表所对应的异构数据,根据所述异构数据与所述血缘关系之间的对应关系,将所述异构数据补充至所述血缘关系中;
S504:根据脚本类别对脚本进行分类,根据各类脚本的功能类别与补充所述异构数据后的所述血缘关系之间的逻辑关联,建立生成基于字段级血缘关系的树形结构获得软件资源系统。
在上述实施例中,将查询语句解析为抽象语法树后通过深度优先遍历算法遍历获得所述抽象语法树中节点数据还包含:通过深度优先遍历算法遍历所述节点数据;当存在子查询表达式时,标记对应节点并通过递归算法遍历所述节点将所有子查询表达式按序存入单向链表。其中,根据所述子查询表达式的数据类型将所述子查询表达式按序存入单向链表包含:当所述子查询表达式为单一功能的子查询时,将所述子查询表达式存入单节点链表,节点指针指向NULL,头指针指向标记节点位置;当所述子查询表达式为嵌套子查询时,按查询顺序将所述子查询表达式依次存入存入单向链表,其中所述单向链表中前一个子查询节点的指针指向后一个子查询节点,且头指针指向标记节点位置;实际工作中的具体实现方法,可参考上述图2的实施例说明。
在本发明一实施例中,根据所述节点数据及其关联关系获得查询语句字段级的血缘关系包含:根据所述单向链表中各子查询表达式的数据信息获得子查询表达式的血缘关系;根据所述单向链表中所有子查询表达式的血缘关系获得标记节点的查询语句字段级的血缘关系。进一步的,获取元数据管理系统中源表所对应的异构数据包含:根据所述元数据管理系统中源表对应的数据信息建立配置表,根据所述配置表按预设周期提取所述源表所对应的异构数据。在实际工作中该实施例的具体实现步骤已在前述实例中详细说明,在此就不再一一详述。
本发明通过sql解析工具并结合深度优先遍历算法和递归算法梳理出基于sql的字段级粒度血缘关系,然后打通异构环境获取元数据信息以扩充血缘关系;基于扩充后的血缘关系系统,然后结合功能模块和测试案例模块形成技术和业务上的最细粒度的软件资源系统,实现各部门的无障碍联动,从而减少了开发人员的工作量并提高治理效率和精度;在数据治理过程中可以通过软件资源系统通知问题、发现问题、解决问题、测试问题,实现高效精准数据整理;具体的,通过链表技术解决了复杂子查询梳理困难的问题,使血缘关系系统更加精准;通过打通异构环境实现异构数据的获取,从而扩充了血缘关系系统,使血缘关系系统不仅在技术角度实现了最细粒度,同时在业务角度也实现了最细粒度(定位到具体的业务人员);通过自动化配置表的方式,解决了异构数据获取效率低的问题;结合功能模块和测试案例模块实现了问题的自动定位和测试。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
如图6所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图6中所示的所有部件;此外,电子设备600还可以包括图6中没有示出的部件,可以参考现有技术。
如图6所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种基于字段级血缘关系的软件资源系统,其特征在于,所述系统包含解析装置、异构环境数据导入装置和功能分类装置;
所述解析装置用于从预定分布式文件系统中获取查询语句,将查询语句解析为抽象语法树后通过深度优先遍历算法遍历获得所述抽象语法树中节点数据,根据所述节点数据及其关联关系获得查询语句字段级的血缘关系;
所述异构环境数据导入装置用于获取元数据管理系统中源表所对应的异构数据,根据所述异构数据与所述血缘关系之间的对应关系,将所述异构数据补充至所述血缘关系中;
所述功能分类装置用于根据脚本类别对脚本进行分类,根据各类脚本的功能类别与补充所述异构数据后的所述血缘关系之间的逻辑关联,建立生成基于字段级血缘关系的树形结构获得软件资源系统。
2.根据权利要求1所述的基于字段级血缘关系的软件资源系统,其特征在于,所述解析装置还包含标记模块,所述标记模块用于通过深度优先遍历算法遍历所述节点数据;当存在子查询表达式时,标记对应节点并通过递归算法遍历所述节点将所有子查询表达式按序存入单向链表。
3.根据权利要求2所述的基于字段级血缘关系的软件资源系统,其特征在于,所述解析装置还包含分析模块,所述分析模块用于根据所述单向链表中各子查询表达式的数据信息获得子查询表达式的血缘关系;根据所述单向链表中所有子查询表达式的血缘关系获得标记节点的查询语句字段级的血缘关系。
4.根据权利要求1所述的基于字段级血缘关系的软件资源系统,其特征在于,所述异构环境数据导入装置包含数据提取模块,所述数据提取模块用于根据所述元数据管理系统中源表对应的数据信息建立配置表,根据所述配置表按预设周期提取所述源表所对应的异构数据。
5.根据权利要求1所述的基于字段级血缘关系的软件资源系统,其特征在于,所述系统还包含测试案例装置,所述测试案例装置用于根据所述树形结构定位错误字段所对应的功能项;对所述功能项进行功能性测试。
6.一种基于字段级血缘关系的软件资源系统的建立方法,其特征在于,所述方法包含:
从预定分布式文件系统中获取查询语句;
将查询语句解析为抽象语法树后通过深度优先遍历算法遍历获得所述抽象语法树中节点数据,根据所述节点数据及其关联关系获得查询语句字段级的血缘关系;
获取元数据管理系统中源表所对应的异构数据,根据所述异构数据与所述血缘关系之间的对应关系,将所述异构数据补充至所述血缘关系中;
根据脚本类别对脚本进行分类,根据各类脚本的功能类别与补充所述异构数据后的所述血缘关系之间的逻辑关联,建立生成基于字段级血缘关系的树形结构获得软件资源系统。
7.根据权利要求6所述的建立方法,其特征在于,将查询语句解析为抽象语法树后通过深度优先遍历算法遍历获得所述抽象语法树中节点数据还包含:通过深度优先遍历算法遍历所述节点数据;当存在子查询表达式时,标记对应节点并通过递归算法遍历所述节点将所有子查询表达式按序存入单向链表。
8.根据权利要求7所述的建立方法,其特征在于,根据所述子查询表达式的数据类型将所述子查询表达式按序存入单向链表包含:
当所述子查询表达式为单一功能的子查询时,将所述子查询表达式存入单节点链表,节点指针指向NULL,头指针指向标记节点位置;
当所述子查询表达式为嵌套子查询时,按查询顺序将所述子查询表达式依次存入存入单向链表,其中所述单向链表中前一个子查询节点的指针指向后一个子查询节点,且头指针指向标记节点位置。
9.根据权利要求8所述的建立方法,其特征在于,根据所述节点数据及其关联关系获得查询语句字段级的血缘关系包含:
根据所述单向链表中各子查询表达式的数据信息获得子查询表达式的血缘关系;
根据所述单向链表中所有子查询表达式的血缘关系获得标记节点的查询语句字段级的血缘关系。
10.根据权利要求7所述的建立方法,其特征在于,获取元数据管理系统中源表所对应的异构数据包含:根据所述元数据管理系统中源表对应的数据信息建立配置表,根据所述配置表按预设周期提取所述源表所对应的异构数据。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求6至10任一所述方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求6至10任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010597140.7A CN111782265B (zh) | 2020-06-28 | 2020-06-28 | 基于字段级血缘关系的软件资源系统及其建立方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010597140.7A CN111782265B (zh) | 2020-06-28 | 2020-06-28 | 基于字段级血缘关系的软件资源系统及其建立方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782265A true CN111782265A (zh) | 2020-10-16 |
CN111782265B CN111782265B (zh) | 2024-02-02 |
Family
ID=72760660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010597140.7A Active CN111782265B (zh) | 2020-06-28 | 2020-06-28 | 基于字段级血缘关系的软件资源系统及其建立方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782265B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711591A (zh) * | 2020-12-31 | 2021-04-27 | 天云融创数据科技(北京)有限公司 | 基于知识图谱的字段级的数据血缘确定方法及装置 |
CN112860662A (zh) * | 2021-01-22 | 2021-05-28 | 平安科技(深圳)有限公司 | 数据血缘关系建立方法、装置、计算机设备及存储介质 |
CN112860585A (zh) * | 2021-03-31 | 2021-05-28 | 中国工商银行股份有限公司 | 一种测试脚本断言生成方法及装置 |
CN112925564A (zh) * | 2021-03-30 | 2021-06-08 | 中国工商银行股份有限公司 | 一种源代码的冗余导入类清理方法及装置 |
CN113220800A (zh) * | 2021-05-17 | 2021-08-06 | 上海合合信息科技股份有限公司 | 基于antlr的数据字段血缘分析方法及装置 |
CN113486008A (zh) * | 2021-06-30 | 2021-10-08 | 平安信托有限责任公司 | 数据血缘分析方法、装置、设备及存储介质 |
CN114116856A (zh) * | 2022-01-25 | 2022-03-01 | 中电云数智科技有限公司 | 基于数据治理全链路的字段级血缘关系分析方法 |
CN115062049A (zh) * | 2022-07-28 | 2022-09-16 | 浙江城云数字科技有限公司 | 一种数据血缘分析方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060074873A1 (en) * | 2004-09-30 | 2006-04-06 | International Business Machines Corporation | Extending data access and analysis capabilities via abstract, polymorphic functions |
US20060235836A1 (en) * | 2005-04-14 | 2006-10-19 | International Business Machines Corporation | Query conditions on related model entities |
CN107545030A (zh) * | 2017-07-17 | 2018-01-05 | 阿里巴巴集团控股有限公司 | 数据血缘关系的处理方法、装置及设备 |
CN107644073A (zh) * | 2017-09-18 | 2018-01-30 | 广东中标数据科技股份有限公司 | 一种基于深度优先遍历的字段血缘分析方法、系统及装置 |
CN109325078A (zh) * | 2018-09-18 | 2019-02-12 | 拉扎斯网络科技(上海)有限公司 | 基于结构数据的数据血缘确定方法及装置 |
CN110232056A (zh) * | 2019-05-21 | 2019-09-13 | 苏宁云计算有限公司 | 一种结构化查询语言的血缘解析方法及其工具 |
CN110555032A (zh) * | 2019-09-09 | 2019-12-10 | 北京搜狐新媒体信息技术有限公司 | 一种基于元数据的数据血缘关系分析方法及系统 |
CN110674229A (zh) * | 2019-09-24 | 2020-01-10 | 山东爱城市网信息技术有限公司 | 一种基于ast的关系型数据库sql表关系分析及展现方法 |
CN110908997A (zh) * | 2019-10-09 | 2020-03-24 | 支付宝(杭州)信息技术有限公司 | 数据血缘构建方法、装置、服务器及可读存储介质 |
-
2020
- 2020-06-28 CN CN202010597140.7A patent/CN111782265B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060074873A1 (en) * | 2004-09-30 | 2006-04-06 | International Business Machines Corporation | Extending data access and analysis capabilities via abstract, polymorphic functions |
US20060235836A1 (en) * | 2005-04-14 | 2006-10-19 | International Business Machines Corporation | Query conditions on related model entities |
CN107545030A (zh) * | 2017-07-17 | 2018-01-05 | 阿里巴巴集团控股有限公司 | 数据血缘关系的处理方法、装置及设备 |
CN107644073A (zh) * | 2017-09-18 | 2018-01-30 | 广东中标数据科技股份有限公司 | 一种基于深度优先遍历的字段血缘分析方法、系统及装置 |
CN109325078A (zh) * | 2018-09-18 | 2019-02-12 | 拉扎斯网络科技(上海)有限公司 | 基于结构数据的数据血缘确定方法及装置 |
CN110232056A (zh) * | 2019-05-21 | 2019-09-13 | 苏宁云计算有限公司 | 一种结构化查询语言的血缘解析方法及其工具 |
CN110555032A (zh) * | 2019-09-09 | 2019-12-10 | 北京搜狐新媒体信息技术有限公司 | 一种基于元数据的数据血缘关系分析方法及系统 |
CN110674229A (zh) * | 2019-09-24 | 2020-01-10 | 山东爱城市网信息技术有限公司 | 一种基于ast的关系型数据库sql表关系分析及展现方法 |
CN110908997A (zh) * | 2019-10-09 | 2020-03-24 | 支付宝(杭州)信息技术有限公司 | 数据血缘构建方法、装置、服务器及可读存储介质 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711591A (zh) * | 2020-12-31 | 2021-04-27 | 天云融创数据科技(北京)有限公司 | 基于知识图谱的字段级的数据血缘确定方法及装置 |
CN112860662A (zh) * | 2021-01-22 | 2021-05-28 | 平安科技(深圳)有限公司 | 数据血缘关系建立方法、装置、计算机设备及存储介质 |
CN112860662B (zh) * | 2021-01-22 | 2023-10-17 | 平安科技(深圳)有限公司 | 自动化生产数据血缘关系建立方法、装置、计算机设备及存储介质 |
CN112925564A (zh) * | 2021-03-30 | 2021-06-08 | 中国工商银行股份有限公司 | 一种源代码的冗余导入类清理方法及装置 |
CN112925564B (zh) * | 2021-03-30 | 2024-03-05 | 中国工商银行股份有限公司 | 一种源代码的冗余导入类清理方法及装置 |
CN112860585A (zh) * | 2021-03-31 | 2021-05-28 | 中国工商银行股份有限公司 | 一种测试脚本断言生成方法及装置 |
CN112860585B (zh) * | 2021-03-31 | 2024-01-26 | 中国工商银行股份有限公司 | 一种测试脚本断言生成方法及装置 |
CN113220800A (zh) * | 2021-05-17 | 2021-08-06 | 上海合合信息科技股份有限公司 | 基于antlr的数据字段血缘分析方法及装置 |
CN113220800B (zh) * | 2021-05-17 | 2023-11-10 | 上海合合信息科技股份有限公司 | 基于antlr的数据字段血缘分析方法及装置 |
CN113486008A (zh) * | 2021-06-30 | 2021-10-08 | 平安信托有限责任公司 | 数据血缘分析方法、装置、设备及存储介质 |
CN114116856A (zh) * | 2022-01-25 | 2022-03-01 | 中电云数智科技有限公司 | 基于数据治理全链路的字段级血缘关系分析方法 |
CN115062049A (zh) * | 2022-07-28 | 2022-09-16 | 浙江城云数字科技有限公司 | 一种数据血缘分析方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111782265B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782265B (zh) | 基于字段级血缘关系的软件资源系统及其建立方法 | |
US9858270B2 (en) | Converting data into natural language form | |
US8572575B2 (en) | Debugging a map reduce application on a cluster | |
CN107644073A (zh) | 一种基于深度优先遍历的字段血缘分析方法、系统及装置 | |
US10747958B2 (en) | Dependency graph based natural language processing | |
Vyawahare et al. | A hybrid database approach using graph and relational database | |
CN111651451A (zh) | 一种场景驱动的单体系统微服务拆分方法 | |
US20120158807A1 (en) | Matching data based on numeric difference | |
US20200356726A1 (en) | Dependency graph based natural language processing | |
US20140019941A1 (en) | Data selection | |
US11481202B2 (en) | Transformation templates to automate aspects of computer programming | |
CN108984393A (zh) | 一种单元测试代码自动生成方法及装置 | |
WO2021253641A1 (zh) | 着色语言翻译方法 | |
US20150193213A1 (en) | Computer Implemented System and Method for Checking a Program Code | |
US20230096325A1 (en) | Deep parameter learning for code synthesis | |
CN110764760B (zh) | 用于绘制程序流程图的方法、装置、计算机系统和介质 | |
CN113806429A (zh) | 基于大数据流处理框架的画布式日志分析方法 | |
US10872085B2 (en) | Recording lineage in query optimization | |
CN113157978B (zh) | 数据的标签建立方法和装置 | |
CN116628066B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN113821554A (zh) | 一种实现异构数据库数据采集的方法 | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN110008448B (zh) | 将SQL代码自动转换为Java代码的方法和装置 | |
CN106843822B (zh) | 一种执行代码生成方法及设备 | |
CN110580170A (zh) | 软件性能风险的识别方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |