CN111309726B - 一种有向图的生成方法、生成装置及可读存储介质 - Google Patents

一种有向图的生成方法、生成装置及可读存储介质 Download PDF

Info

Publication number
CN111309726B
CN111309726B CN202010051555.4A CN202010051555A CN111309726B CN 111309726 B CN111309726 B CN 111309726B CN 202010051555 A CN202010051555 A CN 202010051555A CN 111309726 B CN111309726 B CN 111309726B
Authority
CN
China
Prior art keywords
tables
script file
dependency
determining
database script
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.)
Active
Application number
CN202010051555.4A
Other languages
English (en)
Other versions
CN111309726A (zh
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.)
Beijing Mininglamp Software System Co ltd
Original Assignee
Beijing Mininglamp Software System 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 Beijing Mininglamp Software System Co ltd filed Critical Beijing Mininglamp Software System Co ltd
Priority to CN202010051555.4A priority Critical patent/CN111309726B/zh
Publication of CN111309726A publication Critical patent/CN111309726A/zh
Application granted granted Critical
Publication of CN111309726B publication Critical patent/CN111309726B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种有向图的生成方法、生成装置及可读存储介质,所述生成方法包括:基于获取到的数据库脚本文件以及多个预设表达式,确定与数据库脚本文件关联的多个表格;基于每一个表格匹配的多条数据,确定多个表格之间的关联关系;基于多个表格、多个表格之间的关联关系以及数据库脚本文件,生成描述数据库脚本文件指示的表格关联关系的有向图。这样,可以根据数据库脚本文件中的数据,确定与所述数据库脚本文件关联的多个表格之间的关联关系,并生成可以描述表格之间关联关系的有向图,直观的显示出表格之间的关系,在某一表格出现延迟时,通过所述有向图快速便捷地确定出可能受影响的其余表格,节省排查时间,有助于提高表格排查的效率。

Description

