CN104216888A - 数据处理任务关系设置方法及系统 - Google Patents

数据处理任务关系设置方法及系统 Download PDF

Info

Publication number
CN104216888A
CN104216888A CN201310207906.6A CN201310207906A CN104216888A CN 104216888 A CN104216888 A CN 104216888A CN 201310207906 A CN201310207906 A CN 201310207906A CN 104216888 A CN104216888 A CN 104216888A
Authority
CN
China
Prior art keywords
sql
data
relation
data processing
processing task
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
Application number
CN201310207906.6A
Other languages
English (en)
Other versions
CN104216888B (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.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN201310207906.6A priority Critical patent/CN104216888B/zh
Publication of CN104216888A publication Critical patent/CN104216888A/zh
Application granted granted Critical
Publication of CN104216888B publication Critical patent/CN104216888B/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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Landscapes

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

Abstract

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

Description

数据处理任务关系设置方法及系统
技术领域
本发明涉及云计算技术,尤其涉及一种数据处理任务关系设置方法及系统。
背景技术
在云计算时代的大数据环境下,数据高速增长膨胀,各种数据处理任务的数量也呈快速增长的态势。信息处理技术更加强调的是从海量数据中快速获得有价值信息的能力,这对数据处理任务的高效调度和执行提出了更高的要求。
数据处理任务中包含多种数据转换-汇总等处理,任务间有一定的关系(包括依赖和互斥关系),准确的任务关系是数据高效调度的重要基础。以数据仓库系统为例,目前在数据处理任务调度中,任务间的关系主要是靠运维人员根据任务处理的数据及范围手工设置其之间的关系,但由于数据仓库系统的数据处理任务非常繁多而且错综复杂,因此现在的人工设置任务关系的手段存在一定的缺陷。
假设在一个数据处理任务中,从A表和B表的数据关联,生成C表,那么这个任务就要依赖于A表和B表生成完成的任务。如果某一天,这个任务的脚本做出修改,不再取A表和B表的数据,改成取X表和Y表。那么这个脚本修改完成后,就要由运维人员手工操作,取消该任务对A表和B表生成任务的依赖,改成依赖X表和Y表的生成任务。这就要求运维人员对整个数据处理的前后始末情况非常了解,否则任务依赖关系就会出错,将直接影响数据处理的结果。但实际上,面面俱到的运维人员是不存在的,因此亟需一种克服人工设置任务关系的缺陷的方案,来提高数据运维的准确性和效率。
发明内容
本发明的目的是提出一种数据处理任务关系设置方法及系统,能够提供数据处理任务关系的自动化分析配置,提高数据运维的准确性和效率。
为实现上述目的,本发明提供了一种数据处理任务关系设置方法,包括:
获取数据处理任务中的至少一个结构化查询语言(StructuredQuery Language,简称SQL)脚本;
分别对所述至少一个结构化查询语言脚本中的每个所述结构化查询语言脚本中的结构化查询语言语句进行词法分析和语法分析,建立所述结构化查询语言语句的数据血统关系;
通过所述结构化查询语言语句的数据血统关系建立所属的所述结构化查询语言脚本的数据血统关系;
根据所述至少一个结构化查询语言脚本中各个结构化查询语言脚本的数据血统关系建立所述数据处理任务的数据血统关系,并确定所述数据处理任务的数据层级和任务级的数据输入输出;
根据所述数据处理任务的数据血统关系和数据层级确定并设置所述数据处理任务与另一数据处理任务之间的关系。
进一步的,在所述通过所述结构化查询语言语句的数据血统关系建立所属的所述结构化查询语言脚本的数据血统关系的操作之后,还包括:
根据所述至少一个结构化查询语言脚本中各个结构化查询语言脚本的数据血统关系确定并设置所述数据处理任务中的各个结构化查询语言脚本的执行顺序。
进一步的,所述获取数据处理任务中的至少一个结构化查询语言脚本的操作具体为:
从统一的脚本发布装置获取所述数据处理任务中的至少一个结构化查询语言脚本;或者
通过任务调度系统的接口获取数据处理任务中的至少一个结构化查询语言脚本;或者
通过监视数据库来获取数据处理任务中的至少一个结构化查询语言脚本。
进一步的,所述分别对所述至少一个结构化查询语言脚本中的每个所述结构化查询语言脚本中的结构化查询语言语句进行词法分析和语法分析,建立所述结构化查询语言语句的数据血统关系的操作具体为:
分别对所述至少一个结构化查询语言脚本中的每个所述结构化查询语言脚本中的结构化查询语言语句进行词法分析,识别出所述结构化查询语言语句中的查询关键词;
根据识别出的查询关键词进行语法分析,识别出所述结构化查询语言语句中涉及的数据表之间的关联关系;
通过查询数据库元数据,获得所述结构化查询语言语句中涉及的数据表中的字段和字段顺序,结合所述结构化查询语言语句中涉及的数据表之间的关联关系,获得所述结构化查询语言语句中涉及的数据表之间的字段关联关系作为所述结构化查询语言语句的数据血统关系。
进一步的,所述通过所述结构化查询语言语句的数据血统关系建立所属的所述结构化查询语言脚本的数据血统关系的操作具体为:
在获得了所述结构化查询语言脚本中所有结构化查询语言语句的数据血统关系后,根据各个结构化查询语言语句中涉及的数据表之间的字段关联关系,获得所述结构化查询语言脚本中涉及的数据表之间的字段关联关系作为所述结构化查询语言脚本的数据血统关系。
进一步的,所述根据所述至少一个结构化查询语言脚本中各个结构化查询语言脚本的数据血统关系建立所述数据处理任务的数据血统关系的操作具体为:
在获得了所述数据处理任务中所有结构化查询语言脚本的数据血统关系后,根据各个结构化查询语言脚本中涉及的数据表之间的字段关联关系,获得所述数据处理任务中涉及的数据表之间的字段关联关系作为所述数据处理任务的数据血统关系。
进一步的,所述根据所述数据处理任务的数据血统关系和数据层级确定并设置所述数据处理任务与另一数据处理任务之间的关系的操作具体为:
根据所述数据处理任务的数据血统关系和数据层级判断所述数据处理任务处理的数据与所述另一数据处理任务处理的数据是否存在共同写入对象,以及是否为上下文关系,如果存在共同写入对象,则将所述数据处理任务与所述另一数据处理任务设置为互斥关系;如果为上下文关系,则将所述数据处理任务与所述另一数据处理任务设置为依赖关系。
进一步的,在所述根据所述数据处理任务的数据血统关系和数据层级确定并设置所述数据处理任务与另一数据处理任务之间的关系的操作之后,还包括:返回所述获取数据处理任务中的至少一个结构化查询语言脚本的操作。
为实现上述目的,本发明提供了一种数据处理任务关系设置系统,包括:
脚本获取模块,用于获取数据处理任务中的至少一个结构化查询语言脚本;
语句血统建立模块,用于分别对所述至少一个结构化查询语言脚本中的每个所述结构化查询语言脚本中的结构化查询语言语句进行词法分析和语法分析,建立所述结构化查询语言语句的数据血统关系;
脚本血统建立模块,用于通过所述结构化查询语言语句的数据血统关系建立所属的所述结构化查询语言脚本的数据血统关系;
任务血统建立模块,用于根据所述至少一个结构化查询语言脚本中各个结构化查询语言脚本的数据血统关系建立所述数据处理任务的数据血统关系,并确定所述数据处理任务的数据层级和任务级的数据输入输出;
任务关系设置模块,用于根据所述数据处理任务的数据血统关系和数据层级确定并设置所述数据处理任务与另一数据处理任务之间的关系。
进一步的,还包括:
脚本顺序设置模块,用于根据所述至少一个结构化查询语言脚本中各个结构化查询语言脚本的数据血统关系确定并设置所述数据处理任务中的各个结构化查询语言脚本的执行顺序。
进一步的,所述语句血统建立模块具体包括:
词法分析单元,用于分别对所述至少一个结构化查询语言脚本中的每个所述结构化查询语言脚本中的结构化查询语言语句进行词法分析,识别出所述结构化查询语言语句中的查询关键词;
语法分析单元,用于根据识别出的查询关键词进行语法分析,识别出所述结构化查询语言语句中涉及的数据表之间的关联关系;
元数据查询单元,用于通过查询数据库元数据,获得所述结构化查询语言语句中涉及的数据表中的字段和字段顺序;
语句血统确定单元,用于结合所述结构化查询语言语句中涉及的数据表之间的关联关系以及所述结构化查询语言语句中涉及的数据表中的字段和字段顺序,获得所述结构化查询语言语句中涉及的数据表之间的字段关联关系作为所述结构化查询语言语句的数据血统关系。
进一步的,所述脚本血统建立单元具体用于在获得了所述结构化查询语言脚本中所有结构化查询语言语句的数据血统关系后,根据各个结构化查询语言语句中涉及的数据表之间的字段关联关系,获得所述结构化查询语言脚本中涉及的数据表之间的字段关联关系作为所述结构化查询语言脚本的数据血统关系。
进一步的,所述任务血统建立单元具体包括:
任务血统确定单元,用于在获得了所述数据处理任务中所有结构化查询语言脚本的数据血统关系后,根据各个结构化查询语言脚本中涉及的数据表之间的字段关联关系,获得所述数据处理任务中涉及的数据表之间的字段关联关系作为所述数据处理任务的数据血统关系;
数据层级确定单元,用于确定所述数据处理任务的数据层级;
输入输出确定单元,用于确定所述数据处理任务的任务级的数据输入输出。
进一步的,所述任务关系设置模块具体包括:
共同对象判断单元,用于根据所述数据处理任务的数据血统关系和数据层级判断所述数据处理任务处理的数据与所述另一数据处理任务处理的数据是否存在共同写入对象;
互斥关系设置单元,用于在所述共同对象判断单元确定存在共同写入对象时,将所述数据处理任务与所述另一数据处理任务设置为互斥关系;
上下文关系判断单元,用于根据所述数据处理任务的数据血统关系和数据层级判断所述数据处理任务处理的数据与所述另一数据处理任务处理的数据是否为上下文关系;
依赖关系设置单元,用于在所述上下文关系判断单元确定为上下文关系,则将所述数据处理任务与所述另一数据处理任务设置为依赖关系。
进一步的,所述脚本获取模块与所述任务关系设置模块相连,在所述任务关系设置模块设置完任务关系后,触发所述脚本获取模块继续获取数据处理任务中的至少一个结构化查询语言脚本。
基于上述技术方案,本发明在配置数据处理任务时,可以通过对SQL语句的分析,建立对应的数据血统关系,进一步建立SQL脚本和数据处理任务的数据血统关系,并据此来自动设置数据处理任务与另一数据处理任务之间的关系,从而实现SQL数据处理任务关系的智能分析和设置,提升数据任务调度配置的自动化程度,提高数据运维的准确性和效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明数据处理任务关系设置方法的一实施例的流程示意图。
图2为本发明数据处理任务关系设置方法的另一实施例的流程示意图。
图3为本发明数据处理任务关系设置方法的又一实施例的流程示意图。
图4为本发明数据处理任务关系设置系统的一实施例的结构示意图。
图5为本发明数据处理任务关系设置系统的另一实施例的结构示意图。
图6为本发明数据处理任务关系设置系统的又一实施例的结构示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
如图1所示,为本发明数据处理任务关系设置方法的一实施例的流程示意图。在本实施例中,数据处理任务关系设置方法包括:
步骤101、获取数据处理任务中的至少一个SQL脚本;
步骤102、分别对至少一个SQL脚本中的每个SQL脚本中的SQL语句进行词法分析和语法分析,建立SQL语句的数据血统关系;
步骤103、通过SQL语句的数据血统关系建立所属的SQL脚本的数据血统关系;
步骤104、根据至少一个SQL脚本中各个SQL脚本的数据血统关系建立数据处理任务的数据血统关系,并确定数据处理任务的数据层级和任务级的数据输入输出;
步骤105、根据数据处理任务的数据血统关系和数据层级确定并设置数据处理任务与另一数据处理任务之间的关系。
本实施例在配置数据处理任务时,可以通过对SQL语句的分析,建立对应的数据血统关系,进一步建立SQL脚本和数据处理任务的数据血统关系,并据此来自动设置数据处理任务与另一数据处理任务之间的关系,从而实现SQL数据处理任务关系的智能分析和设置,提升数据任务调度配置的自动化程度,提高数据运维的准确性和效率。
在步骤101中,SQL脚本的获取可采用多种方式,例如从统一的脚本发布装置获取所述数据处理任务中的至少一个SQL脚本,也可以通过任务调度系统的接口获取数据处理任务中的至少一个SQL脚本,或者通过监视数据库来获取数据处理任务中的至少一个SQL脚本。
数据血统关系实际上是数据库中的数据来源关系的追溯。假设某个数据处理任务中,由A表和B表的数据关联来生成C表,对应着的数据血统关系为表(A,B)→表C,精确到字段关系,数据血统关系为A(a)→C(c1)和B(b)→C(c2)。
对于一个数据处理任务来说,可以包括一个或者多个SQL脚本,并进行灵活的组合。而每个SQL脚本由一个或者多个SQL语句组成。因此,本实施例在分析数据处理任务的数据血统关系时,需要从SQL语句的数据血统关系一级一级的确定出数据处理任务的数据血统关系。
在步骤102中建立SQL语句的数据血统关系的过程具体包括:分别对数据血统关系中的至少一个SQL脚本中的每个SQL脚本中的SQL语句进行词法分析,识别出SQL语句中的查询关键词。以SQL语句insert into A(…)select*from B为例,通过词法分析可以识别出insert、into、select、from等查询关键词,再根据识别出的查询关键词进行语法分析,识别出A表示插入的目标表,而B表示查询的来源表,从而可以建立起该SQL语句中涉及的数据表之间的关联关系为表B→表A。
通过上述词法分析和语法分析可以分析出数据表之间的关联关系,由于脚本中并未包括数据表中的字段信息,因此不能分析出字段级的精确关系,要实现精确的字段关系分析,还需要结合数据库元数据,即通过查询数据库元数据,获得SQL语句中涉及的数据表中的字段和字段顺序。其中,数据库元数据包括数据库系统数据字典或用户自定义元数据。将SQL语句中涉及的数据表之间的关联关系和SQL语句中涉及的数据表中的字段和字段顺序进行结合,可以获得SQL语句中涉及的数据表之间的字段关联关系,以此可作为SQL语句的数据血统关系。
在步骤103中获得了SQL脚本中所有SQL语句的数据血统关系后,可以根据各个SQL语句中涉及的数据表之间的字段关联关系,获得SQL脚本中涉及的数据表之间的字段关联关系作为SQL脚本的数据血统关系。举例来说,在一个SQL脚本的不同SQL语句中建立了表A→表B、表C→表D,以及表(B,D)→表E的数据血统关系,那么就可以根据这些语句级的数据血统关系进一步计算出这个SQL脚本的脚本级数据血统关系,即表A→表B→表E、表C→表D→表E。
在步骤104中获得了所述数据处理任务中所有SQL脚本的数据血统关系后,可以根据各个SQL脚本中涉及的数据表之间的字段关联关系,获得所述数据处理任务中涉及的数据表之间的字段关联关系作为所述数据处理任务的数据血统关系。同时,还可以确定出数据处理任务的数据层级和任务级的数据输入输出。从脚本级到任务级的数据血统关系的计算与上面类似,这里不再详述。举例来说,假设最终形成的任务级的数据血统关系为表A→表B→表E→表F、表C→表D→表E→表F,那么通过这个数据血统关系还可以同时确定出各个数据表所在的数据层级,其中表A和表C为1级,表B和表D为2级,表E和表F分别为3级和4级。而任务级的数据输入输出可以不考虑中间级别,只考虑最高和最低的数据层级,其中表A和表C为数据输入,表F为数据输出。
在步骤105中可以根据数据处理任务的数据血统关系和数据层级判断该数据处理任务处理的数据与另一数据处理任务处理的数据是否存在共同写入对象,如果存在共同写入对象,则将该数据处理任务与另一数据处理任务设置为互斥关系。互斥关系表示该数据处理任务与另一数据处理任务不能同时执行。
在步骤105中还可以根据数据处理任务的数据血统关系和数据层级判断该数据处理任务处理的数据与另一数据处理任务处理的数据是否为上下文关系;如果为上下文关系,则可以将该数据处理任务与另一数据处理任务设置为依赖关系。依赖关系表示该数据处理任务依赖于另一数据处理任务的完成,或者另一数据处理任务依赖于该数据处理任务的完成。
如图2所示,为本发明数据处理任务关系设置方法的另一实施例的流程示意图。与上一实施例相比,本实施例在步骤103之后,还包括:
步骤104’、根据至少一个SQL脚本中各个SQL脚本的数据血统关系确定并设置所述数据处理任务中的各个SQL脚本的执行顺序。
在本实施例中,用户只需在数据处理任务中加入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脚本先被执行,而数据层级较高的数据由数据层级较低的数据生成。
在图2中,步骤104’设置成在步骤104之前,实际上步骤104’也可以与步骤104和步骤105同时进行,或者设置在步骤104或步骤105之后。
如图3所示,为本发明数据处理任务关系设置方法的又一实施例的流程示意图。在本实施例中,给出了一个具体的数据处理任务关系设置流程,包括以下步骤:
步骤201、获取数据处理任务中的至少一个SQL脚本;
步骤202、分别对至少一个SQL脚本中的每个SQL脚本中的SQL语句进行词法分析,识别出SQL语句中的查询关键词;
步骤203、根据识别出的查询关键词进行语法分析,识别出SQL语句中涉及的数据表之间的关联关系;
步骤204、通过查询数据库元数据,获得SQL语句中涉及的数据表中的字段和字段顺序,结合SQL语句中涉及的数据表之间的关联关系,获得SQL语句中涉及的数据表之间的字段关联关系作为SQL语句的数据血统关系;
步骤205、通过SQL语句的数据血统关系建立所属的SQL脚本的数据血统关系;
步骤206、根据至少一个SQL脚本中各个SQL脚本的数据血统关系确定并设置数据处理任务中的各个SQL脚本的执行顺序;
步骤207、根据至少一个SQL脚本中各个SQL脚本的数据血统关系建立数据处理任务的数据血统关系,并确定数据处理任务的数据层级和任务级的数据输入输出;
步骤208、根据数据处理任务的数据血统关系和数据层级确定并设置数据处理任务与另一数据处理任务之间的关系;
步骤209、在获得了SQL脚本中所有SQL语句的数据血统关系后,根据各个SQL语句中涉及的数据表之间的字段关联关系,获得SQL脚本中涉及的数据表之间的字段关联关系作为SQL脚本的数据血统关系;
步骤210、在获得了数据处理任务中所有SQL脚本的数据血统关系后,根据各个SQL脚本中涉及的数据表之间的字段关联关系,获得数据处理任务中涉及的数据表之间的字段关联关系作为数据处理任务的数据血统关系;
步骤211、根据数据处理任务的数据血统关系和数据层级判断数据处理任务与另一数据处理任务的数据关系,如果存在共同写入对象,则执行步骤212,如果为上下文关系,则执行步骤213;
步骤212、将数据处理任务与另一数据处理任务设置为互斥关系,并返回步骤201;
步骤213、将数据处理任务与另一数据处理任务设置为依赖关系,并返回步骤201。
本实施例通过自动分析SQL语句、SQL脚本及数据处理任务的数据血统关系,并根据数据处理任务间的数据关系来进行任务关系的配置,可以准确的分析和配置数据处理任务间的关系,从而提升数据任务调度配置的自动化程度,提高数据运维的准确性和效率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
如图4所示,为本发明数据处理任务关系设置系统的一实施例的结构示意图。在本实施例中,数据处理任务关系设置系统包括:脚本获取模块1、语句血统建立模块2、脚本血统建立模块3、任务血统建立模块4和任务关系设置模块5。
脚本获取模块1用于获取数据处理任务中的至少一个SQL脚本。语句血统建立模块2用于分别对所述至少一个SQL脚本中的每个所述SQL脚本中的SQL语句进行词法分析和语法分析,建立所述SQL语句的数据血统关系。脚本血统建立模块3用于通过所述SQL语句的数据血统关系建立所属的所述SQL脚本的数据血统关系。
任务血统建立模块4用于根据所述至少一个SQL脚本中各个SQL脚本的数据血统关系建立所述数据处理任务的数据血统关系,并确定所述数据处理任务的数据层级和任务级的数据输入输出。任务关系设置模块5用于根据所述数据处理任务的数据血统关系和数据层级确定并设置所述数据处理任务与另一数据处理任务之间的关系。
如图5所示,为本发明数据处理任务关系设置系统的另一实施例的结构示意图。与上一实施例相比,本实施例还包括脚本顺序设置模块6,该模块用于根据所述至少一个SQL脚本中各个SQL脚本的数据血统关系确定并设置所述数据处理任务中的各个SQL脚本的执行顺序。
如图6所示,为本发明数据处理任务关系设置系统的又一实施例的结构示意图。在本实施例中,语句血统建立模块2可以具体包括:词法分析单元21、语法分析单元22、元数据查询单元23和语句血统确定单元24。
词法分析单元21用于分别对所述至少一个SQL脚本中的每个所述SQL脚本中的SQL语句进行词法分析,识别出所述SQL语句中的查询关键词。语法分析单元22用于根据识别出的查询关键词进行语法分析,识别出所述SQL语句中涉及的数据表之间的关联关系。元数据查询单元23用于通过查询数据库元数据,获得所述SQL语句中涉及的数据表中的字段和字段顺序。
语句血统确定单元24用于结合所述SQL语句中涉及的数据表之间的关联关系以及所述SQL语句中涉及的数据表中的字段和字段顺序,获得所述SQL语句中涉及的数据表之间的字段关联关系作为所述SQL语句的数据血统关系。
脚本血统建立单元3在获得了所述SQL脚本中所有SQL语句的数据血统关系后,可以根据各个SQL语句中涉及的数据表之间的字段关联关系,获得所述SQL脚本中涉及的数据表之间的字段关联关系作为所述SQL脚本的数据血统关系。
任务血统建立单元4可以具体包括:任务血统确定单元41、数据层级确定单元42和输入输出确定单元43。
任务血统确定单元41用于在获得了所述数据处理任务中所有SQL脚本的数据血统关系后,根据各个SQL脚本中涉及的数据表之间的字段关联关系,获得所述数据处理任务中涉及的数据表之间的字段关联关系作为所述数据处理任务的数据血统关系。数据层级确定单元42用于确定所述数据处理任务的数据层级。输入输出确定单元43用于确定所述数据处理任务的任务级的数据输入输出。
任务关系设置模块5可以具体包括:共同对象判断单元51、互斥关系设置单元52、上下文关系判断单元53和依赖关系设置单元54。
共同对象判断单元51用于根据所述数据处理任务的数据血统关系和数据层级判断所述数据处理任务处理的数据与所述另一数据处理任务处理的数据是否存在共同写入对象。互斥关系设置单元52用于在所述共同对象判断单元51确定存在共同写入对象时,将所述数据处理任务与所述另一数据处理任务设置为互斥关系。
上下文关系判断单元53用于根据所述数据处理任务的数据血统关系和数据层级判断所述数据处理任务处理的数据与所述另一数据处理任务处理的数据是否为上下文关系。依赖关系设置单元54用于在所述上下文关系判断单元53确定为上下文关系,则将所述数据处理任务与所述另一数据处理任务设置为依赖关系。
在上述各实施例中,脚本获取模块1可以与任务关系设置模块5相连,以便在任务关系设置模块5设置完任务关系后,触发所述脚本获取模块1继续获取数据处理任务中的至少一个SQL脚本。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

Claims (15)

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所述的数据处理任务关系设置系统,其中所述脚本获取模块与所述任务关系设置模块相连,在所述任务关系设置模块设置完任务关系后,触发所述脚本获取模块继续获取数据处理任务中的至少一个结构化查询语言脚本。
CN201310207906.6A 2013-05-30 2013-05-30 数据处理任务关系设置方法及系统 Active CN104216888B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310207906.6A CN104216888B (zh) 2013-05-30 2013-05-30 数据处理任务关系设置方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310207906.6A CN104216888B (zh) 2013-05-30 2013-05-30 数据处理任务关系设置方法及系统

Publications (2)

Publication Number Publication Date
CN104216888A true CN104216888A (zh) 2014-12-17
CN104216888B CN104216888B (zh) 2017-10-17

Family

ID=52098394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310207906.6A Active CN104216888B (zh) 2013-05-30 2013-05-30 数据处理任务关系设置方法及系统

Country Status (1)

Country Link
CN (1) CN104216888B (zh)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104915390A (zh) * 2015-05-25 2015-09-16 广州精点计算机科技有限公司 一种etl数据血统查询系统及查询方法
CN105321045A (zh) * 2015-11-04 2016-02-10 北京知聚科技有限公司 业务流程的形式化模型构建方法与系统
CN107169023A (zh) * 2017-04-07 2017-09-15 广东精点数据科技股份有限公司 基于sql语义自动解析的数据血统分析系统及方法
CN107203640A (zh) * 2017-06-14 2017-09-26 成都四方伟业软件股份有限公司 通过数据库运行记录建立物理模型的方法及系统
CN107239711A (zh) * 2016-03-29 2017-10-10 北京明略软件系统有限公司 一种数据库行权限控制方法和系统
CN107357587A (zh) * 2016-07-19 2017-11-17 南京坦道信息科技有限公司 一种基于完全自定义sql场景的自助取数系统及方法
CN107608774A (zh) * 2017-09-08 2018-01-19 新智云数据服务有限公司 一种任务调度方法、装置、设备及存储介质
CN108197182A (zh) * 2017-12-25 2018-06-22 百味云科技股份有限公司 一种数据图谱分析系统以及方法
CN108255602A (zh) * 2017-11-01 2018-07-06 平安普惠企业管理有限公司 任务组合方法及终端设备
CN109213826A (zh) * 2017-06-30 2019-01-15 华为技术有限公司 数据处理方法和设备
CN109614432A (zh) * 2018-12-05 2019-04-12 北京百分点信息科技有限公司 一种基于语法分析的获取数据血缘关系的系统及方法
CN109710703A (zh) * 2019-01-03 2019-05-03 北京顺丰同城科技有限公司 一种血缘关系网络的生成方法及装置
CN109857924A (zh) * 2019-02-28 2019-06-07 重庆科技学院 一种大数据分析监察信息处理系统及方法
CN110019315A (zh) * 2018-06-19 2019-07-16 杭州数澜科技有限公司 一种用于数据血缘解析的方法和装置
CN110221818A (zh) * 2019-04-19 2019-09-10 新智云数据服务有限公司 数据关系的处理方法及系统
CN110636016A (zh) * 2019-08-08 2019-12-31 西安万像电子科技有限公司 数据传输方法及系统
CN110795455A (zh) * 2019-09-06 2020-02-14 中国平安财产保险股份有限公司 依赖关系解析方法、电子装置、计算机设备及可读存储介质
CN110866007A (zh) * 2019-10-12 2020-03-06 中国平安财产保险股份有限公司 大数据应用和表的信息管理方法、系统和计算机设备
CN111176718A (zh) * 2019-12-24 2020-05-19 中国平安财产保险股份有限公司 脚本上线方法、装置、存储介质及电子设备
CN112464050A (zh) * 2020-12-11 2021-03-09 中国人寿保险股份有限公司 一种基于python的数据血缘整理方法、装置及电子设备
CN112559525A (zh) * 2020-12-15 2021-03-26 中国工商银行股份有限公司 数据检查系统、方法、装置和服务器
CN112753029A (zh) * 2018-09-20 2021-05-04 华为技术有限公司 用于基于图的查询分析的系统和方法
CN113326063A (zh) * 2021-06-17 2021-08-31 深圳前海微众银行股份有限公司 数据处理方法、电子设备及存储介质
CN113505970A (zh) * 2021-06-07 2021-10-15 广发银行股份有限公司 基于表级血缘关系的数据批次处理方法及系统
CN117608807A (zh) * 2023-12-22 2024-02-27 无锡拈花云科技服务有限公司 数据调度任务自动创建及依赖自动构建方法、系统及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402615A (zh) * 2011-12-22 2012-04-04 哈尔滨工程大学 一种基于结构化查询语言语句的源信息追踪方法
CN102750374A (zh) * 2012-06-20 2012-10-24 深圳市远行科技有限公司 一种基于数据库脚本的数据追溯和影响关系的分析方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402615A (zh) * 2011-12-22 2012-04-04 哈尔滨工程大学 一种基于结构化查询语言语句的源信息追踪方法
CN102750374A (zh) * 2012-06-20 2012-10-24 深圳市远行科技有限公司 一种基于数据库脚本的数据追溯和影响关系的分析方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
尹孟嘉,涂俊英,张涛: "《文件系统中对象血统的构造方法》", 《孝感学院学报》 *

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104915390A (zh) * 2015-05-25 2015-09-16 广州精点计算机科技有限公司 一种etl数据血统查询系统及查询方法
CN105321045A (zh) * 2015-11-04 2016-02-10 北京知聚科技有限公司 业务流程的形式化模型构建方法与系统
CN107239711A (zh) * 2016-03-29 2017-10-10 北京明略软件系统有限公司 一种数据库行权限控制方法和系统
CN107357587A (zh) * 2016-07-19 2017-11-17 南京坦道信息科技有限公司 一种基于完全自定义sql场景的自助取数系统及方法
CN107169023A (zh) * 2017-04-07 2017-09-15 广东精点数据科技股份有限公司 基于sql语义自动解析的数据血统分析系统及方法
CN107203640B (zh) * 2017-06-14 2019-12-31 成都四方伟业软件股份有限公司 通过数据库运行记录建立物理模型的方法及系统
CN107203640A (zh) * 2017-06-14 2017-09-26 成都四方伟业软件股份有限公司 通过数据库运行记录建立物理模型的方法及系统
CN109213826A (zh) * 2017-06-30 2019-01-15 华为技术有限公司 数据处理方法和设备
CN109213826B (zh) * 2017-06-30 2021-10-22 华为技术有限公司 数据处理方法和设备
CN107608774A (zh) * 2017-09-08 2018-01-19 新智云数据服务有限公司 一种任务调度方法、装置、设备及存储介质
CN108255602A (zh) * 2017-11-01 2018-07-06 平安普惠企业管理有限公司 任务组合方法及终端设备
CN108255602B (zh) * 2017-11-01 2020-11-27 平安普惠企业管理有限公司 任务组合方法及终端设备
CN108197182A (zh) * 2017-12-25 2018-06-22 百味云科技股份有限公司 一种数据图谱分析系统以及方法
CN110019315A (zh) * 2018-06-19 2019-07-16 杭州数澜科技有限公司 一种用于数据血缘解析的方法和装置
CN112753029A (zh) * 2018-09-20 2021-05-04 华为技术有限公司 用于基于图的查询分析的系统和方法
CN109614432A (zh) * 2018-12-05 2019-04-12 北京百分点信息科技有限公司 一种基于语法分析的获取数据血缘关系的系统及方法
CN109614432B (zh) * 2018-12-05 2021-01-05 北京百分点信息科技有限公司 一种基于语法分析的获取数据血缘关系的系统及方法
CN109710703A (zh) * 2019-01-03 2019-05-03 北京顺丰同城科技有限公司 一种血缘关系网络的生成方法及装置
CN109857924A (zh) * 2019-02-28 2019-06-07 重庆科技学院 一种大数据分析监察信息处理系统及方法
CN110221818A (zh) * 2019-04-19 2019-09-10 新智云数据服务有限公司 数据关系的处理方法及系统
CN110636016B (zh) * 2019-08-08 2023-09-29 西安万像电子科技有限公司 数据传输方法及系统
CN110636016A (zh) * 2019-08-08 2019-12-31 西安万像电子科技有限公司 数据传输方法及系统
CN110795455A (zh) * 2019-09-06 2020-02-14 中国平安财产保险股份有限公司 依赖关系解析方法、电子装置、计算机设备及可读存储介质
CN110795455B (zh) * 2019-09-06 2023-11-21 中国平安财产保险股份有限公司 依赖关系解析方法、电子装置、计算机设备及可读存储介质
CN110866007A (zh) * 2019-10-12 2020-03-06 中国平安财产保险股份有限公司 大数据应用和表的信息管理方法、系统和计算机设备
CN110866007B (zh) * 2019-10-12 2023-08-22 中国平安财产保险股份有限公司 大数据应用和表的信息管理方法、系统和计算机设备
CN111176718A (zh) * 2019-12-24 2020-05-19 中国平安财产保险股份有限公司 脚本上线方法、装置、存储介质及电子设备
CN112464050A (zh) * 2020-12-11 2021-03-09 中国人寿保险股份有限公司 一种基于python的数据血缘整理方法、装置及电子设备
CN112464050B (zh) * 2020-12-11 2024-05-28 中国人寿保险股份有限公司 一种基于python的数据血缘整理方法、装置及电子设备
CN112559525A (zh) * 2020-12-15 2021-03-26 中国工商银行股份有限公司 数据检查系统、方法、装置和服务器
CN112559525B (zh) * 2020-12-15 2024-02-27 中国工商银行股份有限公司 数据检查系统、方法、装置和服务器
CN113505970A (zh) * 2021-06-07 2021-10-15 广发银行股份有限公司 基于表级血缘关系的数据批次处理方法及系统
CN113326063A (zh) * 2021-06-17 2021-08-31 深圳前海微众银行股份有限公司 数据处理方法、电子设备及存储介质
CN113326063B (zh) * 2021-06-17 2023-03-03 深圳前海微众银行股份有限公司 数据处理方法、电子设备及存储介质
CN117608807A (zh) * 2023-12-22 2024-02-27 无锡拈花云科技服务有限公司 数据调度任务自动创建及依赖自动构建方法、系统及介质

Also Published As

Publication number Publication date
CN104216888B (zh) 2017-10-17

Similar Documents

Publication Publication Date Title
CN104216888A (zh) 数据处理任务关系设置方法及系统
CN107491485B (zh) 生成执行计划的方法、计划单元装置和分布式NewSQL数据库系统
WO2020233330A1 (zh) 批量测试方法、装置及计算机可读存储介质
CN109240901B (zh) 性能分析方法、性能分析装置、存储介质和电子设备
CN109614432B (zh) 一种基于语法分析的获取数据血缘关系的系统及方法
CN103514223A (zh) 一种数据仓库数据同步方法和系统
CN111914066B (zh) 多源数据库全局搜索方法及系统
CN112988782B (zh) Hive支持交互式查询的方法、装置及存储介质
CN109947804B (zh) 数据集合查询的优化方法、装置、服务器和存储介质
WO2021253641A1 (zh) 着色语言翻译方法
CN101425064B (zh) 测试日志处理方法及系统
CN106777278B (zh) 一种基于Spark的数据处理方法及装置
KR20160117691A (ko) 스토리지 시스템 및 그것의 동작 방법
CN113962597A (zh) 一种数据分析方法、装置、电子设备及存储介质
CN116560631B (zh) 一种机器学习模型代码的生成方法及装置
CN105302547A (zh) 一种面向Verilog HDL设计的故障注入方法
CN113094625A (zh) 页面元素定位方法、装置、电子设备及存储介质
CN112328599A (zh) 基于元数据的字段血缘分析方法及装置
CN109491904B (zh) 一种SparkSQL应用程序的自动化测试方法和装置
CN106598843A (zh) 一种基于程序分析的软件日志行为自动识别方法
CN115830419A (zh) 一种数据驱动式人工智能技术评测系统及方法
EP4174680A1 (en) Sql unification method, system, and device, and medium
CN114116773A (zh) 一种结构化查询语言sql文本审核方法及装置
CN115169578A (zh) 一种基于元宇宙数据标记的ai模型生产方法及系统
CN114116503A (zh) 一种测试方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant