掌桥专利:专业的专利平台
掌桥专利
首页

一种面向标识解析数据的数据仓库任务调度方法和系统

文献发布时间:2023-06-19 11:26:00


一种面向标识解析数据的数据仓库任务调度方法和系统

技术领域

本发明属于信息技术领域,具体涉及一种面向标识解析数据的数据仓库任务调度方法和系统。

背景技术

标识解析数据,既包括传统互联网DNS体系在运行过程中产生的解析数据,也包括工业互联网等新兴网络形态的标识体系产生的解析数据。在通过数据仓库对大规模的标识解析数据进行有效管理和深度分析挖掘的过程中,需要对数据仓库的数据任务进行科学有效地调度。

数据仓库的数据任务具有下面的特点:1)数据任务种类众多。包括抽取、转化、清洗、备份、统计分析等。2)数据量巨大,数据任务量巨大。数据多源性高,数据并发连接多,数据种类多,数据持续性长,数据关联性高,统计指标众多,数据任务的量巨大。3)依赖关系复杂。有周期依赖又有顺序依赖,也有自己依赖自己,对掌握整体数据的拓扑关系的需求很强烈。4)对数据修复的要求比较高。

当前现有的一些通用调度方案,例如Oozie,Azkaban和大多数公有云上的workflow服务,都是DAG工作流类调度系统。Oozie和Azkaban采取的这两种方式,从系统设计的角度来说,对外部系统的关联和依赖比较小,是一个相对独立封闭的环境,演进起来比较自由。但这两个系统最大的问题是,周边的运维使用工具太过缺乏,易用性很差。作为工具使用可以,但是做为平台服务,缺失了太多内容,工作流的定义和维护成本太高。

发明内容

本发明针对上述问题,提供一种轻量级、易用性的尤其适用于标识解析数据的数据任务特点的调度方法和系统,支持更加丰富的依赖关系,以满足特定的数据分析场景,并引入数据质量检查环节,降低人工运维成本。

本发明采用的技术方案如下:

一种面向标识解析数据的数据仓库任务调度方法,包括以下步骤:

配置标识解析数据的数据任务的元数据信息;

根据元数据信息解析生成执行任务流,执行任务流中的执行任务包含数据任务和数据时间;

启动并运行执行任务流中满足执行条件的执行任务;

监控执行任务的运行状态,并根据运行状态进行相应的处理;

对执行任务流的运行结果进行报告。

进一步地,所述元数据信息包括:数据周期,依赖的数据任务,依赖方式,超时时间,超时处理方案,执行命令,任务过期时间。

进一步地,所述依赖方式包括:

自依赖:数据任务的当前数据周期的统计结果依赖自己上一个数据周期的统计结果;

顺序依赖:两个不同的数据任务A和B,数据周期相同,B的统计结果依赖A的统计结果;

周期依赖:两个不同的数据任务A和B,B的统计结果依赖A的多个周期的统计结果;

混合依赖:包含自依赖、顺序依赖、周期依赖中的至少两种。

进一步地,所述根据数据任务的元数据信息,解析生成执行任务流,包括:

采取轮询的方式,不断的生成最新的基于执行任务的任务流;

对于新插入的任务,及时合并到最新的任务流中;

如果需要启动历史数据修复,则将与错误的历史数据相关的首个执行任务置为待执行的状态,从而动态生成包含该首个执行任务的所有下游任务的整个执行任务流。

进一步地,所述监控执行任务的运行状态,并根据运行状态进行相应的处理,包括:

实时监控执行任务是否运行超时,是否失败,是否需要报警;如果超时,则根据对应数据任务的配置信息,或者将执行任务杀掉并重启,或者继续执行同时发出报警邮件。

进一步地,所述执行任务流中包含数据质量检查任务,所述数据质量检查任务完成以下操作:

统计最近若干个数据周期的数据结果,检查当前统计结果是否波动很大,波动超过设定的阈值则认定为疑似异常;

统计最近若干个数据周期的数据量,检查数据量是否波动很大,波动超过设定的阈值则认定为疑似异常;

检查数据结果中每个字段有无为空的情况,如果被检查数据不应该出现空值,则出现空说明数据异常;

检查数据结果中每个字段有无超过预期大小的情况,如果出现超过预期大小的情况说明数据异常。

进一步地,所述对执行任务流的运行结果进行报告,包括两个层面的报告:一是对整个执行任务流的运行结果的报告,二是对单个执行任务的运行结果的报告。

一种采用上述方法的面向标识解析数据的数据仓库任务调度系统,其包括:

元数据信息管理模块,用于配置标识解析数据的数据任务的元数据信息;

调度模块,用于根据元数据信息解析生成执行任务流,执行任务流中的执行任务包含数据任务和数据时间;

执行模块,用于启动并运行执行任务流中满足执行条件的执行任务;

监控模块,监控执行任务的运行状态,并根据运行状态进行相应的处理;