一种有向图的生成方法、生成装置及可读存储介质
技术领域
本申请涉及数据处理技术领域,尤其是涉及一种有向图的生成方法、生成装置及可读存储介质。
背景技术
在复杂的数据治理场景中,往往会产生大量的SQL文件,这些SQL文件的SQL记录的是多个数据库表格之间的数据处理逻辑,一般而言,在某个数据表因某种原因产生数据延迟时,需要及时的判断出该表的延迟会影响哪些SQL文件的执行以及那些数据库表的数据生成。
现阶段,在出现数据表格延迟后,在确定出现数据延迟的数据表格,可能会影响到的表格时,还是依赖于对SQL逻辑的判断,这种情况下对每一个表格进行逐一排查,排查的工作量大,排查所需的时间过长,并且有可能导致判断失误,影响工作效率和准确率。
发明内容
有鉴于此,本申请的目的在于提供一种有向图的生成方法、生成装置及可读存储介质,可以根据数据库脚本文件中的数据,确定与所述数据库脚本文件关联的多个表格之间的关联关系,并生成可以描述表格之间关联关系的有向图,直观的显示出表格之间的关系,在某一表格出现延迟时,通过所述有向图快速便捷地确定出可能受影响的其余表格,节省排查时间,有助于提高表格排查的效率。
本申请实施例提供了一种有向图的生成方法,所述生成方法包括:
基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格;
基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系;
基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图。
进一步的,所述基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格,包括:
将所述数据库脚本文件中包括的每一行数据分别与每一个预设表达式匹配;
确定与所述多个预设表达式中任一预设表达式匹配成功的至少一条目标数据;
基于所述至少一条目标数据指示的多个表格名称,确定与所述数据库脚本文件关联的多个表格。
进一步的,通过以下步骤确定所述多个表格之间的关联关系:
基于数据的构成规则解析匹配成功的每一条数据,得到解析后的多条解析数据;
基于所述多条解析数据,确定所述多个表格之间的关联关系,其中,所述关联关系包括并行关系以及依赖关系中的一种。
进一步的,当所述多个表格之间的关联关系包括依赖关系时,通过以下步骤生成有向图:
确定所述依赖关系中对应的生成表以及依赖表;
基于所述生成表、所述依赖表以及所述数据库脚本文件,生成对应的有向图,其中,在所述有向图是由生成表经由数据库脚本文件指向依赖表。
进一步的,当所述多个表格之间的关联关系包括并行关系时,通过以下步骤生成有向图:
确定所述多个表格中的多个并行生成表以及多个并行依赖表;
在所述有向图中所述多个并行生成表位于所述数据库脚本文件的同一侧,所述多个并行依赖表位于所述数据库脚本文件与所述并行生成表相对的另一侧。
本申请实施例还提供了一种有向图的生成装置,所述生成装置包括:
表格确定模块,用于基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格;
关联关系确定模块,用于基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系;
有向图生成模块,用于基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图。
进一步的,所述表格确定模块在用于基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格时,所述表格确定模块具体用于:
将所述数据库脚本文件中包括的每一行数据分别与每一个预设表达式匹配;
确定与所述多个预设表达式中任一预设表达式匹配成功的至少一条目标数据;
基于所述至少一条目标数据指示的多个表格名称,确定与所述数据库脚本文件关联的多个表格。
进一步的,所述表格确定模块用于通过以下步骤确定所述多个表格之间的关联关系:
基于数据的构成规则解析匹配成功的每一条数据,得到解析后的多条解析数据;
基于所述多条解析数据,确定所述多个表格之间的关联关系,其中,所述关联关系包括并行关系以及依赖关系中的一种。
进一步的,当所述多个表格之间的关联关系包括依赖关系时,所述表格确定模块用于通过以下步骤生成有向图:
确定所述依赖关系中对应的生成表以及依赖表;
基于所述生成表、所述依赖表以及所述数据库脚本文件,生成对应的有向图,其中,在所述有向图是由生成表经由数据库脚本文件指向依赖表。
进一步的,当所述多个表格之间的关联关系包括并行关系时,所述表格确定模块用于通过以下步骤生成有向图:
确定所述多个表格中的多个并行生成表以及多个并行依赖表;
在所述有向图中所述多个并行生成表位于所述数据库脚本文件的同一侧,所述多个并行依赖表位于所述数据库脚本文件与所述并行生成表相对的另一侧。
本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的有向图的生成方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述的有向图的生成方法的步骤。
本申请实施例提供的有向图的生成方法、生成装置及可读存储介质,基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格;基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系;基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图。
这样,通过获取到的数据库脚本文件以及预设表达式,确定与所述数据库脚本文件关联的多个表格,并进一步地通过与每一个表格相匹配的多条数据,确定各个表格之间的关联关系,通过所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图,可以在某一表格出现延迟时,通过所述有向图快速便捷地确定出可能受影响的其余表格,节省排查时间,有助于提高表格排查的效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例所提供的一种在该应用场景下的系统结构图;
图2为本申请实施例所提供的一种有向图的生成方法的流程图;
图3为本申请另一实施例提供的一种有向图的生成方法的流程图;
图4为有向图示意图;
图5为本申请实施例所提供的一种有向图的生成装置的结构示意图;
图6为本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
首先,对本申请可适用的应用场景进行介绍。本申请可应用于数据处理技术领域,可以根据数据库脚本文件中的数据,确定与所述数据库脚本文件关联的多个表格之间的关联关系,并生成可以描述表格之间关联关系的有向图,直观的显示出表格之间的关系,在某一表格出现延迟时,通过所述有向图快速便捷地确定出可能受影响的其余表格,节省排查时间,有助于提高表格排查的效率。请参阅图1,图1为本申请实施例所提供的一种在该应用场景下的系统结构图。如图1中所示,所述系统包括文件存储装置和生成装置,在所述文件存储装置中存储有多个数据库脚本文件,这些数据库脚本文件中存储有数据表之间的生成、查询逻辑等;所述生成装置获取到数据库脚本文件后,基于预设表达式确定出与获取的数据库脚本文件关联的多个表格,以及各个表格之间的关联关系,进而根据多个表格以及表格之间的关联关系,生成描述所述数据库脚本文件指示的表格关联关系的有向图。
经研究发现,现阶段,在出现数据表格延迟后,在确定出现数据延迟的数据表格,可能会影响到的表格时,还是依赖于对SQL逻辑的判断,这种情况下对每一个表格进行逐一排查,排查的工作量大,排查所需的时间过长,并且有可能导致判断失误,影响工作效率和准确率。
基于此,本申请实施例提供了一种有向图的生成方法,可以根据数据库脚本文件中的数据,确定与所述数据库脚本文件关联的多个表格之间的关联关系,并生成可以描述表格之间关联关系的有向图,直观的显示出表格之间的关系,在某一表格出现延迟时,通过所述有向图快速便捷地确定出可能受影响的其余表格,节省排查时间,有助于提高表格排查的效率。
请参阅图2,图2为本申请实施例所提供的一种有向图的生成方法的流程图。如图2中所示,本申请实施例提供的有向图的生成方法,包括:
步骤201、基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格。
该步骤中,根据获取到的数据库脚本文件中的多条结构化查询语言(StructuredQuery Language,SQL)以及多个预设表达式的匹配情况,从包含表格名称的SQL数据中获取与所述数据库脚本文件关联的多个表格。
其中,数据库脚本文件中存储的SQL语言,可以完整的创建一个或多个数据表格,所述SQL语言用于存取数据以及查询、更新和管理数据库系统。
这里,所述预设表达式可以是正则表达式,所述正则表达式是对字符串操作的一种逻辑公式,使用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。根据SQL数据与预设的正则表达式的匹配关系,确定与所述数据库脚本文件关联的多个表格。其中,所述正则表达式的模式可能不止一种,确定SQL数据与所述预设的正则表达式是否匹配,只需SQL数据与正则表达式中的任意一种模式匹配即可。
步骤202、基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系。
该步骤中,在步骤201确定出与所述数据库脚本文件关联的每一个表格后,再针对与每一个表格匹配的至少一条数据,根据数据的指示,确定多个表格之间的关联关系。
其中,所述多个表格之间的关联关系可以是多个表格之间都存在关联关系,或是部分表格之间存在关联关系,部分表格之间不存在关联关系。
这里,在所述正则表达式中规定了表格之间的关联关系的表达式的模式,以表格之间的关联关系为依赖关系为例,在预设的正则表达式中,可以规定两种模式的生成表的正则表达式以及四种模式的依赖表的正则表达式。
步骤203、基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图。
该步骤中,将所述多个表格,根据多个表格之间在所述数据库脚本文件中体现出的关联关系,通过所述数据库脚本文件将多个表格有方向地连接起来,生成可以描述所述数据库脚本文件指示的表格之间的关联关系的有向图。
这里,对于生成的有向图可以是针对于一个数据库脚本文件的有向图,也可以是通过相同表格之间的关联关系,针对于多个数据库脚本文件的有向图组图,形成表格之间的循环关联。
其中,在生成有向图时,对于所述有向图中的表格以及数据库脚本文件可以是将表格名称以及数据库脚本文件名称放在有向图中,也可以是另为每一个表格以及数据库脚本文件进行不重复的编号,显示在有向图中。
这样,在有向图的应用过程中,位于有向图中上游的表格(箭头起始处的表格)因某种原因产生数据延迟时,会影响通过数据库脚本与上游表格关联的下游表格(箭头终止处的表格),可以暂时将下游的表格进程进行延迟处理。
本申请实施例提供的有向图的生成方法,基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格;基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系;基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图。
这样,通过获取到的数据库脚本文件以及预设表达式,确定与所述数据库脚本文件关联的多个表格,并进一步地通过与每一个表格相匹配的多条数据,确定各个表格之间的关联关系,通过所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图,可以在某一表格出现延迟时,通过所述有向图快速便捷地确定出可能受影响的其余表格,节省排查时间,有助于提高表格排查的效率。
请参阅图3,图3为本申请另一实施例提供的一种有向图的生成方法的流程图。如图3中所示,本申请实施例提供的生成方法,包括:
步骤301、将所述数据库脚本文件中包括的每一行数据分别与每一个预设表达式匹配。
该步骤中,将所述数据库脚本文件中包括的每一行数据分别与每一个预设表达式进行语义匹配。
其中,由于对于同一语义的预设表达式可能存在多种表达模式,所以针对于每一条数据需要将该条数据分别与每一个预设表达式进行匹配,以此来判断每一条数据的具体要表达的语义。
步骤302、确定与所述多个预设表达式中任一预设表达式匹配成功的至少一条目标数据。
该步骤中,确定出与所述多个预设表达式中任一预设表达式匹配成功的至少一条目标数据。
这里,匹配成功是指数据的构成规则与多个预设表达式中的任一预设表达式的数据构成一致,以所述预设表达式为正则表达式,所述表格的是依赖表为例,对于生成表的SQL语言构成,正则表达式给出了两种模式:模式一:from\s+(\w+\.\w+);模式二:join\s+(\w+\.\w+);在所述数据库脚本文件中的数据a的组成形式为:from tableA,与依赖表中的正则表达式中的模式一组成规则一致,这里,确定数据A与所述多个预设表达式中任一预设表达式匹配成功,数据a为目标数据。
步骤303、基于所述至少一条目标数据指示的多个表格名称,确定与所述数据库脚本文件关联的多个表格。
该步骤中,将步骤302中确定出的至少一条目标数据就是所需确定的数据表的名称,根据所述目标数据确定出多个表格名称,以此确定与所述数据库脚本文件关联的多个表格。
这里,在每一行数据中都会在特定字段中标示出该条数据要建立哪个数据表格或是该条数据要从哪个表格中提取数据,所以会在数据的特定标识后面标示出表格名称,例如“table”就是一个有代表性的标识,在“table”后一般都紧跟着数据表名称,所以在目标数据中找到“table”等关键词后,可以获取与所述数据库脚本文件关联的多个表格。
步骤304、基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系。
步骤305、基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图。
其中,步骤304至步骤305的描述可以参照步骤202至步骤203的描述,并且能达到相同的技术效果,对此不做赘述。
进一步的,通过以下步骤确定所述多个表格之间的关联关系:基于数据的构成规则解析匹配成功的每一条数据,得到解析后的多条解析数据;基于所述多条解析数据,确定所述多个表格之间的关联关系,其中,所述关联关系包括并行关系以及依赖关系中的一种。
该步骤中,根据数据构成规则解析匹配成功的每一条数据,将数据分成多个数据段,根据解析后的多个数据段,确定多个表格之间的关联关系,并且,所述关联关系包括并行关系以及依赖关系中的一种。
其中,表格之间的关联关系的依赖关系是指两个表格之间存在生成关联,在表格的依赖关系中包括生成表以及依赖表,生成表是基于依赖表而产生的,即生成表中的数据有一部分来源于依赖表中的数据,例如,从表格A中筛选出多条日期数据,并将所述多条日期数据集合生成表格B,此时,表格A以及表格B之间就存在依赖关系,并且表格A为依赖表,表格B为生成表。
这里,对于目标数据的解析可以分为几个部分,先从目标数据中筛选出指示表格名称的表格字段,再根据至少两个表格字段之间的关系字段的指示,确定至少两个表格之间的关联关系。
其中,以两个表格之间的关联关系为依赖关系为例,先明确在预设表达式中对于依赖关系中的生成表和依赖表的多种模式,对于生成表的SQL语言构成可以有两种模式:from\s+(\w+\.\w+);join\s+(\w+\.\w+);对于依赖表的SQL语言构成可以有四种模式:insert\s+overwrite\s+table\s+(\w+\.\w+);insert\s+into\s+table\s+(\w+\.\w+);create\s+table\s+(\w+\.\w+);create\s+table\s+if\s+not\s+exist\s+(\w+\.\w+)。可以以正则表达式的每个加号为分界线,将对应的目标数据解析成多个数据段,从多个数据段中获取至少两个表格以及所述至少两个表格之间的关联关系。
示例一,目标数据X的数据构成为insert“YiBo”into tableD from tableB;将目标数据X划分成两个数据段,insert“YiBo”into tableD以及from tableB,这里,根据正则表达式的多种模式可知,表格B是生成表,表格D是依赖表,表格B以及表格D之间的关联关系为依赖关系。
示例二,目标数据X的数据构成为insert“YiBo”into tableD from tableB;目标数据Y的数据构成为insert“85”overwrite tableEfrom tableC,根据正则表达式的多种模式可知,表格E是生成表,表格D是依赖表,表格D以及表格E之间的关联关系为依赖关系,结合示例一,表格B以及表格C都是生成表,表格E以及表格D都是依赖表,这里,表格B与表格C之间不存在依赖关系,而是并行关系,同理,表格E以及表格D之间的关系也是并行关系。
进一步的,当所述多个表格之间的关联关系包括依赖关系时,通过以下步骤生成有向图:确定所述依赖关系中对应的生成表以及依赖表;基于所述生成表、所述依赖表以及所述数据库脚本文件,生成对应的有向图,其中,在所述有向图是由生成表经由数据库脚本文件指向依赖表。
该步骤中,当表格之间的关联关系包括依赖关系时,确定存在依赖关系的一组表格组中多个表格之间的依赖表以及生成表,在确定出依赖表以及生成表后,在生成有向图时,依赖表以及生成表分列于数据库脚本文件的两侧,有向图的方向由生成表经由数据库脚本文件指向依赖表。
这里,在生成有向图中在所述有向图中可以直观地将需要在图中进行显示的表格以及数据库脚本文件的名称显示在所述有向图中,也可以是将表格以及数据库脚本按顺序不重复编号显示在有向图中。
对应于上述示例一以及示例二,并参阅图4,图4为有向图示意图,由示例一以及示例二可知,表格B以及表格D是一对拥有依赖关系的表格,表格E以及表格C也是一对拥有依赖关系的表格,所以在有向图中,表格B以及表格D分列于数据库脚本文件的两侧,同理,表格E以及表格C也分列于数据库脚本文件的两侧。
这里,在有向图中每一个表格和所述数据库脚本文件的连接可以是通过有向箭头连接的,如图4所示,表格D以及表格E都是依赖表,依赖表与所述数据库脚本文件a.sql的连接都是作为有向箭头的起始端,指向所述数据库脚本文件;表格B以及表格C都是生成表,在生成表与所述数据库脚本文件的连接过程中,有向箭头是以所述数据库脚本文件a.sql作为起始点,指向生成表。
进一步的,当所述多个表格之间的关联关系包括并行关系时,通过以下步骤生成有向图:确定所述多个表格中的多个并行生成表以及多个并行依赖表;在所述有向图中所述多个并行生成表位于所述数据库脚本文件的同一侧,所述多个并行依赖表位于所述数据库脚本文件与所述并行生成表相对的另一侧。
该步骤中,当所述多个表格之间的关联关系包括并行关系时,从具有依赖关系的多组表格中确定出多个并行生成表以及多个并行依赖表,在生成所述有向图时,从第一个依赖表开始确定所有依赖表相对于所述数据库脚本文件的位置,在确定依赖表的位置后,从第一个生成表开始,将每一个生成表的位置确定在所述数据库脚本文件原理依赖表的一侧。
这里,对于位于同一侧的多个依赖表或生成表之间的相对位置,对于依赖表来说可以以每一个依赖表在所述数据库脚本文件出现的先后顺序作为确定每一个依赖表所在位置的依据;对于生成表来说,可以以所述生成表生成的先后顺序为依据,确定每一个生成表所在的位置。其中,对于同一组的生成表和依赖表的位置顺序可以是上下对应,也可以是上下不对应的。
对应于上述示例一以及示例二,并参阅图4,由示例一以及示例二可知,表格B以及表格C都是生成表,表格E以及表格D都是依赖表,表格B以及表格C之间存在并行关系,同理,表格E以及表格D之间也存在并行关系;如图4中所示,表格D以及表格E位于所述数据库脚本文件a.sql的一侧,表格B以及表格C位于所述数据库脚本文件a.sql远离所述表格D以及表格E的另一侧。
这里,在生成可以描述所述数据库脚本文件指示的表格关联关系的有向图后,对应于上述示例一以及示例二,在位于所述有向图上游的依赖表D表出现数据延迟时,对于与表格D并行的表格E是不会存在影响的,对于位于所述有向图下游的表格B以及表格C,表格B是与所述表格D存在依赖关系的,所以表格D出现延迟,是一定会对表格B产生影响,对于表格C,虽然表格C与表格D之间不存在直接的依赖关系,但是表格C位于下游也会受到上游的表格延迟的影响,所以在表格D出现延迟的时候,通过查询对应的有向图,可以直接得知表格C以及表格B产生影响,进而对表格C以及表格B做延迟处理。
本申请实施例提供的有向图的生成方法,将所述数据库脚本文件中包括的每一行数据分别与每一个预设表达式匹配;确定与所述多个预设表达式中任一预设表达式匹配成功的至少一条目标数据;基于所述至少一条目标数据指示的多个表格名称,确定与所述数据库脚本文件关联的多个表格;基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系;基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图。
这样,通过获取到的数据库脚本文件以及预设表达式,确定与所述数据库脚本文件关联的多个表格,并进一步地通过与每一个表格相匹配的多条数据,确定各个表格之间的关联关系,通过所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图,可以在某一表格出现延迟时,通过所述有向图快速便捷地确定出可能受影响的其余表格,节省排查时间,有助于提高表格排查的效率。
请参阅图5,图5为本申请实施例所提供的一种有向图的生成装置的结构示意图。如图5中所示,所述生成装置500包括:
表格确定模块510,用于基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格。
关联关系确定模块520,用于基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系。
有向图生成模块530,用于基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图。
进一步的,所述表格确定模块510在用于基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格时,所述表格确定模块510具体用于:
将所述数据库脚本文件中包括的每一行数据分别与每一个预设表达式匹配;
确定与所述多个预设表达式中任一预设表达式匹配成功的至少一条目标数据;
基于所述至少一条目标数据指示的多个表格名称,确定与所述数据库脚本文件关联的多个表格。
进一步的,所述表格确定模块510用于通过以下步骤确定所述多个表格之间的关联关系:
基于数据的构成规则解析匹配成功的每一条数据,得到解析后的多条解析数据;
基于所述多条解析数据,确定所述多个表格之间的关联关系,其中,所述关联关系包括并行关系以及依赖关系中的一种。
进一步的,当所述多个表格之间的关联关系包括依赖关系时,所述表格确定模块510用于通过以下步骤生成有向图:
确定所述依赖关系中对应的生成表以及依赖表;
基于所述生成表、所述依赖表以及所述数据库脚本文件,生成对应的有向图,其中,在所述有向图是由生成表经由数据库脚本文件指向依赖表。
进一步的,当所述多个表格之间的关联关系包括并行关系时,所述表格确定模块510用于通过以下步骤生成有向图:
确定所述多个表格中的多个并行生成表以及多个并行依赖表;
在所述有向图中所述多个并行生成表位于所述数据库脚本文件的同一侧,所述多个并行依赖表位于所述数据库脚本文件与所述并行生成表相对的另一侧。
本申请实施例提供的有向图的生成装置,基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格;基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系;基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图。
这样,通过获取到的数据库脚本文件以及预设表达式,确定与所述数据库脚本文件关联的多个表格,并进一步地通过与每一个表格相匹配的多条数据,确定各个表格之间的关联关系,通过所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图,可以在某一表格出现延迟时,通过所述有向图快速便捷地确定出可能受影响的其余表格,节省排查时间,有助于提高表格排查的效率。
请参阅图6,图6为本申请实施例所提供的一种电子设备的结构示意图。如图6中所示,所述电子设备600包括处理器610、存储器620和总线630。
所述存储器620存储有所述处理器610可执行的机器可读指令,当电子设备600运行时,所述处理器610与所述存储器620之间通过总线630通信,所述机器可读指令被所述处理器610执行时,可以执行如上述图2以及图3所示方法实施例中的有向图的生成方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时可以执行如上述图2以及图3所示方法实施例中的有向图的生成方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (4)

