CN111309726A - 一种有向图的生成方法、生成装置及可读存储介质 - Google Patents
一种有向图的生成方法、生成装置及可读存储介质 Download PDFInfo
- Publication number
- CN111309726A CN111309726A CN202010051555.4A CN202010051555A CN111309726A CN 111309726 A CN111309726 A CN 111309726A CN 202010051555 A CN202010051555 A CN 202010051555A CN 111309726 A CN111309726 A CN 111309726A
- Authority
- CN
- China
- Prior art keywords
- tables
- script file
- database script
- directed graph
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000013515 script Methods 0.000 claims abstract description 157
- 230000014509 gene expression Effects 0.000 claims abstract description 67
- 230000001419 dependent effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 230000003111 delayed effect Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 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
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases 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 (10)
1.一种有向图的生成方法,其特征在于,所述生成方法包括:
基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格;
基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系;
基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图。
2.根据权利要求1所述的生成方法,其特征在于,所述基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格,包括:
将所述数据库脚本文件中包括的每一行数据分别与每一个预设表达式匹配;
确定与所述多个预设表达式中任一预设表达式匹配成功的至少一条目标数据;
基于所述至少一条目标数据指示的多个表格名称,确定与所述数据库脚本文件关联的多个表格。
3.根据权利要求2所述的生成方法,其特征在于,通过以下步骤确定所述多个表格之间的关联关系:
基于数据的构成规则解析匹配成功的每一条数据,得到解析后的多条解析数据;
基于所述多条解析数据,确定所述多个表格之间的关联关系,其中,所述关联关系包括并行关系以及依赖关系中的一种。
4.根据权利要求3所述的生成方法,其特征在于,当所述多个表格之间的关联关系包括依赖关系时,通过以下步骤生成有向图:
确定所述依赖关系中对应的生成表以及依赖表;
基于所述生成表、所述依赖表以及所述数据库脚本文件,生成对应的有向图,其中,在所述有向图是由生成表经由数据库脚本文件指向依赖表。
5.根据权利要求4所述的生成方法,其特征在于,当所述多个表格之间的关联关系包括并行关系时,通过以下步骤生成有向图:
确定所述多个表格中的多个并行生成表以及多个并行依赖表;
在所述有向图中所述多个并行生成表位于所述数据库脚本文件的同一侧,所述多个并行依赖表位于所述数据库脚本文件与所述并行生成表相对的另一侧。
6.一种有向图的生成装置,其特征在于,所述生成装置包括:
表格确定模块,用于基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格;
关联关系确定模块,用于基于所述数据库脚本文件中与每一个表格匹配的多条数据,确定所述多个表格之间的关联关系;
有向图生成模块,用于基于所述多个表格、所述多个表格之间的关联关系以及所述数据库脚本文件,生成描述所述数据库脚本文件指示的表格关联关系的有向图。
7.根据权利要求6所述的生成装置,其特征在于,所述表格确定模块在用于基于获取到的数据库脚本文件以及多个预设表达式,确定与所述数据库脚本文件关联的多个表格时,所述表格确定模块具体用于:
将所述数据库脚本文件中包括的每一行数据分别与每一个预设表达式匹配;
确定与所述多个预设表达式中任一预设表达式匹配成功的至少一条目标数据;
基于所述至少一条目标数据指示的多个表格名称,确定与所述数据库脚本文件关联的多个表格。
8.根据权利要求7所述的生成装置,其特征在于,所述表格确定模块用于通过以下步骤确定所述多个表格之间的关联关系:
基于数据的构成规则解析匹配成功的每一条数据,得到解析后的多条解析数据;
基于所述多条解析数据,确定所述多个表格之间的关联关系,其中,所述关联关系包括并行关系以及依赖关系中的一种。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至5中任一项所述的有向图的生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至5中任一项所述的有向图的生成方法的步骤。
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 true CN111309726A (zh) | 2020-06-19 |
CN111309726B 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) |
Cited By (2)
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 (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799570A (zh) * | 2012-07-20 | 2012-11-28 | 中山大学 | 一种数据表关联分析方法 |
US20150347936A1 (en) * | 2014-05-29 | 2015-12-03 | International Business Machines Corporation | Database partition |
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 | 贵州高新翼云科技有限公司 | 一种对任意复杂关系数据模型自动填写所有表格及大数据自动测试的通用算法 |
-
2020
- 2020-01-17 CN CN202010051555.4A patent/CN111309726B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799570A (zh) * | 2012-07-20 | 2012-11-28 | 中山大学 | 一种数据表关联分析方法 |
US20150347936A1 (en) * | 2014-05-29 | 2015-12-03 | International Business Machines Corporation | Database partition |
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 | 深圳前海微众银行股份有限公司 | 异常任务检测方法、装置、设备及计算机存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813743A (zh) * | 2020-06-30 | 2020-10-23 | 中国工商银行股份有限公司 | 批量文件关系链生成的方法及装置 |
CN112434042A (zh) * | 2020-12-03 | 2021-03-02 | 深圳市欢太科技有限公司 | 数据关系的构建方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111309726B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522816B (zh) | 基于数据库引擎的数据处理方法、装置、终端及介质 | |
US9779141B2 (en) | Query techniques and ranking results for knowledge-based matching | |
US9400733B2 (en) | Pattern matching framework for log analysis | |
KR20190060725A (ko) | Sql 검토 방법, 장치, 서버 및 저장 매체 | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
CN109359026A (zh) | 日志上报方法、装置、电子设备及计算机可读存储介质 | |
WO2015009542A1 (en) | Semantics-oriented analysis of log message content | |
JP6090850B2 (ja) | ソースプログラム解析システム、ソースプログラム解析方法およびプログラム | |
US8793120B1 (en) | Behavior-driven multilingual stemming | |
US20140006010A1 (en) | Parsing rules for data | |
CN111950263B (zh) | 一种日志解析方法、系统及电子设备 | |
CN111309726A (zh) | 一种有向图的生成方法、生成装置及可读存储介质 | |
US20120078950A1 (en) | Techniques for Extracting Unstructured Data | |
US20130054427A1 (en) | Explosions of bill-of-materials lists | |
CN114116762A (zh) | 一种离线数据模糊搜索方法、装置、设备和介质 | |
CN115599359A (zh) | 一种代码生成方法、装置、设备及介质 | |
CN112579578A (zh) | 基于元数据的数据质量管理方法、装置、系统及服务器 | |
CN110704472A (zh) | 数据查询统计方法及装置 | |
CN117056347A (zh) | Sql语句永真式注入检测方法、装置、计算机设备及存储介质 | |
US8429520B2 (en) | Citation record extraction system and method | |
CN115544089A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN111581213B (zh) | 信息记录方法、装置、以及设备 | |
CN114741392A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN110309062A (zh) | 用例生成方法、装置、电子设备及存储介质 | |
US11908466B2 (en) | Automatically determining a descriptive identifier for a process grouping |
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 |