运行报告模块,对执行任务流的运行结果进行报告。

本发明的关键点是:

1)执行任务的重新定义:基于标识解析数据的数据任务有个关键因素是数据时间dt,数据时间是分析和统计标识解析数据指标的重要维度。执行任务=数据任务+数据时间dt,数据时间dt是可变参数,可以指定任意一天/小时/月等,执行任务是数据时间dt确定取值后的数据任务,参与调度的元素是执行任务而不是数据任务。

2)支持数据任务自依赖方式。任务自依赖指的是有些数据任务,要统计当前数据周期的结果,需要依赖自己上一个数据周期的结果。

3)数据质量检查任务纳入调度系统,数据质量检查任务具备自己的特有特性,有三种任务结果:完成(done),错误(error),待定(uncertain)。对于待定的情况,可以选择继续执行下游任务,也可以终止下游任务。

由于采用了以上的方案,本发明具有以下优点:

1)区分数据任务和执行任务,执行任务=数据任务+数据时间,调度系统是针对执行任务的调度,便于更加灵活的调度业务逻辑复杂的数据任务。

2)提供了丰富的任务依赖关系,能够满足数据仓库建设中各种任务依赖情况。

3)将数据质量检查任务纳入调度DAG工作流。

附图说明

图1是实施例中执行任务流的有向无环图示意图。

图2是实施例中任务调度系统的任务调度流程图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。

本发明的一实施例提出的一种面向数据仓库的数据任务调度系统,包括以下模块或子系统。

1)元数据信息管理模块(meta):该模块主要通过服务接口的方式,提供给用户配置标识解析数据的数据任务的元数据信息的功能,形成任务配置表。任务元数据信息包括下面几个方面:

a)配置数据任务的元数据信息的接口:

元数据信息包括,数据周期(5min,10min,小时,天,周,月,半年,年),依赖的数据任务(job),依赖方式,超时时间,超时处理方案(杀掉任务,或者继续等待,是否发报警),执行命令,任务过期时间。

数据周期:数据周期是指数据指标的周期,数据周期可以是:分钟,小时,天,周,季度,半年,年。

依赖的数据任务:“依赖”是指,如果数据任务A的统计结果需要基于数据任务B的结果,则A依赖B。

依赖方式:依赖方式是指数据任务对上游数据任务的依赖需求。包括以下方式:

自依赖:自依赖是指数据任务当前数据周期的统计结果依赖自己上一个数据周期的统计结果,表示为A_dt-1--->A_dt,其中A_dt-1表示上一个数据周期的数据任务A,A_dt表示当前数据周期的数据任务A,--->表示箭头右边的数据任务依赖箭头左边的数据任务。

顺序依赖:顺序依赖是指两个不同的数据任务A和B,数据周期相同,数据任务B的统计结果依赖数据任务A的统计结果,表示为A_dt--->B_dt,其中A_dt表示当前数据周期的数据任务A,B_dt表示当前数据周期的数据任务B。

周期依赖:周期依赖是指两个不同的数据任务A和B,B的统计结果依赖A的多个周期的统计结果,比如B的每天的统计结果依赖于A的前七天的统计结果,表示为A_dt-n~A_dt-->B_dt,其中A_dt-n~A_dt表示当前数据周期以及往前n个数据周期,是n个任务的组合。

混合依赖:混合依赖是指包含前面所说的自依赖,顺序依赖,周期依赖中的至少2种,表示为A_dt-n~A_dt,B_dt--->C_dt,其中其中A_dt-n~A_dt表示当前数据周期以及往前n个数据周期,是n个任务的组合,B_dt表示当前数据周期的数据任务B,C_dt是当前数据周期的数据任务C。

任务过期时间:对于定义了最晚运行时间的任务,认为是过期未执行的任务,对于定义了最晚成功结束的时间的任务,认为是过期未成功的任务。比如有些任务生成的数据需要每天早晨8点呈现在审核者面前,则需要设置过期未成功的时间,及时干预以确保数据按时生成。

b)检查任务上下游的接口:

支持2种,只显示任务直接上游和任务直接下游,或者显示所在的整个任务流。

c)修改任务运行状态的接口:

如果遇到极端的情况,整个调度系统崩溃,通过强行修改任务运行状态,重新纳入调度执行。

2)调度模块(scheduler):

根据配置文件提供的数据任务的元数据信息,解析生成当下的执行任务流,形成任务执行计划表。执行任务=数据任务+数据时间。调度模块采取轮询的方式,不断的生成最新的基于执行任务的任务流;对于新插入的任务,也可以及时合并到最新的任务流中;如果需要启动历史数据修复(即发现历史数据有错误需进行修复),可以将与错误的历史数据相关的首个执行任务置为待执行(todo)状态,即可动态生成包含该首个执行任务的所有下游任务的整个执行任务流。

其中,配置文件的格式如下:

数据任务名称=”A”