1.一种有向图的生成方法,其特征在于,所述生成方法包括:
基于获取到的数据库脚本文件以及多个正则表达式,确定与所述数据库脚本文件关联的多个表格,包括:将所述数据库脚本文件中包括的每一行数据分别与每一个正则表达式匹配;确定与所述多个正则表达式中任一正则表达式匹配成功的至少一条目标数据;基于所述至少一条目标数据指示的多个表格名称,确定与所述数据库脚本文件关联的多个表格;其中,每一行数据中标示有表格名称,所述正则表达式中规定了表格之间的关联关系的表达式的模式,匹配成功是指数据的构成规则与多个正则表达式中任一正则表达式的数据构成一致;
基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系;通过以下步骤确定所述多个表格之间的关联关系:基于数据的构成规则解析匹配成功的每一条数据,得到解析后的多条解析数据;基于所述多条解析数据,确定所述多个表格之间的关联关系,其中,所述关联关系包括并行关系以及依赖关系中的一种;表格之间的关联关系的依赖关系是指两个表格之间存在生成关联,在表格的依赖关系中包括生成表以及依赖表,生成表是基于依赖表而产生;
目标数据的解析先从目标数据中筛选出指示表格名称的表格字段,再根据至少两个表格字段之间的关系字段的指示,确定至少两个表格之间的关联关系,包括:基于所述正则表达式的每个加号为分界线,将对应的目标数据解析成多个数据段;根据正则表达式,确定所述数据段中各表格为生成表或依赖表;将同一目标数据中生成表对应的表格与依赖表对应的表格之间的关联关系确定为依赖关系;将两条目标数据中的生成表对应的两个表格之间的关联关系确定为并行关系;将两条目标数据中的依赖表对应的两个表格之间的关联关系确定为并行关系;
基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图;
当所述多个表格之间的关联关系包括依赖关系时,通过以下步骤生成有向图:确定所述依赖关系中对应的生成表以及依赖表;基于所述生成表、所述依赖表以及所述数据库脚本文件,生成对应的有向图,其中,所述有向图是由生成表经由数据库脚本文件指向依赖表;
当所述多个表格之间的关联关系包括并行关系时,通过以下步骤生成有向图:确定所述多个表格中的多个并行生成表以及多个并行依赖表;在所述有向图中所述多个并行生成表位于所述数据库脚本文件的同一侧,所述多个并行依赖表位于所述数据库脚本文件与所述并行生成表相对的另一侧;从第一个依赖表开始确定所有依赖表相对于所述数据库脚本文件的位置,在确定依赖表的位置后,从第一个生成表开始,将每一个生成表的位置确定在所述数据库脚本文件远离依赖表的一侧;其中,以每一个依赖表在所述数据库脚本文件出现的先后顺序作为确定每一个依赖表所在位置的依据,以所述生成表生成顺序为依据,确定每一个生成表所在的位置。
2.一种有向图的生成装置,其特征在于,所述生成装置包括:
表格确定模块,用于基于获取到的数据库脚本文件以及多个正则表达式,确定与所述数据库脚本文件关联的多个表格;
确定与所述数据库脚本文件关联的多个表格时,所述表格确定模块具体用于:将所述数据库脚本文件中包括的每一行数据分别与每一个正则表达式匹配;确定与所述多个正则表达式中任一正则表达式匹配成功的至少一条目标数据;基于所述至少一条目标数据指示的多个表格名称,确定与所述数据库脚本文件关联的多个表格;其中,每一行数据中标示有表格名称,所述正则表达式中规定了表格之间的关联关系的表达式的模式,匹配成功是指数据的构成规则与多个正则表达式中任一正则表达式的数据构成一致;
关联关系确定模块,用于基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系;
通过以下步骤确定所述多个表格之间的关联关系:基于数据的构成规则解析匹配成功的每一条数据,得到解析后的多条解析数据;基于所述多条解析数据,确定所述多个表格之间的关联关系,其中,所述关联关系包括并行关系以及依赖关系中的一种;表格之间的关联关系的依赖关系是指两个表格之间存在生成关联,在表格的依赖关系中包括生成表以及依赖表,生成表是基于依赖表而产生;
目标数据的解析先从目标数据中筛选出指示表格名称的表格字段,再根据至少两个表格字段之间的关系字段的指示,确定至少两个表格之间的关联关系;包括:基于所述正则表达式的每个加号为分界线,将对应的目标数据解析成多个数据段;根据正则表达式,确定所述数据段中各表格为生成表或依赖表;将同一目标数据中生成表对应的表格与依赖表对应的表格之间的关联关系确定为依赖关系;将两条目标数据中的生成表对应的两个表格之间的关联关系确定为并行关系;将两条目标数据中的依赖表对应的两个表格之间的关联关系确定为并行关系;
有向图生成模块,用于基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图;
当所述多个表格之间的关联关系包括依赖关系时,通过以下步骤生成有向图:确定所述依赖关系中对应的生成表以及依赖表;基于所述生成表、所述依赖表以及所述数据库脚本文件,生成对应的有向图,其中,所述有向图是由生成表经由数据库脚本文件指向依赖表;
当所述多个表格之间的关联关系包括并行关系时,通过以下步骤生成有向图:确定所述多个表格中的多个并行生成表以及多个并行依赖表;在所述有向图中所述多个并行生成表位于所述数据库脚本文件的同一侧,所述多个并行依赖表位于所述数据库脚本文件与所述并行生成表相对的另一侧;从第一个依赖表开始确定所有依赖表相对于所述数据库脚本文件的位置,在确定依赖表的位置后,从第一个生成表开始,将每一个生成表的位置确定在所述数据库脚本文件远离依赖表的一侧;其中,以每一个依赖表在所述数据库脚本文件出现的先后顺序作为确定每一个依赖表所在位置的依据,以所述生成表生成顺序为依据,确定每一个生成表所在的位置。
3.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1所述的有向图的生成方法的步骤。
4.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1所述的有向图的生成方法的步骤。
CN202010051555.4A 2020-01-17 2020-01-17 一种有向图的生成方法、生成装置及可读存储介质 Active CN111309726B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010051555.4A CN111309726B (zh) 2020-01-17 2020-01-17 一种有向图的生成方法、生成装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010051555.4A CN111309726B (zh) 2020-01-17 2020-01-17 一种有向图的生成方法、生成装置及可读存储介质

