数据处理任务关系设置方法及系统的制作方法

文档序号:6503463阅读:94来源:国知局
数据处理任务关系设置方法及系统的制作方法
【专利摘要】本发明涉及一种数据处理任务关系设置方法及系统,方法包括:获取数据处理任务中的至少一个SQL脚本;分别对至少一个SQL脚本中的每个SQL脚本中的SQL语句进行词法分析和语法分析,建立SQL语句的数据血统关系;通过SQL语句的数据血统关系建立所属的SQL脚本的数据血统关系;根据至少一个SQL脚本中各个SQL脚本的数据血统关系建立数据处理任务的数据血统关系,并确定数据处理任务的数据层级和任务级的数据输入输出;根据数据处理任务的数据血统关系和数据层级确定并设置数据处理任务与另一数据处理任务之间的关系。本发明能够实现SQL数据处理任务关系的智能分析和设置,提升数据任务调度配置的自动化程度,提高数据运维的准确性和效率。
【专利说明】数据处理任务关系设置方法及系统

【技术领域】
[0001] 本发明涉及云计算技术,尤其涉及一种数据处理任务关系设置方法及系统。

【背景技术】
[0002] 在云计算时代的大数据环境下,数据高速增长膨胀,各种数据处理任务的数量也 呈快速增长的态势。信息处理技术更加强调的是从海量数据中快速获得有价值信息的能 力,这对数据处理任务的高效调度和执行提出了更高的要求。
[0003] 数据处理任务中包含多种数据转换-汇总等处理,任务间有一定的关系(包括依 赖和互斥关系),准确的任务关系是数据高效调度的重要基础。以数据仓库系统为例,目前 在数据处理任务调度中,任务间的关系主要是靠运维人员根据任务处理的数据及范围手工 设置其之间的关系,但由于数据仓库系统的数据处理任务非常繁多而且错综复杂,因此现 在的人工设置任务关系的手段存在一定的缺陷。
[0004] 假设在一个数据处理任务中,从A表和B表的数据关联,生成C表,那么这个任务 就要依赖于A表和B表生成完成的任务。如果某一天,这个任务的脚本做出修改,不再取A 表和B表的数据,改成取X表和Y表。那么这个脚本修改完成后,就要由运维人员手工操作, 取消该任务对A表和B表生成任务的依赖,改成依赖X表和Y表的生成任务。这就要求运 维人员对整个数据处理的前后始末情况非常了解,否则任务依赖关系就会出错,将直接影 响数据处理的结果。但实际上,面面俱到的运维人员是不存在的,因此亟需一种克服人工设 置任务关系的缺陷的方案,来提高数据运维的准确性和效率。


【发明内容】