数据周期=”天”

执行任务流实际上是个有向无环图,如图1所示。

3)执行模块(executor):

如果某个执行任务满足执行条件,即状态为待执行(todo)状态,则由执行模块进行启动执行任务,并记录执行任务的开始时间start_time,状态设置为运行(running)。其中满足执行条件是指,如果任务配置表里设置该任务是某个时间点启动,则当系统时间为启动时间点时就为满足执行条件,如果任务配置表里设置的该任务还有上游依赖任务,则所有上游任务的状态都是完成(done)时就为满足执行条件。对于监控模块扫描发现已经超时,需要杀掉(kill)的执行任务,也通过执行模块对任务进行杀掉,或者是杀掉并且重启任务。对于成功结束的执行任务,执行模块负责将任务状态修改为完成(done),并且记录结束时间end_time。执行模块也负责把所有运行的任务执行日志记录入任务执行记录表,用于问题查找和其他分析。

4)监控模块(monitor):

扫描每个运行的执行任务是不是超时,如果超时则根据对应数据任务的配置信息,或者通知执行模块将执行任务杀掉并重启,或者通知运行报告模块发出报警邮件。对于那些设置了最晚执行时间或者最晚完成时间的执行任务,扫描其完成情况,超时则调用运行报告模块发出报警邮件。

5)运行报告模块(reporter):

该模块属于被其他模块调用执行的模块,包括2个层面的邮件报告和短信报警。一个层面是整个工作流的整体运行状态的汇总报告,这个层面的报告一般是发给调度系统的运维人员。另外一个层面是单个任务级的运行状态,发给对应的负责人。分级报告有利于既能做到及时报告和发现问题,又能避免邮件过多,漏掉发现问题。运行报告模块中,有默认的报告模板,用户定义统计方式,如果不定义,则报告邮件中没有这部分内容,同时也可以复用数据检查任务的结果。任务运行状态报告的示例如表1所示。

表1.任务运行状态报告

6)数据质量检查任务(数据质量检查插件):

本发明的执行任务流中可以包含数据质量检查任务,也可以不包含数据质量检查任务。数据质量检查任务具备自己的特有特性,有三种任务结果:完成(done),错误(error),待定(uncertain)。对于待定的情况,可以选择继续执行下游任务,也可以终止下游任务。数据质量检查任务可以由开发人员自己开发,同时本调度系统也支持数据质量检查插件,该插件是通过抽取整理一些共性的数据质量检查方式,提供一些通用函数或者方法,供数据开发人员直接配置生成数据质量检查任务。而数据质量检查任务可以直接配置到任务依赖中,作为数据真正就绪的最后一道关卡。

本实施例的采用上述各模块实现的任务调度方法的流程如图2所示。其步骤描述如下:

1)元数据信息管理模块meta,收集记录数据任务的元数据信息,形成任务配置表。同时会对是否存在数据任务依赖环进行判断。

2)调度模块scheduler以轮询的方式,负责根据数据任务的元数据信息,解析生成当下的执行任务流,形成任务执行计划表,同时对已经生成的执行任务流做动态调整。对于需要启动历史数据修复的执行任务流,可以将首个任务置为待执行状态,即可动态生成包含所有下游任务的整个执行任务流。

3)对于满足启动执行条件的执行任务,调用执行模块executor执行,把所有运行的任务执行日志记录入任务执行记录表。并通过监控模块monitor实时监控执行任务运行结果。

4)监控模块monitor实时监控执行任务是否运行超时,是否失败,是否需要报警。

5)运行报告模块reporter负责对整个执行任务流运行状态的运行结果进行汇报。包括两个层面的报告,一是整个执行任务流的运行结果统一报告,二是对单个执行任务的运行结果的报告。

6)执行任务流中可以包含数据质量检查任务,可以通过数据质量检查插件实现,主要包含如下功能:

a)统计最近几个数据周期(默认是7)的数据结果,检查当前统计结果是否波动很大,波动超过20%则认定为疑似异常。

b)统计最近几个数据周期(默认是7)的数据量(行数),检查数据量是否波动很大,波动超过20%则认定为疑似异常。

c)检查数据结果中每个字段有无为空的情况,如果被检查数据不应该出现空值,则出现空说明数据异常。

d)检查数据结果中每个字段有无超过预期大小的情况,比如有些字段预期是128字节长度,如果出现超过128字节的情况说明数据异常。

基于同一发明构思,本发明的另一实施例提供一种电子装置(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。

基于同一发明构思,本发明的另一实施例提供一种计算机可读存储介质(如ROM/RAM、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。

以上公开的本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的普通技术人员可以理解,在不脱离本发明的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书的实施例所公开的内容,本发明的保护范围以权利要求书界定的范围为准。

相关技术
  • 一种面向标识解析数据的数据仓库任务调度方法和系统
  • 一种动摩行业标识解析数据更新方法及系统
技术分类

06120112923447