Publications (2)

Publication Number Publication Date
CN111309726A CN111309726A (zh) 2020-06-19
CN111309726B true CN111309726B (zh) 2024-03-22

Family

ID=71145118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010051555.4A Active CN111309726B (zh) 2020-01-17 2020-01-17 一种有向图的生成方法、生成装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN111309726B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813743A (zh) * 2020-06-30 2020-10-23 中国工商银行股份有限公司 批量文件关系链生成的方法及装置
CN112434042A (zh) * 2020-12-03 2021-03-02 深圳市欢太科技有限公司 数据关系的构建方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799570A (zh) * 2012-07-20 2012-11-28 中山大学 一种数据表关联分析方法
CN109582660A (zh) * 2018-12-06 2019-04-05 深圳前海微众银行股份有限公司 数据血缘分析方法、装置、设备、系统及可读存储介质
CN109977175A (zh) * 2019-03-20 2019-07-05 跬云(上海)信息科技有限公司 数据配置查询方法和装置
CN110399387A (zh) * 2019-07-26 2019-11-01 北京明略软件系统有限公司 基于表关联关系动态生成查询sql的方法及装置
CN110543356A (zh) * 2019-09-11 2019-12-06 深圳前海微众银行股份有限公司 异常任务检测方法、装置、设备及计算机存储介质
CN110647588A (zh) * 2018-06-08 2020-01-03 贵州高新翼云科技有限公司 一种对任意复杂关系数据模型自动填写所有表格及大数据自动测试的通用算法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224536A (zh) * 2014-05-29 2016-01-06 国际商业机器公司 划分数据库的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799570A (zh) * 2012-07-20 2012-11-28 中山大学 一种数据表关联分析方法
CN110647588A (zh) * 2018-06-08 2020-01-03 贵州高新翼云科技有限公司 一种对任意复杂关系数据模型自动填写所有表格及大数据自动测试的通用算法
CN109582660A (zh) * 2018-12-06 2019-04-05 深圳前海微众银行股份有限公司 数据血缘分析方法、装置、设备、系统及可读存储介质
CN109977175A (zh) * 2019-03-20 2019-07-05 跬云(上海)信息科技有限公司 数据配置查询方法和装置
CN110399387A (zh) * 2019-07-26 2019-11-01 北京明略软件系统有限公司 基于表关联关系动态生成查询sql的方法及装置
CN110543356A (zh) * 2019-09-11 2019-12-06 深圳前海微众银行股份有限公司 异常任务检测方法、装置、设备及计算机存储介质