[0005] 本发明的目的是提出一种数据处理任务关系设置方法及系统,能够提供数据处理 任务关系的自动化分析配置,提高数据运维的准确性和效率。
[0006] 为实现上述目的,本发明提供了一种数据处理任务关系设置方法,包括:
[0007] 获取数据处理任务中的至少一个结构化查询语言(Structured Query Language, 简称SQL)脚本;
[0008] 分别对所述至少一个结构化查询语言脚本中的每个所述结构化查询语言脚本中 的结构化查询语言语句进行词法分析和语法分析,建立所述结构化查询语言语句的数据血 统关系;
[0009] 通过所述结构化查询语言语句的数据血统关系建立所属的所述结构化查询语言 脚本的数据血统关系;
[0010] 根据所述至少一个结构化查询语言脚本中各个结构化查询语言脚本的数据血统 关系建立所述数据处理任务的数据血统关系,并确定所述数据处理任务的数据层级和任务 级的数据输入输出;
[0011] 根据所述数据处理任务的数据血统关系和数据层级确定并设置所述数据处理任 务与另一数据处理任务之间的关系。
[0012] 进一步的,在所述通过所述结构化查询语言语句的数据血统关系建立所属的所述 结构化查询语言脚本的数据血统关系的操作之后,还包括:
[0013] 根据所述至少一个结构化查询语言脚本中各个结构化查询语言脚本的数据血统 关系确定并设置所述数据处理任务中的各个结构化查询语言脚本的执行顺序。
[0014] 进一步的,所述获取数据处理任务中的至少一个结构化查询语言脚本的操作具体 为:
[0015] 从统一的脚本发布装置获取所述数据处理任务中的至少一个结构化查询语言脚 本;或者
[0016] 通过任务调度系统的接口获取数据处理任务中的至少一个结构化查询语言脚本; 或者
[0017] 通过监视数据库来获取数据处理任务中的至少一个结构化查询语言脚本。
[0018] 进一步的,所述分别对所述至少一个结构化查询语言脚本中的每个所述结构化查 询语言脚本中的结构化查询语言语句进行词法分析和语法分析,建立所述结构化查询语言 语句的数据血统关系的操作具体为:
[0019] 分别对所述至少一个结构化查询语言脚本中的每个所述结构化查询语言脚本中 的结构化查询语言语句进行词法分析,识别出所述结构化查询语言语句中的查询关键词;
[0020] 根据识别出的查询关键词进行语法分析,识别出所述结构化查询语言语句中涉及 的数据表之间的关联关系;
[0021] 通过查询数据库元数据,获得所述结构化查询语言语句中涉及的数据表中的字段 和字段顺序,结合所述结构化查询语言语句中涉及的数据表之间的关联关系,获得所述结 构化查询语言语句中涉及的数据表之间的字段关联关系作为所述结构化查询语言语句的 数据血统关系。
[0022] 进一步的,所述通过所述结构化查询语言语句的数据血统关系建立所属的所述结 构化查询语言脚本的数据血统关系的操作具体为:
[0023] 在获得了所述结构化查询语言脚本中所有结构化查询语言语句的数据血统关系 后,根据各个结构化查询语言语句中涉及的数据表之间的字段关联关系,获得所述结构化 查询语言脚本中涉及的数据表之间的字段关联关系作为所述结构化查询语言脚本的数据 血统关系。
[0024] 进一步的,所述根据所述至少一个结构化查询语言脚本中各个结构化查询语言脚 本的数据血统关系建立所述数据处理任务的数据血统关系的操作具体为:
[0025] 在获得了所述数据处理任务中所有结构化查询语言脚本的数据血统关系后,根据 各个结构化查询语言脚本中涉及的数据表之间的字段关联关系,获得所述数据处理任务中 涉及的数据表之间的字段关联关系作为所述数据处理任务的数据血统关系。
[0026] 进一步的,所述根据所述数据处理任务的数据血统关系和数据层级确定并设置所 述数据处理任务与另一数据处理任务之间的关系的操作具体为:
[0027] 根据所述数据处理任务的数据血统关系和数据层级判断所述数据处理任务处理 的数据与所述另一数据处理任务处理的数据是否存在共同写入对象,以及是否为上下文关 系,如果存在共同写入对象,则将所述数据处理任务与所述另一数据处理任务设置为互斥 关系;如果为上下文关系,则将所述数据处理任务与所述另一数据处理任务设置为依赖关 系。
[0028] 进一步的,在所述根据所述数据处理任务的数据血统关系和数据层级确定并设置 所述数据处理任务与另一数据处理任务之间的关系的操作之后,还包括:返回所述获取数 据处理任务中的至少一个结构化查询语言脚本的操作。
[0029] 为实现上述目的,本发明提供了一种数据处理任务关系设置系统,包括:
[0030] 脚本获取模块,用于获取数据处理任务中的至少一个结构化查询语言脚本;
[0031] 语句血统建立模块,用于分别对所述至少一个结构化查询语言脚本中的每个所述 结构化查询语言脚本中的结构化查询语言语句进行词法分析和语法分析,建立所述结构化 查询语言语句的数据血统关系;
[0032] 脚本血统建立模块,用于通过所述结构化查询语言语句的数据血统关系建立所属 的所述结构化查询语言脚本的数据血统关系;
[0033] 任务血统建立模块,用于根据所述至少一个结构化查询语言脚本中各个结构化查 询语言脚本的数据血统关系建立所述数据处理任务的数据血统关系,并确定所述数据处理 任务的数据层级和任务级的数据输入输出;
[0034] 任务关系设置模块,用于根据所述数据处理任务的数据血统关系和数据层级确定 并设置所述数据处理任务与另一数据处理任务之间的关系。
[0035] 进一步的,还包括:
[0036] 脚本顺序设置模块,用于根据所述至少一个结构化查询语言脚本中各个结构化查 询语言脚本的数据血统关系确定并设置所述数据处理任务中的各个结构化查询语言脚本 的执行顺序。
[0037] 进一步的,所述语句血统建立模块具体包括:
[0038] 词法分析单元,用于分别对所述至少一个结构化查询语言脚本中的每个所述结构 化查询语言脚本中的结构化查询语言语句进行词法分析,识别出所述结构化查询语言语句 中的查询关键词;
[0039] 语法分析单元,用于根据识别出的查询关键词进行语法分析,识别出所述结构化 查询语言语句中涉及的数据表之间的关联关系;
[0040] 元数据查询单元,用于通过查询数据库元数据,获得所述结构化查询语言语句中 涉及的数据表中的字段和字段顺序;
[0041] 语句血统确定单元,用于结合所述结构化查询语言语句中涉及的数据表之间的关 联关系以及所述结构化查询语言语句中涉及的数据表中的字段和字段顺序,获得所述结构 化查询语言语句中涉及的数据表之间的字段关联关系作为所述结构化查询语言语句的数 据血统关系。
[0042] 进一步的,所述脚本血统建立单元具体用于在获得了所述结构化查询语言脚本中 所有结构化查询语言语句的数据血统关系后,根据各个结构化查询语言语句中涉及的数据 表之间的字段关联关系,获得所述结构化查询语言脚本中涉及的数据表之间的字段关联关 系作为所述结构化查询语言脚本的数据血统关系。
[0043] 进一步的,所述任务血统建立单元具体包括:
[0044] 任务血统确定单元,用于在获得了所述数据处理任务中所有结构化查询语言脚本 的数据血统关系后,根据各个结构化查询语言脚本中涉及的数据表之间的字段关联关系, 获得所述数据处理任务中涉及的数据表之间的字段关联关系作为所述数据处理任务的数 据血统关系;
[0045] 数据层级确定单元,用于确定所述数据处理任务的数据层级;
[0046] 输入输出确定单元,用于确定所述数据处理任务的任务级的数据输入输出。
[0047] 进一步的,所述任务关系设置模块具体包括:
[0048] 共同对象判断单元,用于根据所述数据处理任务的数据血统关系和数据层级判断 所述数据处理任务处理的数据与所述另一数据处理任务处理的数据是否存在共同写入对 象;
[0049] 互斥关系设置单元,用于在所述共同对象判断单元确定存在共同写入对象时,将 所述数据处理任务与所述另一数据处理任务设置为互斥关系;
[0050] 上下文关系判断单元,用于根据所述数据处理任务的数据血统关系和数据层级 判断所述数据处理任务处理的数据与所述另一数据处理任务处理的数据是否为上下文关 系;
[0051] 依赖关系设置单元,用于在所述上下文关系判断单元确定为上下文关系,则将所 述数据处理任务与所述另一数据处理任务设置为依赖关系。
[0052] 进一步的,所述脚本获取模块与所述任务关系设置模块相连,在所述任务关系设 置模块设置完任务关系后,触发所述脚本获取模块继续获取数据处理任务中的至少一个结 构化查询语言脚本。
[0053] 基于上述技术方案,本发明在配置数据处理任务时,可以通过对SQL语句的分析, 建立对应的数据血统关系,进一步建立SQL脚本和数据处理任务的数据血统关系,并据此 来自动设置数据处理任务与另一数据处理任务之间的关系,从而实现SQL数据处理任务关 系的智能分析和设置,提升数据任务调度配置的自动化程度,提高数据运维的准确性和效 率。

