CN107870949A - 数据分析作业依赖关系生成方法和系统 - Google Patents
数据分析作业依赖关系生成方法和系统 Download PDFInfo
- Publication number
- CN107870949A CN107870949A CN201610860027.7A CN201610860027A CN107870949A CN 107870949 A CN107870949 A CN 107870949A CN 201610860027 A CN201610860027 A CN 201610860027A CN 107870949 A CN107870949 A CN 107870949A
- Authority
- CN
- China
- Prior art keywords
- essential information
- father node
- data
- information
- dependence
- 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
- 238000007405 data analysis Methods 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000008569 process Effects 0.000 claims abstract description 35
- 238000013507 mapping Methods 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 abstract description 9
- 238000006243 chemical reaction Methods 0.000 abstract description 5
- 230000015572 biosynthetic process Effects 0.000 abstract description 4
- 238000004458 analytical method Methods 0.000 description 19
- 238000010276 construction Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 102000040350 B family Human genes 0.000 description 1
- 108091072128 B family Proteins 0.000 description 1
- 244000141353 Prunus domestica Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000000700 radioactive tracer Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
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
一种数据分析作业依赖关系生成方法,包括获取包含数据处理逻辑参数以对源数据库中数据进行处理的作业生成指令,根据所述作业生成指令生成作业;根据所述作业生成指令获取源数据库基本信息;根据所述源数据库基本信息确定所述作业依赖的父结点基本信息及父结点属性;将所述作业的作业基本信息,所述父结点基本信息和所述父结点属性对应存储,生成所述作业的作业依赖关系映射信息。本申请还提供一种数据分析作业依赖关系生成系统。通过每一作业的依赖关系对应一个数据处理逻辑参数对数据转换的完整过程,实现了作业依赖关系的自动化生成与更新,提高了生成效率、降低成本且准确率高。
Description
技术领域
本发明涉及数据分析领域,特别是涉及一种数据分析作业依赖关系生成方法和系统。
背景技术
随着互联网技术的快速发展和云时代的到来,大数据分析能力已经逐渐成为企业的核心竞争力之一。高效的大数据分析架构能够帮助企业更快、更优地配置资源,从而为企业带来巨大的优势。
目前,数据分析架构是底层依赖Hadoop集群进行数据存储与计算,中间层基于Hive进行数据仓库管理,上层为用户提供数据分析作业的提交接口,每个数据分析作业通过提交接口提交。其中,针对大数据分析架构不仅要考虑单个数据分析作业的提交与执行,还需要考虑数据分析作业间的高效协同。
通常,一个复杂的数据分析需求是由数十个甚至成百上千个数据分析作业协同完成的。这些数据分析作业由不同的数据分析工程师编写并提交,彼此之间形成复杂的依赖关系(例如链状、树状或网状关系),根据这些依赖关系,作业调度引擎对这些数据分析作业进行排程,将数据分析作业按照符合依赖关系的次序进行调度执行,以实现整体数据分析需求。已知的数据分析平台,都是将依赖关系的管理交由用户即数据分析工程师负责。数据分析工程师在提交分析作业时,需要配置该数据分析作业所依赖的父作业列表,在更新数据分析作业时,也需要同时更新所配置的父作业列表。然而,该种方式存在以下问题:
1、不同数据分析作业可能由不同的数据分析师编写和提交,一个数据分析工程师的数据分析作业所依赖的父作业可能是其他数据分析工程师提交的,因此在涉及多个数据分析作业依赖关系配置时,需要通过线下沟通等方式与相应的数据分析工程师获取父作业的信息,花费大量的时间,效率低,依赖关系的配置成本高。
2、数据分析作业的依赖关系直接决定了作业的调度次序,一个大型的数据分析需求往往由数十个甚至成百上千个数据分析作业协同完成的,数据分析作业间的依赖关系异常复杂,依赖关系由人工进行配置并维护,不仅成本高,而且出错概率非常大,依赖关系一旦出错,则会导致错误的调度次序,从而产生完全错误的分析结果。
相关技术中,对于上述问题,尚无有效解决方案。
发明内容
基于此,有必要提供一种高效、成本低且准确率高数据分析作业依赖关系生成方法和系统。
一种数据分析作业依赖关系生成方法,包括:
获取包含数据处理逻辑参数以对源数据库中数据进行处理的作业生成指令,根据所述作业生成指令生成作业;
根据所述作业生成指令获取源数据库基本信息;
根据所述源数据库基本信息确定所述作业依赖的父结点基本信息及父结点属性;
将所述作业的作业基本信息,所述父结点基本信息和所述父结点属性对应存储,生成所述作业的作业依赖关系映射信息。
一种数据分析作业依赖关系生成系统,包括:
作业提交模块,用于获取包含数据处理逻辑参数以对源数据库中数据进行处理的作业生成指令,根据所述作业生成指令生成作业;
解析模块,用于根据所述作业生成指令获取源数据库基本信息;
确定模块,用于根据所述源数据库基本信息确定所述作业依赖的父结点基本信息及父结点属性;
依赖关系生成模块,用于将所述作业的作业基本信息,所述父结点基本信息和所述父结点属性对应存储,生成所述作业的作业依赖关系映射信息。
上述数据分析作业依赖关系生成方法和系统,每一作业的依赖关系映射信息包含作业基本信息、作业所依赖的父结点的父结点基本信息和父结点属性,父结点基本信息与对应父结点的源数据库相对应,从而每一作业依赖关系对应通过一个数据处理逻辑参数对源数据库的数据转换的完整过程,可以实现作业依赖关系的自动化生成与更新,完成大数据分析需求时可以将整个分析需求的逻辑分解为具有依赖关系的多个数据处理逻辑协同完成,通过作业调度引擎对对应多个数据处理逻辑的作业进行排程,将作业按照符合依赖关系的次序进行调度执行以实现整个数据分析需求。作业依赖关系的自动化生成与更新,针对多个作业协同实现大数据分析需求的场景,将以往需要用户负责的作业依赖关系生成与管理过程省去,大幅降低时间成本与人力成本,并避免了生成与维护复杂数据分析作业依赖关系时容易出现的人为失误,严格保障了数据分析作业依赖关系数据的正确性,大幅降低了数据分析过程的纠错成本。
附图说明
图1为一实施例中数据分析作业依赖关系生成方法的系统架构图;
图2为一实施例中服务器的内部结构示意图;
图3为一实施例中数据分析作业依赖关系生成方法的流程图;
图4为另一实施例中数据分析作业依赖关系生成方法的流程图;
图5为数据分析作业依赖关系树示意图;
图6为又一实施例中数据分析作业依赖关系生成方法的流程图;
图7为一实施例中数据分析作业依赖关系生成系统的结构示意图;
图8为另一实施例中数据分析作业依赖关系生成系统的结构示意图;
图9为又一实施例中数据分析作业依赖关系生成系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本发明实施例提供的数据分析作业依赖关系生成方法可应用于图1所示的系统中,如图1所示,终端100通过网络与服务器200进行通信,终端100为用户提供数据分析作业的提交接口,每个数据分析作业的作业生成指令可通过封装单条SQL或多条SQL的序列描述分析需求,终端100接收作业生成指令通过网络发送给服务器200。其次,终端100接收用户使用应用程序的使用数据并通过网络发送给服务器200进行存储以为数据分析提供数据来源。其中,应用程序包括针对不同使用者应用目的的应用软件,使用数据包括流水类数据和状态类数据,以网站应用程序为例,用户对URL的访问为流水类数据,不同用户所属归属地区为状态类数据。终端100可以为智能手机、平板电脑、个人数字助理(PDA)及个人计算机。服务器200可以为独立的物理服务器或者物理服务器集群。
图1中的服务器200的内部结构如图2所示,该服务器200包括通过系统总线链接的处理器、存储介质、内存和网络接口。其中,该服务器200的存储介质存储有操作系统、数据库和一种数据分析作业依赖关系生成系统。数据库用于存储数据,如用于数据分析的原始数据库、中间数据库、原始库信息库、作业映射信息库、作业依赖关系映射信息等。该服务器200的处理器用于提供计算和控制能力,支撑整个接入服务器200的运行。该服务器200的内存为存储介质中的数据分析作业依赖关系生成系统的运行提供环境。该服务器200的网络接口用于与外部的终端100通过网络连接通信,比如接收终端100发送的数据、作业生成指令等。
如图3所示,为本申请一实施例提供的一种数据分析作业依赖关系生成方法,该方法可应用于图2所示的服务器中,具体包括如下步骤。
步骤101,获取包含数据处理逻辑参数以对源数据库中数据进行处理的作业生成指令,根据作业生成指令生成作业。
作业是组成数据分析网络结构的结点。数据分析是指将数据按照预设的处理逻辑处理得到分析结果的过程,将数据分析视为一种数据转换,作业在数据分析的过程则起到数据转换器的角色。其中,每一作业生成指令均可用<数据输入,数据处理逻辑、数据输出>一个三元组定义,根据作业生成指令从数据输入部分读取数据,经过数据处理逻辑部分进行加工后,将处理结果送达数据输出部分。对源数据库中数据进行处理,即将源数据库作为数据输入从源数据库读取待处理数据。根据待处理数据所处数据分析网络结构中的结点位置,将源数据库分为原始数据库和中间数据库,位于数据分析网络结构的最上层且为数据分析提供数据源头的为原始数据库,位于数据分析网络结构的其它结点位置的数据库为中间数据库。每一作业与一个数据处理逻辑得到的分析结果对应,数据处理逻辑参数是指将数据由一种形式转换成另一形式所依赖的条件,本实施例中,数据处理逻辑参数是数据属性参数中的一种,如数据产生的时间。一次大型的数据分析需求可能由数十个甚至成百上千个作业协同完成,即一次大型的数据分析结果可能由数十个甚至成百上千个数据处理逻辑得到的分析结果协同完成。
在一具体的实施例中,作业生成指令通过封装单条SQL或多条SQL的序列描述分析需求,通过在SQL语法中引入源数据库、数据处理逻辑参数等生成作业的指令信息。以数据处理逻辑参数为时间参数为例,从源数据库A中获取时间参数为T的数据行数的作业生成指令示意如下:
Select count(*)as cnt from A(T)。
其中,数据处理逻辑参数也可以为其它数据属性参数,其根据不同数据分析目的而确定。如数据分析目的为根据区域进行统计数量,则可以将表示区域的数据属性参数可以作为数据处理逻辑参数以形成作业生成指令。优选的,作业生成指令提交后可以对其进行校验,判断是否包含预设格式的数据处理逻辑参数等,如果不符合要求,则提示进行检查和更正。其中,对作业生成指令的校验可以通过正则匹配函数实现。
步骤103,根据作业生成指令获取源数据库基本信息。
根据作业生成指令中的数据输入获取相应作业的源数据库基本信息。源数据库可以为原始数据库或者中间数据库,该源数据库基本信息是指能够唯一确定对应源数据库的相关信息,如源数据库的命名、编号或以通过特定的规则描述源数据库以唯一确定对应的源数据库的其它描述信息或者描述信息组合。在一具体的实施例中,源数据库基本信息是指源数据库名,通过源数据库名区别不同的源数据库并分别与各源数据库一一对应。
步骤105,根据源数据库基本信息确定作业依赖的父结点基本信息及父结点属性。
将数据分析作业依赖关系通过树结构表示。每一作业与生成相应作业的源数据库之间形成该作业依赖关系树结构中相邻两层结点的子结点和父结点。对于由数十个甚至成百上千个数据分析作业协同完成的复杂的数据分析需求所形成的复杂的依赖关系网,可以分解为多个树结构表示。作业是根据数据处理逻辑参数对源数据库中的数据进行处理,作业与生成该相应作业的源数据库之间产生依赖关系,可以确定与作业具有依赖关系的源数据库为父结点,从而确定父结点基本信息及父结点属性。父结点基本信息是指能够唯一确定对应源数据库的相关信息,如源数据库的命名、编号或以通过特定的规则描述源数据库以唯一确定对应的源数据库的其它描述信息或者描述信息组合。在一具体的实施例中,其中父结点基本信息可以与对应该父结点的源数据库基本信息相同,父结点基本信息和源数据库基本信息均为源数据库名,在另一实施例中,父结点基本信息与对应该源数据库基本信息也可以不同,如源数据库基本信息为源数据库编号,而父结点基本信息为源数据库名。结点属性包括根结点和工作结点。在树结构中位于最上层的原始数据库为根结点,其它直接或者间接依赖于所述原始数据库的中间数据库为工作结点。当作业的源数据库为原始数据库时,其对应的父结点属性为根结点,当作业的源数据库为中间数据库时,其对应的父结点属性为工作结点。
步骤107,将作业的作业基本信息,父结点基本信息和父结点属性对应存储,生成作业的作业依赖关系映射信息。
每一作业与包含生成相应作业的待处理数据的源数据库之间形成该作业依赖关系树结构中相邻两层结点的子结点和父结点,从而每一作业的依赖关系由相应作业的<作业基本信息、父结点基本信息、父结点属性>确定一条依赖关系,将作业的作业基本信息,父结点基本信息和父结点属性对应存储生成作业依赖关系映射信息。其中作业基本信息是指能够唯一确定作业所对应中间数据库的相关信息,如作业的命名、编号或以通过特定的规则描述作业以能够唯一确定作业对应的中间数据库的其它描述信息或者描述信息组合。在一具体的实施例中,作业基本信息是指作业名,通过作业名区别不同的中间数据库并分别与各中间数据库一一对应。
以上数据分析作业依赖关系生成方法,每一作业的依赖关系映射信息包含作业基本信息、作业所依赖的父结点的父结点基本信息和父结点属性,父结点基本信息与对应父结点的源数据库相对应,从而每一作业依赖关系对应通过一个数据处理逻辑参数对源数据库的数据转换的完整过程,可以实现作业依赖关系的自动化生成与更新,完成大数据分析需求时可以将整个分析需求的逻辑分解为具有依赖关系的多个数据处理逻辑协同完成,通过作业调度引擎对对应多个数据处理逻辑的作业进行排程,将作业按照符合依赖关系的次序进行调度执行以实现整个数据分析需求。作业依赖关系的自动化生成与更新,针对多个作业协同实现大数据分析需求的场景,将以往需要用户负责的作业依赖关系生成与管理过程省去,大幅降低时间成本与人力成本,并避免了生成与维护复杂数据分析作业依赖关系时容易出现的人为失误,严格保障了数据分析作业依赖关系数据的正确性,大幅降低了数据分析过程的纠错成本。
优选的,请参阅图4,为另一实施例所提供的数据分析作业依赖关系生成方法,其中,步骤101,获取对源数据库中数据进行处理的作业生成指令,根据作业生成指令生成作业的步骤之前,还包括:
步骤1011,将不同类型的数据元按照时间参数进行分区存储形成原始数据库。
步骤1013,将原始数据库基本信息进行记录,形成原始库信息库。
数据元是指组成数据库的数据单元,将不同类型的数据元按照时间参数进行分区存储形成原始数据库,以方便对实时更新的数据元进行自动记录和更新形成新的原始数据库,为不同需求的数据分析提供原始数据来源。原始数据库基本信息是指能够唯一确定对应原始数据库的相关信息,如原始数据库的命名、编号或以通过特定的规则描述原始数据库以唯一确定对应的原始数据库的其它描述信息或者描述信息组合。在一具体的实施例中,原始数据库基本信息为原始数据库名,通过原始数据库名区别不同的原始数据库并分别与各原始数据库一一对应,如原始数据库名为A(T),通过原始数据库名直接反映相应原始数据库中所包含数据的数据类型和依赖日期,以方便依赖原始数据库生成作业时可直接通过原始数据库名快速确定包含生成相应作业所需数据的原始数据库,简化数据分析过程中的数据处理逻辑,具体的,A表示相应原始数据库中所包含数据的数据类型,T表示相应原始数据库中所包含数据的依赖日期。对原始数据库基本信息进行记录形成原始数据库信息库,后续生成作业时通过数据输入部分引入作业依赖的原始数据库基本信息而从相应的原始数据库中获取生成作业所需的数据。
以一个具体网站应用为例,不同类型的数据元按照时间进行分区存储,将网站的用户访问记录和用户归属地信息两种类型的数据元按照时间实时更新分别存储在不同分区。其中,用户访问记录是指实时采集和更新的每个用户名在什么时候对什么URL进行了访问的数据,按照时间进行分区存储,每个分区记录对应时间采集和更新的用户访问记录。用A表示数据访问记录,用T表示数据依赖日期,A(T)表示在网站在时间T的用户访问记录,A(T-1)表示时间T往前一个分区的用户访问记录,A(T-n)可依次类推。A(T-2:T)表示A(T-2)到A(T)这3个分区数据组成的一个整体数据区间,即时间T-2、时间T-1和时间T这3个时间的用户访问记录,A(T-m:T-n)可依此类推。用户归属地信息是指实时采集和更新的用户名的归属地,每个用户名对应唯一归属地,在注册时或者更改资料时进行记录的扩展或者更新,按照时间进行分区存储,每个分区记录对应时间的最新全量用户名归属地数据。用B表示用户归属地信息,用T表示数据依赖日期,B(T)表示时间T时所有用户的用户归属地信息,B(T-1)表示往前一个分区的所有用户的用户归属地信息,B(T-n)可依次类推。
优选的,步骤105,根据源数据库基本信息确定作业依赖的父结点基本信息及父结点属性的步骤之前,还包括:
步骤104,获取作业生成指令中的结果输出对象,当结果输出对象为中间数据库时,将作业与中间数据库基本信息对应存储,形成作业映射信息库。
数据输出的形式通常包括输出到Hive数据仓库的数据库中存储和输出到数据库外部。输出到数据库外部不能再作为其它作业的数据输入,如直接展示到页面或者以文件形式推送到FTP服务器。将存储的作业输出的数据库称为中间数据库,中间数据库又可作为其它作业的数据输入。其中,输出到中间数据库的作业只能输出到唯一一个中间数据库,并且该中间数据库也只能被该作业写入,即作业与中间数据库之间存在一一对应的映射关系,而每一作业对应依赖的源数据库可包含一个或者多个原始数据库或者中间数据库。作业生成指令对作业的结果输出对象进行指定,如,用JSON结构体中的Output_mid_table字段记录中间数据库基本信息以对作业对应输出的中间数据库进行显示指定,若Output_mid_table字段为空值,则表示作业输出到数据库外部。根据数据输出的形式不同,作业在数据分析网络结构中的结点位置不同,输出到中间数据库的作业为中间作业结点,输出到数据库外部的作业为叶子作业结点。
将作业与中间数据库基本信息对应存储形成作业映射信息库,当作业所对应的中间数据库中包含的数据作为另一作业的输入时,可通过该另一作业的作业生成指令中以预设格式包含相应中间数据库基本信息来确定作业与作业之间的依赖关系。中间数据库基本信息是指能够唯一确定对应中间数据库的相关信息,如中间数据库的命名、编号或以通过特定的规则描述中间数据库以唯一确定对应的中间数据库的其它描述信息或者描述信息组合。在一具体的实施例中,中间数据库基本信息为中间数据库名,通过中间数据库名区别不同的中间数据库并分别与各中间数据库一一对应,如中间数据库名为a(T),通过中间数据库名直接反映相应中间数据库所包含数据的数据类型和依赖日期,以方便将该中间数据库作为源数据库生成作业时通过中间数据库名快速确定包含生成相应作业所需数据的中间数据库,简化数据分析过程中的数据处理逻辑,具体的,a表示相应中间数据库中所包含数据的数据类型,T表示相应中间数据库中所包含数据的依赖日期。
以一个具体网站应用为例,原始数据库A(T)表示在网站在时间T的用户访问记录,原始数据库B(T)表示网站在时间T的用户归属地信息,作业1需要完成的分析需求为“根据网站用户访问记录以及归属地信息,统计每天每个地区的用户访问量,并写入到各地区访问量统计表中”,则作业1的数据生成指令的数据输入为“原始数据库A(T)和B(T)”,数据处理逻辑为“统计每天每个地区的用户访问量”,数据输出为“各地区访问量统计表”,作业1的结果输出对象为各地区访问量统计表,用中间数据库a表示,该作业1的数据生成指令示意如下:
将该数据生成指令中的时间参数T具体化,即得到作业实例,如,作业1(T)对应的分析需求为统计日期T每个地区的用户访问量,作业1(T-1)为统计日期T头一天的每个地区的用户访问量,作业1(T-n)的含义依次类推。对于中间作业结点,每个作业的输出数据存储至对应中间数据库的对应分区,如,作业1(T)的执行结果数据存储至中间数据库a(T)这个分区中,作业1(T-1)的执行结果数据存储至中间数据库a(T-1)这个分区中,依次类推。将作业1(T)与中间数据库a(T)对应存储,将作业1(T-1)与中间数据库a(T-1)对应存储。
为了更好的说明作业与原始数据库和中间数据库之间的依赖关系而形成依赖关系树的情况,如图5所示,示意性表示根据原始数据库A(T)、B(T)、C(T-1)、D(T)生成作业1(T-1)、作业1(T)、作业2(T)、作业3(T)及作业4(T)的一种情况,其中C(T-1)、D(T)表示其它类型数据元按照时间参数进行分区存储形成的原始数据库。如图5中,根据作业生成指令需要读取原始数据库中的数据进行处理生成的作业,会对原始数据库形成依赖,只依赖于原始数据库而不依赖于中间数据的作业,记其深度为1,可用Depth(作业1)=1表示。作业1(T-1)、作业1(T)、作业2(T)的深度均为1。对于深度为1的作业,可能以1~N个原始数据库作为父结点,N为大于1的正整数。作业对原始数据库或者中间数据库的依赖关系可用SupNodes表示,如作业1(T)对原始数据库A(T)和B(T)形成依赖关系可表示为SupNodes(作业1(T))={原始数据库A(T),原始数据库B(T)},通过设置作业生成指令中的数据逻辑处理参数,可以形成依赖关系递推的多个作业结点,如设置数据处理逻辑参数引入时间参数T,均通过带时间参数T的源数据库基本信息来描述数据源对象,则SupNodes(作业1(T-n))={原始数据库A(T-n),原始数据库B(T-n)}成立。根据作业生成指令需要读取中间数据库中的数据进行处理生成的作业,会对中间数据库形成依赖,当中间数据库存储的数据由其它作业生成时,会对其它作业形成依赖,作业即需要读取原始数据库的数据也需要读取中间数据库的数据,会对原始数据库和其它中间数据库同时形成依赖,其父结点的数量可以为1~N个,N为正整数,深度为作业的所有父结点中深度的最大值加1。如图5中,作业3(T)对作业1(T-1)和作业2(T)形成依赖关系,作业4(T)对作业3(T)和原始数据库D(T)形成依赖关系。SupNodes(作业3(T))={作业1(T-1),作业2(T)},Depth(作业3(T))=Depth(作业1(T-1))+1=2;SupNodes(作业4(T))={作业3(T),作业2(T)},Depth(作业4(T))=Depth(作业3(T))+1=3。
优选的,步骤105,根据源数据库基本信息确定作业的父结点基本信息及父结点属性的步骤包括:
步骤1051,查询原始库信息库内是否存在与源数据库基本信息对应的原始数据库基本信息及作业映射信息库是否存在与源数据库基本信息对应的中间数据库基本信息;
步骤1053,当原始库信息库内存在与源数据库基本信息对应的数据库基本信息时,确定作业的父结点基本信息为对应的原始数据库基本信息,父结点属性为根结点;
步骤1055,当作业映射信息库存在与源数据库基本信息对应的中间数据库基本信息时,确定作业的父结点基本信息为与对应的中间数据库对应的作业的作业基本信息,父结点属性为工作结点。
通过查询原始库信息库和作业映射信息库,判断作业所依赖的源数据库为原始数据库或者中间数据库,以确定作业的父结点基本信息及父结点属性。每一作业与相应源数据库之间形成作业依赖关系树结构中相邻两层结点的子结点和父结点,通过将每一作业与对应的父节点基本信息和父节点属性对应存储并自动生成作业依赖关系,在数据分析过程中可通过作业调度引擎对作业按照符合依赖关系的次序直接进行调度执行。当作业所依赖的源数据库为多个时,即依赖多个原始数据库和中间数据库生成一个作业时,则根据每个源数据库基本信息确定该作业的父结点基本信息和父结点属性,形成该作业的多条依赖关系。以一个具体网站应用为例,原始数据库A(T)表示在网站在时间T的用户访问记录,原始数据库B(T)表示网站在时间T的用户归属地信息,作业1需要完成的分析需求为“根据网站用户访问记录以及归属地信息,统计每天每个地区的用户访问量,并写入到各地区访问量统计表中”,则作业1的数据生成指令的数据输入包括原始数据库A(T)和B(T)这两个源数据库,作业1包括<作业1,B(T),根结点>、<作业1,A(T),根结点>两条依赖关系。
具体实施时,查询原始库信息库内是否存在与源数据库基本信息对应的原始数据库基本信息与查询作业映射信息库是否存在与源数据库基本信息对应的中间数据库基本信息可以分两个步骤进行,其中两个步骤的顺序可以根据实际情况进行确定。
请参阅图6,在另一实施例中,步骤107,将作业的作业基本信息,父结点基本信息和父结点属性对应存储,生成作业的作业依赖关系映射信息的步骤包括:
步骤1071,将作业的作业基本信息,父结点基本信息和父结点属性对应存储,形成以分别与源数据库基本信息对应的多条依赖关系为元素的集合,其中每一条依赖关系包括作业的作业基本信息、与源数据库基本信息对应的父结点基本信息和父结点属性;
步骤1072,判断集合中是否存在循环依赖;
步骤1073,当集合中不存在循环依赖时,将所述集合作为所述作业的作业依赖关系映射信息。
根据生成作业所依赖的源数据库的数量可分别确定对应作业的多条依赖关系,以多条依赖关系为元素形成集合判断是否存在循环依赖,当存在循环依赖时,表明作业调度引擎对作业按照其依赖关系进行调度执行时会产生错误,因此该作业的依赖关系中存在错误,当不存在循环依赖时,表明该作业的依赖关系可以被正常调度执行,将集合中多条依赖关系作为该作业的依赖关系映射信息进行存储或更新。检测是否存在循环依赖的基本原则是:对集合中的元素进行遍历,判断是否存在至少一条依赖关系根据其作业基本信息、父结点基本信息和父结点属性可以确定作业所对应的中间数据库与父结点所对应的源数据库是同一个数据库,如果是,则表明存在循环依赖。如,当至少一条依赖关系满足以下条件时表示存在循环依赖:
父节点类型=“子结点”&&作业名=父节点名&&依赖日期=T;
上述条件应当理解为,一条依赖关系同时满足父结点类型为子结点、且作业基本信息与父结点基本信息相同、且作业基本信息对应的中间数据库中数据的依赖日期与父结点对应的源数据库中数据的依赖日期相同。循环依赖的判断不限于本实施例所提供的条件,在本实施例所提供的检测是否存在循环依赖的基本原则的基础上,也可以通过已知的其它方式实现。
优选的,以上实施例所提供的数据分析作业依赖关系生成方法中,原始数据库、中间数据库中数据的存储是以数据表的形式进行存储,即原始数据库为原始数据表,将不同类型的数据元根据产生日期分别对应存储在对应分区的原始数据表中;中间数据库为中间数据表,将根据不同作业生成指令得到的作业所包含数据以表格的形式记载于对应的中间数据表中。优选的,作为另一可选的实施例,以上实施例所提供的数据分析作业依赖关系生成方法中,原始库信息库、作业映射信息库中数据的存储也是以数据表的形式进行存储,即将所有原始数据库基本信息记载于原始库信息表中;作业映射信息库为作业映射信息表,将所有作业与中间数据库基本信息的映射关系以表格的形式记载于作业映射信息表中。通过数据表的形式记录数据,可以统一数据存储的格式,方便数据的调用以及导出。
请参阅图7,在一个实施例中,提供了一种数据分析作业依赖关系生成系统,该系统包括作业提交模块10、解析模块30、确定模块50以及依赖关系生成模块70。作业提交模块10用于获取包含数据处理逻辑参数以对源数据库中数据进行处理的作业生成指令,根据作业生成指令生成作业。解析模块30用于根据作业生成指令获取源数据库基本信息。确定模块50用于根据源数据库基本信息确定作业依赖的父结点基本信息及父结点属性。依赖关系生成模块70用于将作业的作业基本信息,父结点基本信息和父结点属性对应存储,生成作业的作业依赖关系映射信息。
请参阅图8,该系统还包括数据存储模块11和原始库记录模块12。数据存储模块11用于将不同类型的数据元按照时间进行分区存储形成原始数据库。原始库记录模块12用于将原始数据库基本信息进行记录,形成原始库信息库。
优选的,该系统还包括作业记录模块40。作业记录模块40用于获取所述作业生成指令中的结果输出对象,当结果输出对象为中间数据库时,将作业与中间数据库基本信息对应存储,形成作业映射信息库。
优选的,确定模块50包括查询单元51、第一确定单元52和第二确定单元53。查询单元51用于查询原始库信息库内是否存在与源数据库基本信息对应的原始数据库基本信息及作业映射信息库是否存在与源数据库基本信息对应的中间数据库基本信息。第一确定单元52用于当原始库信息库内存在与源数据库基本信息对应的原始数据库基本信息时,确定作业的父结点基本信息为对应的原始数据库基本信息,父结点属性为根结点。第二确定单元53用于当作业映射信息库存在与源数据库基本信息对应的中间数据库基本信息时,确定作业的父结点基本信息为与对应的中间数据库对应的作业的作业基本信息,父结点属性为工作结点。
请参阅图9,依赖关系生成模块70包括存储单元71、判断单元73及依赖关系生成单元75。存储单元71用于将作业的作业基本信息,父结点基本信息和父结点属性对应存储,形成以分别与源数据库基本信息对应的多条依赖关系为元素的集合,其中每一条依赖关系包括作业的作业基本信息、与源数据库基本信息对应的父结点基本信息和父结点属性。判断单元73用于判断集合中是否存在循环依赖。依赖关系生成单元75用于当集合中不存在循环依赖时,将集合作为所述作业的作业依赖关系映射信息。
上述数据分析作业依赖关系生成系统,每一作业的依赖关系映射信息包含作业基本信息、作业所依赖的父结点的父结点基本信息和父结点属性,父结点基本信息与对应父结点的源数据库相对应,从而每一作业依赖关系对应通过一个数据处理逻辑参数对源数据库的数据转换的完整过程,可以实现作业依赖关系的自动化生成与更新,完成大数据分析需求时可以将整个分析需求的逻辑分解为具有依赖关系的多个数据处理逻辑协同完成,通过作业调度引擎对对应多个数据处理逻辑的作业进行排程,将作业按照符合依赖关系的次序进行调度执行以实现整个数据分析需求。作业依赖关系的自动化生成与更新,针对多个作业协同实现大数据分析需求的场景,将以往需要用户负责的作业依赖关系生成与管理过程省去,大幅降低时间成本与人力成本,并避免了生成与维护复杂数据分析作业依赖关系时容易出现的人为失误,严格保障了数据分析作业依赖关系数据的正确性,大幅降低了数据分析过程的纠错成本。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述实施例仅库达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (10)
1.一种数据分析作业依赖关系生成方法,包括:
获取包含数据处理逻辑参数以对源数据库中数据进行处理的作业生成指令,根据所述作业生成指令生成作业;
根据所述作业生成指令获取源数据库基本信息;
根据所述源数据库基本信息确定所述作业依赖的父结点基本信息及父结点属性;
将所述作业的作业基本信息,所述父结点基本信息和所述父结点属性对应存储,生成所述作业的作业依赖关系映射信息。
2.如权利要求1所述的数据分析作业依赖关系生成方法,其特征在于:所述获取对源数据库中数据进行处理的作业生成指令,根据所述作业生成指令生成作业的步骤之前,还包括:
将不同类型的数据元按照时间参数进行分区存储形成原始数据库;
将原始数据库基本信息进行记录,形成原始库信息库。
3.如权利要求2所述的数据分析作业依赖关系生成方法,其特征在于:所述根据所述源数据库基本信息确定所述作业依赖的父结点基本信息及父结点属性的步骤之前,还包括:
获取所述作业生成指令中的结果输出对象,当所述结果输出对象为中间数据库时,将所述作业与中间数据库基本信息对应存储,形成作业映射信息库。
4.如权利要求3所述的数据分析作业依赖关系生成方法,其特征在于:所述根据所述源数据库基本信息确定所述作业的父结点基本信息及父结点属性的步骤包括:
查询所述原始库信息库内是否存在与所述源数据库基本信息对应的原始数据库基本信息及所述作业映射信息库是否存在与所述源数据库基本信息对应的中间数据库基本信息;
当所述原始库信息库内存在与所述源数据库基本信息对应的原始数据库基本信息时,确定所述作业的父结点基本信息为对应的所述原始数据库基本信息,父结点属性为根结点;
当所述作业映射信息库存在与所述源数据库基本信息对应的中间数据库基本信息时,确定所述作业的父结点基本信息为与对应的所述中间数据库对应的作业的作业基本信息,父结点属性为工作结点。
5.如权利要求1所述的数据分析作业依赖关系生成方法,其特征在于:所述将所述作业的作业基本信息,所述父结点基本信息和所述父结点属性对应存储,生成所述作业的作业依赖关系映射信息的步骤包括:
将所述作业的作业基本信息,所述父结点基本信息和所述父结点属性对应存储,形成以分别与所述源数据库基本信息对应的多条依赖关系为元素的集合,其中每一条依赖关系包括所述作业的作业基本信息、与源数据库基本信息对应的父结点基本信息和父结点属性;
判断所述集合中是否存在循环依赖;
当所述集合中不存在循环依赖时,将所述集合作为所述作业的作业依赖关系映射信息。
6.一种数据分析作业依赖关系生成系统,包括:
作业提交模块,用于获取包含数据处理逻辑参数以对源数据库中数据进行处理的作业生成指令,根据所述作业生成指令生成作业;
解析模块,用于根据所述作业生成指令获取源数据库基本信息;
确定模块,用于根据所述源数据库基本信息确定所述作业依赖的父结点基本信息及父结点属性;
依赖关系生成模块,用于将所述作业的作业基本信息,所述父结点基本信息和所述父结点属性对应存储,生成所述作业的作业依赖关系映射信息。
7.如权利要求6所述的数据分析作业依赖关系生成系统,其特征在于:还包括:
数据存储模块,用于将不同类型的数据元按照时间进行分区存储形成原始数据库;
原始库记录模块,用于将原始数据库基本信息进行记录,形成原始库信息库。
8.如权利要求7所述的数据分析作业依赖关系生成系统,其特征在于:还包括:
作业记录模块,获取所述作业生成指令中的结果输出对象,当所述结果输出对象为中间数据库时,将所述作业与中间数据库基本信息对应存储,形成作业映射信息库。
9.如权利要求8所述的数据分析作业依赖关系生成系统,其特征在于:所述确定模块包括:
查询单元,用于查询所述原始库信息库内是否存在与所述源数据库基本信息对应的原始数据库基本信息及所述作业映射信息库是否存在与所述源数据库基本信息对应的中间数据库基本信息;
第一确定单元,用于当所述原始库信息库内存在与所述源数据库基本信息对应的原始数据库基本信息时,确定所述作业的父结点基本信息为对应的所述原始数据库基本信息,父结点属性为根结点;
第二确定单元,用于当所述作业映射信息库存在与所述源数据库基本信息对应的中间数据库基本信息时,确定所述作业的父结点基本信息为与对应的所述中间数据库对应的作业的作业基本信息,父结点属性为工作结点。
10.如权利要求6所述的数据分析作业依赖关系生成系统,其特征在于:所述依赖关系生成模块包括:
存储单元,用于将所述作业的作业基本信息,所述父结点基本信息和所述父结点属性对应存储,形成以分别与所述源数据库基本信息对应的多条依赖关系为元素的集合,其中每一条依赖关系包括所述作业的作业基本信息、与源数据库基本信息对应的父结点基本信息和父结点属性;
判断单元,用于判断所述集合中是否存在循环依赖;
依赖关系生成单元,用于当所述集合中不存在循环依赖时,将所述集合作为所述作业的作业依赖关系映射信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610860027.7A CN107870949B (zh) | 2016-09-28 | 2016-09-28 | 数据分析作业依赖关系生成方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610860027.7A CN107870949B (zh) | 2016-09-28 | 2016-09-28 | 数据分析作业依赖关系生成方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107870949A true CN107870949A (zh) | 2018-04-03 |
CN107870949B CN107870949B (zh) | 2021-09-07 |
Family
ID=61761872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610860027.7A Active CN107870949B (zh) | 2016-09-28 | 2016-09-28 | 数据分析作业依赖关系生成方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107870949B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110362562A (zh) * | 2019-07-16 | 2019-10-22 | 中国工商银行股份有限公司 | 大数据抽取样本数据的方法及系统 |
CN111915279A (zh) * | 2020-08-13 | 2020-11-10 | 中国工商银行股份有限公司 | 作业数据流审核方法、装置及系统 |
CN112286506A (zh) * | 2020-10-30 | 2021-01-29 | 杭州海康威视数字技术股份有限公司 | 数据关联方法、装置、服务器及存储介质 |
CN112506957A (zh) * | 2020-12-18 | 2021-03-16 | 杭州数梦工场科技有限公司 | 工作流依赖关系的确定方法及装置 |
CN112650657A (zh) * | 2019-10-10 | 2021-04-13 | 浙江大搜车软件技术有限公司 | 基于流计算的业务系统的分析方法及装置 |
CN112463344B (zh) * | 2020-12-17 | 2023-12-08 | 中国农业银行股份有限公司 | 一种数据分析方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908979A (zh) * | 2010-08-19 | 2010-12-08 | 中兴通讯股份有限公司 | 一种网管管理资源的方法及装置 |
CN102053972A (zh) * | 2009-10-27 | 2011-05-11 | 阿里巴巴集团控股有限公司 | Etl模块间父任务关系的获取方法和装置 |
CN103077085A (zh) * | 2013-01-09 | 2013-05-01 | 苏州亿倍信息技术有限公司 | 一种任务分配的方法及系统 |
CN103095588A (zh) * | 2013-01-17 | 2013-05-08 | 清华大学 | 基于多生成树的无死锁自适应路由方法 |
CN103336720A (zh) * | 2013-06-17 | 2013-10-02 | 湖南大学 | 一种基于slurm的具有数据依赖关系的作业执行方法 |
CN105045832A (zh) * | 2015-06-30 | 2015-11-11 | 北京奇艺世纪科技有限公司 | 一种数据采集方法及装置 |
CN105740424A (zh) * | 2016-01-29 | 2016-07-06 | 湖南大学 | 一种基于 Spark 平台的高效率文本分类方法 |
-
2016
- 2016-09-28 CN CN201610860027.7A patent/CN107870949B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053972A (zh) * | 2009-10-27 | 2011-05-11 | 阿里巴巴集团控股有限公司 | Etl模块间父任务关系的获取方法和装置 |
CN101908979A (zh) * | 2010-08-19 | 2010-12-08 | 中兴通讯股份有限公司 | 一种网管管理资源的方法及装置 |
CN103077085A (zh) * | 2013-01-09 | 2013-05-01 | 苏州亿倍信息技术有限公司 | 一种任务分配的方法及系统 |
CN103095588A (zh) * | 2013-01-17 | 2013-05-08 | 清华大学 | 基于多生成树的无死锁自适应路由方法 |
CN103336720A (zh) * | 2013-06-17 | 2013-10-02 | 湖南大学 | 一种基于slurm的具有数据依赖关系的作业执行方法 |
CN105045832A (zh) * | 2015-06-30 | 2015-11-11 | 北京奇艺世纪科技有限公司 | 一种数据采集方法及装置 |
CN105740424A (zh) * | 2016-01-29 | 2016-07-06 | 湖南大学 | 一种基于 Spark 平台的高效率文本分类方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110362562A (zh) * | 2019-07-16 | 2019-10-22 | 中国工商银行股份有限公司 | 大数据抽取样本数据的方法及系统 |
CN112650657A (zh) * | 2019-10-10 | 2021-04-13 | 浙江大搜车软件技术有限公司 | 基于流计算的业务系统的分析方法及装置 |
CN111915279A (zh) * | 2020-08-13 | 2020-11-10 | 中国工商银行股份有限公司 | 作业数据流审核方法、装置及系统 |
CN112286506A (zh) * | 2020-10-30 | 2021-01-29 | 杭州海康威视数字技术股份有限公司 | 数据关联方法、装置、服务器及存储介质 |
CN112286506B (zh) * | 2020-10-30 | 2024-05-07 | 杭州海康威视数字技术股份有限公司 | 数据关联方法、装置、服务器及存储介质 |
CN112463344B (zh) * | 2020-12-17 | 2023-12-08 | 中国农业银行股份有限公司 | 一种数据分析方法及装置 |
CN112506957A (zh) * | 2020-12-18 | 2021-03-16 | 杭州数梦工场科技有限公司 | 工作流依赖关系的确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107870949B (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870949A (zh) | 数据分析作业依赖关系生成方法和系统 | |
JP7419244B2 (ja) | 例によるetlルールの学習 | |
CN106980669B (zh) | 一种数据的存储、获取方法及装置 | |
CN104205039B (zh) | 使用兴趣驱动数据管线进行数据分析的兴趣驱动商业智能系统和方法 | |
CN110309196A (zh) | 区块链数据存储和查询方法、装置、设备及存储介质 | |
CN110334274A (zh) | 信息推送方法、装置、计算机设备和存储介质 | |
US20130166552A1 (en) | Systems and methods for merging source records in accordance with survivorship rules | |
CN109656963B (zh) | 元数据获取方法、装置、设备及计算机可读存储介质 | |
US20210256079A1 (en) | Adapting database queries for data virtualization over combined database stores | |
CN111324577B (zh) | 一种Yml文件读写的方法及装置 | |
CN107247799A (zh) | 兼容多种大数据存储的数据处理方法、系统及其建模方法 | |
CN106372190A (zh) | 实时olap查询方法和装置 | |
US20170371922A1 (en) | Database Management for Mobile Devices | |
US11461333B2 (en) | Vertical union of feature-based datasets | |
CN102855332A (zh) | 一种基于图形数据库的图形配置管理数据库 | |
CN106503214A (zh) | 一种基于Redis内存数据库的复杂规则匹配方法 | |
US20230067182A1 (en) | Data Processing Device and Method, and Computer Readable Storage Medium | |
CN107181729B (zh) | 在多租户云环境中的数据加密 | |
CN108140022B (zh) | 数据查询方法和数据库系统 | |
Fosić et al. | Graph database approach for data storing, presentation and manipulation | |
CN113468163B (zh) | 一种多源异构公安大数据智能对接引擎系统 | |
Alyas et al. | Query optimization framework for graph database in cloud dew environment | |
CN115982177B (zh) | 一种基于树形维度的数据归集的方法、装置、设备及介质 | |
JP2010072876A (ja) | ルール作成プログラム、ルール作成方法及びルール作成装置 | |
CN114328486A (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 | ||
TG01 | Patent term adjustment |