Also Published As

Publication number Publication date
CN111309726A (zh) 2020-06-19

Similar Documents

Publication Publication Date Title
US20150178366A1 (en) Data generation for performance evaluation
US20120143893A1 (en) Pattern Matching Framework for Log Analysis
CN111309726B (zh) 一种有向图的生成方法、生成装置及可读存储介质
CN105630656A (zh) 基于日志模型的系统健壮性分析方法及装置
CN111914010A (zh) 业务处理的方法、装置、设备以及存储介质
US20170091082A1 (en) Test db data generation apparatus
AU2012203538B2 (en) Systems and methods for inter-object pattern matching
US20170124124A1 (en) System and method for analyzing complex metadata
US8429520B2 (en) Citation record extraction system and method
CN107273293B (zh) 大数据系统性能测试方法、装置及电子设备
CN115544089A (zh) 数据处理方法、装置、设备及存储介质
US9430451B1 (en) Parsing author name groups in non-standardized format
Ghosh et al. An empirical study of a hybrid code clone detection approach on java byte code
CN110058858B (zh) 一种json数据处理方法及装置
CN115658551B (zh) 代码测试方法、存储介质、电子设备和装置
CN111078671A (zh) 数据表字段的修改方法、装置、设备和介质
US11908466B2 (en) Automatically determining a descriptive identifier for a process grouping
CN110309062A (zh) 用例生成方法、装置、电子设备及存储介质
US8825631B2 (en) System and method for improved processing of an SQL query made against a relational database
US11907628B2 (en) Message signoffs
Sivakumar et al. Code Clones Detection in Websites using Hybrid Approach
CN116644078A (zh) 一种数据质量检查方法、检查装置、检查设备及存储介质
CN111309795A (zh) 业务异常定位方法、装置、电子设备和介质
CN114706878A (zh) 检查sql语句的方法及装置
CN114238326A (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