【专利附图】

【附图说明】
[0054] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0055] 图1为本发明数据处理任务关系设置方法的一实施例的流程示意图。
[0056] 图2为本发明数据处理任务关系设置方法的另一实施例的流程示意图。
[0057] 图3为本发明数据处理任务关系设置方法的又一实施例的流程示意图。
[0058] 图4为本发明数据处理任务关系设置系统的一实施例的结构示意图。
[0059] 图5为本发明数据处理任务关系设置系统的另一实施例的结构示意图。
[0060] 图6为本发明数据处理任务关系设置系统的又一实施例的结构示意图。

【具体实施方式】
[0061] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0062] 如图1所示,为本发明数据处理任务关系设置方法的一实施例的流程示意图。在 本实施例中,数据处理任务关系设置方法包括:
[0063] 步骤101、获取数据处理任务中的至少一个SQL脚本;
[0064] 步骤102、分别对至少一个SQL脚本中的每个SQL脚本中的SQL语句进行词法分析 和语法分析,建立SQL语句的数据血统关系;
[0065] 步骤103、通过SQL语句的数据血统关系建立所属的SQL脚本的数据血统关系; [0066] 步骤104、根据至少一个SQL脚本中各个SQL脚本的数据血统关系建立数据处理任 务的数据血统关系,并确定数据处理任务的数据层级和任务级的数据输入输出;
[0067] 步骤105、根据数据处理任务的数据血统关系和数据层级确定并设置数据处理任 务与另一数据处理任务之间的关系。
[0068] 本实施例在配置数据处理任务时,可以通过对SQL语句的分析,建立对应的数据 血统关系,进一步建立SQL脚本和数据处理任务的数据血统关系,并据此来自动设置数据 处理任务与另一数据处理任务之间的关系,从而实现SQL数据处理任务关系的智能分析和 设置,提升数据任务调度配置的自动化程度,提高数据运维的准确性和效率。
[0069] 在步骤101中,SQL脚本的获取可采用多种方式,例如从统一的脚本发布装置获取 所述数据处理任务中的至少一个SQL脚本,也可以通过任务调度系统的接口获取数据处理 任务中的至少一个SQL脚本,或者通过监视数据库来获取数据处理任务中的至少一个SQL 脚本。
[0070] 数据血统关系实际上是数据库中的数据来源关系的追溯。假设某个数据处理任务 中,由A表和B表的数据关联来生成C表,对应着的数据血统关系为表(A,B)-表C,精确到 字段关系,数据血统关系为A(a) - C(cl)和B(b) - C(c2)。
[0071] 对于一个数据处理任务来说,可以包括一个或者多个SQL脚本,并进行灵活的组 合。而每个SQL脚本由一个或者多个SQL语句组成。因此,本实施例在分析数据处理任务 的数据血统关系时,需要从SQL语句的数据血统关系一级一级的确定出数据处理任务的数 据血统关系。
[0072] 在步骤102中建立SQL语句的数据血统关系的过程具体包括:分别对数据血统关 系中的至少一个SQL脚本中的每个SQL脚本中的SQL语句进行词法分析,识别出SQL语句 中的查询关键词。以SQL语句insert into A(…)select*from B为例,通过词法分析可以 识别出insert、into、select、from等查询关键词,再根据识别出的查询关键词进行语法分 析,识别出A表示插入的目标表,而B表示查询的来源表,从而可以建立起该SQL语句中涉 及的数据表之间的关联关系为表B -表A。
[0073] 通过上述词法分析和语法分析可以分析出数据表之间的关联关系,由于脚本中并 未包括数据表中的字段信息,因此不能分析出字段级的精确关系,要实现精确的字段关系 分析,还需要结合数据库元数据,即通过查询数据库元数据,获得SQL语句中涉及的数据表 中的字段和字段顺序。其中,数据库元数据包括数据库系统数据字典或用户自定义元数据。 将SQL语句中涉及的数据表之间的关联关系和SQL语句中涉及的数据表中的字段和字段顺 序进行结合,可以获得SQL语句中涉及的数据表之间的字段关联关系,以此可作为SQL语句 的数据血统关系。
[0074] 在步骤103中获得了 SQL脚本中所有SQL语句的数据血统关系后,可以根据各个 SQL语句中涉及的数据表之间的字段关联关系,获得SQL脚本中涉及的数据表之间的字段 关联关系作为SQL脚本的数据血统关系。举例来说,在一个SQL脚本的不同SQL语句中建 立了表A-表B、表C-表D,以及表(B,D)-表E的数据血统关系,那么就可以根据这些语 句级的数据血统关系进一步计算出这个SQL脚本的脚本级数据血统关系,即表A -表B - 表E、表C -表D -表E〇
[0075] 在步骤104中获得了所述数据处理任务中所有SQL脚本的数据血统关系后,可以 根据各个SQL脚本中涉及的数据表之间的字段关联关系,获得所述数据处理任务中涉及的 数据表之间的字段关联关系作为所述数据处理任务的数据血统关系。同时,还可以确定出 数据处理任务的数据层级和任务级的数据输入输出。从脚本级到任务级的数据血统关系的 计算与上面类似,这里不再详述。举例来说,假设最终形成的任务级的数据血统关系为表 A -表B -表E -表F、表C -表D -表E -表F,那么通过这个数据血统关系还可以同时确 定出各个数据表所在的数据层级,其中表A和表C为1级,表B和表D为2级,表E和表F 分别为3级和4级。而任务级的数据输入输出可以不考虑中间级别,只考虑最高和最低的 数据层级,其中表A和表C为数据输入,表F为数据输出。
[0076] 在步骤105中可以根据数据处理任务的数据血统关系和数据层级判断该数据处 理任务处理的数据与另一数据处理任务处理的数据是否存在共同写入对象,如果存在共同 写入对象,则将该数据处理任务与另一数据处理任务设置为互斥关系。互斥关系表示该数 据处理任务与另一数据处理任务不能同时执行。
[0077] 在步骤105中还可以根据数据处理任务的数据血统关系和数据层级判断该数据 处理任务处理的数据与另一数据处理任务处理的数据是否为上下文关系;如果为上下文关 系,则可以将该数据处理任务与另一数据处理任务设置为依赖关系。依赖关系表示该数据 处理任务依赖于另一数据处理任务的完成,或者另一数据处理任务依赖于该数据处理任务 的完成。
[0078] 如图2所示,为本发明数据处理任务关系设置方法的另一实施例的流程示意图。 与上一实施例相比,本实施例在步骤103之后,还包括:
[0079] 步骤104'、根据至少一个SQL脚本中各个SQL脚本的数据血统关系确定并设置所 述数据处理任务中的各个SQL脚本的执行顺序。
[0080] 在本实施例中,用户只需在数据处理任务中加入SQL脚本,无需考虑这些脚本的 执行顺序,通过步骤104'可以自动的设置各个SQL脚本的执行顺序。举例来说,如果用户 将生成表A的SQL脚本A和生成表B的SQL脚本B放在同一数据处理任务重,假设数据血 统关系为表A -表B,则自动将SQL脚本A的顺序设置在SQL脚本B之前。如果SQL脚本A 和SQL脚本B没有任何数据血统关系,则根据SQL脚本A和SQL脚本B的数据层级来安排 SQL脚本的执行顺序,数据层级较低的SQL脚本先被执行,而数据层级较高的数据由数据层 级较低的数据生成。
[0081] 在图2中,步骤104'设置成在步骤104之前,实际上步骤104'也可以与步骤104 和步骤105同时进行,或者设置在步骤104或步骤105之后。
[0082] 如图3所示,为本发明数据处理任务关系设置方法的又一实施例的流程示意图。 在本实施例中,给出了一个具体的数据处理任务关系设置流程,包括以下步骤:
[0083] 步骤201、获取数据处理任务中的至少一个SQL脚本;
[0084] 步骤202、分别对至少一个SQL脚本中的每个SQL脚本中的SQL语句进行词法分 析,识别出SQL语句中的查询关键词;
[0085] 步骤203、根据识别出的查询关键词进行语法分析,识别出SQL语句中涉及的数据 表之间的关联关系;
[0086] 步骤204、通过查询数据库元数据,获得SQL语句中涉及的数据表中的字段和字段 顺序,结合SQL语句中涉及的数据表之间的关联关系,获得SQL语句中涉及的数据表之间的 字段关联关系作为SQL语句的数据血统关系;
[0087] 步骤205、通过SQL语句的数据血统关系建立所属的SQL脚本的数据血统关系;
[0088] 步骤206、根据至少一个SQL脚本中各个SQL脚本的数据血统关系确定并设置数据 处理任务中的各个SQL脚本的执行顺序;
[0089] 步骤207、根据至少一个SQL脚本中各个SQL脚本的数据血统关系建立数据处理任 务的数据血统关系,并确定数据处理任务的数据层级和任务级的数据输入输出;
[0090] 步骤208、根据数据处理任务的数据血统关系和数据层级确定并设置数据处理任 务与另一数据处理任务之间的关系;
[0091] 步骤209、在获得了 SQL脚本中所有SQL语句的数据血统关系后,根据各个SQL语 句中涉及的数据表之间的字段关联关系,获得SQL脚本中涉及的数据表之间的字段关联关 系作为SQL脚本的数据血统关系;
[0092] 步骤210、在获得了数据处理任务中所有SQL脚本的数据血统关系后,根据各个 SQL脚本中涉及的数据表之间的字段关联关系,获得数据处理任务中涉及的数据表之间的 字段关联关系作为数据处理任务的数据血统关系;
[0093] 步骤211、根据数据处理任务的数据血统关系和数据层级判断数据处理任务与另 一数据处理任务的数据关系,如果存在共同写入对象,则执行步骤212,如果为上下文关系, 则执行步骤213 ;
[0094] 步骤212、将数据处理任务与另一数据处理任务设置为互斥关系,并返回步骤 201 ;
[0095] 步骤213、将数据处理任务与另一数据处理任务设置为依赖关系,并返回步骤 201。
[0096] 本实施例通过自动分析SQL语句、SQL脚本及数据处理任务的数据血统关系,并根 据数据处理任务间的数据关系来进行任务关系的配置,可以准确的分析和配置数据处理任 务间的关系,从而提升数据任务调度配置的自动化程度,提高数据运维的准确性和效率。 [0097] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。
[0098] 如图4所示,为本发明数据处理任务关系设置系统的一实施例的结构示意图。在 本实施例中,数据处理任务关系设置系统包括:脚本获取模块1、语句血统建立模块2、脚本 血统建立模块3、任务血统建立模块4和任务关系设置模块5。
[0099] 脚本获取模块1用于获取数据处理任务中的至少一个SQL脚本。语句血统建立模 块2用于分别对所述至少一个SQL脚本中的每个所述SQL脚本中的SQL语句进行词法分析 和语法分析,建立所述SQL语句的数据血统关系。脚本血统建立模块3用于通过所述SQL 语句的数据血统关系建立所属的所述SQL脚本的数据血统关系。
[0100] 任务血统建立模块4用于根据所述至少一个SQL脚本中各个SQL脚本的数据血统 关系建立所述数据处理任务的数据血统关系,并确定所述数据处理任务的数据层级和任务 级的数据输入输出。任务关系设置模块5用于根据所述数据处理任务的数据血统关系和数 据层级确定并设置所述数据处理任务与另一数据处理任务之间的关系。
[0101] 如图5所示,为本发明数据处理任务关系设置系统的另一实施例的结构示意图。 与上一实施例相比,本实施例还包括脚本顺序设置模块6,该模块用于根据所述至少一个 SQL脚本中各个SQL脚本的数据血统关系确定并设置所述数据处理任务中的各个SQL脚本 的执行顺序。
[0102] 如图6所示,为本发明数据处理任务关系设置系统的又一实施例的结构示意图。 在本实施例中,语句血统建立模块2可以具体包括:词法分析单元21、语法分析单元22、元 数据查询单元23和语句血统确定单元24。
[0103] 词法分析单元21用于分别对所述至少一个SQL脚本中的每个所述SQL脚本中的 SQL语句进行词法分析,识别出所述SQL语句中的查询关键词。语法分析单元22用于根 据识别出的查询关键词进行语法分析,识别出所述SQL语句中涉及的数据表之间的关联关 系。元数据查询单元23用于通过查询数据库元数据,获得所述SQL语句中涉及的数据表中 的字段和字段顺序。
[0104] 语句血统确定单元24用于结合所述SQL语句中涉及的数据表之间的关联关系以 及所述SQL语句中涉及的数据表中的字段和字段顺序,获得所述SQL语句中涉及的数据表 之间的字段关联关系作为所述SQL语句的数据血统关系。
[0105] 脚本血统建立单元3在获得了所述SQL脚本中所有SQL语句的数据血统关系后, 可以根据各个SQL语句中涉及的数据表之间的字段关联关系,获得所述SQL脚本中涉及的 数据表之间的字段关联关系作为所述SQL脚本的数据血统关系。
[0106] 任务血统建立单元4可以具体包括:任务血统确定单元41、数据层级确定单元42 和输入输出确定单元43。
[0107] 任务血统确定单元41用于在获得了所述数据处理任务中所有SQL脚本的数据血 统关系后,根据各个SQL脚本中涉及的数据表之间的字段关联关系,获得所述数据处理任 务中涉及的数据表之间的字段关联关系作为所述数据处理任务的数据血统关系。数据层级 确定单元42用于确定所述数据处理任务的数据层级。输入输出确定单元43用于确定所述 数据处理任务的任务级的数据输入输出。
[0108] 任务关系设置模块5可以具体包括:共同对象判断单元51、互斥关系设置单元52、 上下文关系判断单元53和依赖关系设置单元54。
[0109] 共同对象判断单元51用于根据所述数据处理任务的数据血统关系和数据层级判 断所述数据处理任务处理的数据与所述另一数据处理任务处理的数据是否存在共同写入 对象。互斥关系设置单元52用于在所述共同对象判断单元51确定存在共同写入对象时, 将所述数据处理任务与所述另一数据处理任务设置为互斥关系。
[0110] 上下文关系判断单元53用于根据所述数据处理任务的数据血统关系和数据层级 判断所述数据处理任务处理的数据与所述另一数据处理任务处理的数据是否为上下文关 系。依赖关系设置单元54用于在所述上下文关系判断单元53确定为上下文关系,则将所 述数据处理任务与所述另一数据处理任务设置为依赖关系。
[0111] 在上述各实施例中,脚本获取模块1可以与任务关系设置模块5相连,以便在任务 关系设置模块5设置完任务关系后,触发所述脚本获取模块1继续获取数据处理任务中的 至少一个SQL脚本。
[0112] 最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽 管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然 可以对本发明的【具体实施方式】进行修改或者对部分技术特征进行等同替换;而不脱离本发 明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
【权利要求】
1. 一种数据处理任务关系设置方法,包括: 获取数据处理任务中的至少一个结构化查询语言脚本; 分别对所述至少一个结构化查询语言脚本中的每个所述结构化查询语言脚本中的结 构化查询语言语句进行词法分析和语法分析,建立所述结构化查询语言语句的数据血统关 系; 通过所述结构化查询语言语句的数据血统关系建立所属的所述结构化查询语言脚本 的数据血统关系; 根据所述至少一个结构化查询语言脚本中各个结构化查询语言脚本的数据血统关系 建立所述数据处理任务的数据血统关系,并确定所述数据处理任务的数据层级和任务级的 数据输入输出; 根据所述数据处理任务的数据血统关系和数据层级确定并设置所述数据处理任务与 另一数据处理任务之间的关系。
2. 根据权利要求1所述的数据处理任务关系设置方法,其中,在所述通过所述结构化 查询语言语句的数据血统关系建立所属的所述结构化查询语言脚本的数据血统关系的操 作之后,还包括: 根据所述至少一个结构化查询语言脚本中各个结构化查询语言脚本的数据血统关系 确定并设置所述数据处理任务中的各个结构化查询语言脚本的执行顺序。
3. 根据权利要求2所述的数据处理任务关系设置方法,其中,所述获取数据处理任务 中的至少一个结构化查询语言脚本的操作具体为: 从统一的脚本发布装置获取所述数据处理任务中的至少一个结构化查询语言脚本;或 者 通过任务调度系统的接口获取数据处理任务中的至少一个结构化查询语言脚本;或者 通过监视数据库来获取数据处理任务中的至少一个结构化查询语言脚本。
4. 根据权利要求2所述的数据处理任务关系设置方法,其中,所述分别对所述至少一 个结构化查询语言脚本中的每个所述结构化查询语言脚本中的结构化查询语言语句进行 词法分析和语法分析,建立所述结构化查询语言语句的数据血统关系的操作具体为: 分别对所述至少一个结构化查询语言脚本中的每个所述结构化查询语言脚本中的结 构化查询语言语句进行词法分析,识别出所述结构化查询语言语句中的查询关键词; 根据识别出的查询关键词进行语法分析,识别出所述结构化查询语言语句中涉及的数 据表之间的关联关系; 通过查询数据库元数据,获得所述结构化查询语言语句中涉及的数据表中的字段和字 段顺序,结合所述结构化查询语言语句中涉及的数据表之间的关联关系,获得所述结构化 查询语言语句中涉及的数据表之间的字段关联关系作为所述结构化查询语言语句的数据 血统关系。
5. 根据权利要求4所述的数据处理任务关系设置方法,其中,所述通过所述结构化查 询语言语句的数据血统关系建立所属的所述结构化查询语言脚本的数据血统关系的操作 具体为: 在获得了所述结构化查询语言脚本中所有结构化查询语言语句的数据血统关系后,根 据各个结构化查询语言语句中涉及的数据表之间的字段关联关系,获得所述结构化查询语 言脚本中涉及的数据表之间的字段关联关系作为所述结构化查询语言脚本的数据血统关 系。
6. 根据权利要求5所述的数据处理任务关系设置方法,其中所述根据所述至少一个结 构化查询语言脚本中各个结构化查询语言脚本的数据血统关系建立所述数据处理任务的 数据血统关系的操作具体为: 在获得了所述数据处理任务中所有结构化查询语言脚本的数据血统关系后,根据各个 结构化查询语言脚本中涉及的数据表之间的字段关联关系,获得所述数据处理任务中涉及 的数据表之间的字段关联关系作为所述数据处理任务的数据血统关系。
7. 根据权利要求2所述的数据处理任务关系设置方法,其中所述根据所述数据处理任 务的数据血统关系和数据层级确定并设置所述数据处理任务与另一数据处理任务之间的 关系的操作具体为: 根据所述数据处理任务的数据血统关系和数据层级判断所述数据处理任务处理的数 据与所述另一数据处理任务处理的数据是否存在共同写入对象,以及是否为上下文关系, 如果存在共同写入对象,则将所述数据处理任务与所述另一数据处理任务设置为互斥关 系;如果为上下文关系,则将所述数据处理任务与所述另一数据处理任务设置为依赖关系。
8. 根据权利要求2所述的数据处理任务关系设置方法,其中在所述根据所述数据处理 任务的数据血统关系和数据层级确定并设置所述数据处理任务与另一数据处理任务之间 的关系的操作之后,还包括:返回所述获取数据处理任务中的至少一个结构化查询语言脚 本的操作。
9. 一种数据处理任务关系设置系统,包括: 脚本获取模块,用于获取数据处理任务中的至少一个结构化查询语言脚本; 语句血统建立模块,用于分别对所述至少一个结构化查询语言脚本中的每个所述结构 化查询语言脚本中的结构化查询语言语句进行词法分析和语法分析,建立所述结构化查询 语言语句的数据血统关系; 脚本血统建立模块,用于通过所述结构化查询语言语句的数据血统关系建立所属的所 述结构化查询语言脚本的数据血统关系; 任务血统建立模块,用于根据所述至少一个结构化查询语言脚本中各个结构化查询语 言脚本的数据血统关系建立所述数据处理任务的数据血统关系,并确定所述数据处理任务 的数据层级和任务级的数据输入输出; 任务关系设置模块,用于根据所述数据处理任务的数据血统关系和数据层级确定并设 置所述数据处理任务与另一数据处理任务之间的关系。
10. 根据权利要求9所述的数据处理任务关系设置系统,其中还包括: 脚本顺序设置模块,用于根据所述至少一个结构化查询语言脚本中各个结构化查询语 言脚本的数据血统关系确定并设置所述数据处理任务中的各个结构化查询语言脚本的执 行顺序。
11. 根据权利要求10所述的数据处理任务关系设置系统,其中所述语句血统建立模块 具体包括: 词法分析单元,用于分别对所述至少一个结构化查询语言脚本中的每个所述结构化查 询语言脚本中的结构化查询语言语句进行词法分析,识别出所述结构化查询语言语句中的 查询关键词; 语法分析单元,用于根据识别出的查询关键词进行语法分析,识别出所述结构化查询 语言语句中涉及的数据表之间的关联关系; 元数据查询单元,用于通过查询数据库元数据,获得所述结构化查询语言语句中涉及 的数据表中的字段和字段顺序; 语句血统确定单元,用于结合所述结构化查询语言语句中涉及的数据表之间的关联关 系以及所述结构化查询语言语句中涉及的数据表中的字段和字段顺序,获得所述结构化查 询语言语句中涉及的数据表之间的字段关联关系作为所述结构化查询语言语句的数据血 统关系。
12. 根据权利要求11所述的数据处理任务关系设置系统,其中所述脚本血统建立单元 具体用于在获得了所述结构化查询语言脚本中所有结构化查询语言语句的数据血统关系 后,根据各个结构化查询语言语句中涉及的数据表之间的字段关联关系,获得所述结构化 查询语言脚本中涉及的数据表之间的字段关联关系作为所述结构化查询语言脚本的数据 血统关系。
13. 根据权利要求12所述的数据处理任务关系设置系统,其中所述任务血统建立单元 具体包括: 任务血统确定单元,用于在获得了所述数据处理任务中所有结构化查询语言脚本的数 据血统关系后,根据各个结构化查询语言脚本中涉及的数据表之间的字段关联关系,获得 所述数据处理任务中涉及的数据表之间的字段关联关系作为所述数据处理任务的数据血 统关系; 数据层级确定单元,用于确定所述数据处理任务的数据层级; 输入输出确定单元,用于确定所述数据处理任务的任务级的数据输入输出。
14. 根据权利要求10所述的数据处理任务关系设置系统,其中所述任务关系设置模块 具体包括: 共同对象判断单元,用于根据所述数据处理任务的数据血统关系和数据层级判断所述 数据处理任务处理的数据与所述另一数据处理任务处理的数据是否存在共同写入对象; 互斥关系设置单元,用于在所述共同对象判断单元确定存在共同写入对象时,将所述 数据处理任务与所述另一数据处理任务设置为互斥关系; 上下文关系判断单元,用于根据所述数据处理任务的数据血统关系和数据层级判断所 述数据处理任务处理的数据与所述另一数据处理任务处理的数据是否为上下文关系; 依赖关系设置单元,用于在所述上下文关系判断单元确定为上下文关系,则将所述数 据处理任务与所述另一数据处理任务设置为依赖关系。
15. 根据权利要求10所述的数据处理任务关系设置系统,其中所述脚本获取模块与所 述任务关系设置模块相连,在所述任务关系设置模块设置完任务关系后,触发所述脚本获 取模块继续获取数据处理任务中的至少一个结构化查询语言脚本。
【文档编号】G06F17/30GK104216888SQ201310207906
【公开日】2014年12月17日 申请日期:2013年5月30日 优先权日:2013年5月30日
【发明者】陈猶, 向勇, 孙剑晖, 黄平, 陈康, 张青, 高智衡, 刘春
申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1