CN115525680A - 数据处理作业调度方法、装置、计算机设备及存储介质 - Google Patents
数据处理作业调度方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115525680A CN115525680A CN202211149343.5A CN202211149343A CN115525680A CN 115525680 A CN115525680 A CN 115525680A CN 202211149343 A CN202211149343 A CN 202211149343A CN 115525680 A CN115525680 A CN 115525680A
- Authority
- CN
- China
- Prior art keywords
- data processing
- data
- data source
- processing job
- triggered
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 291
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000001960 triggered effect Effects 0.000 claims abstract description 59
- 230000008859 change Effects 0.000 claims abstract description 58
- 238000004458 analytical method Methods 0.000 claims abstract description 57
- 238000012544 monitoring process Methods 0.000 claims abstract description 21
- 238000004364 calculation method Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 15
- 239000002699 waste material Substances 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 238000011144 upstream manufacturing Methods 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 4
- 229910003460 diamond Inorganic materials 0.000 description 4
- 239000010432 diamond Substances 0.000 description 4
- 230000005611 electricity Effects 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
- 230000005540 biological transmission Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000007246 mechanism 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
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据处理作业调度方法、装置、计算机设备及存储介质,其中方法包括:创建数据源;根据数据源创建数据处理作业;解析数据处理作业的依赖关系并保存;监听是否触发数据源变化事件;若触发数据源变化事件,则根据数据源的变化情况控制事件的触发频率;根据事件的依赖关系解析数据源变化事件,以得到解析结果;根据解析结果决定触发的数据处理作业类型;根据触发的数据处理作业类型按照触发时机执行相应的数据处理作业。本发明实现了以准实时的方式去完成数据作业的调度,且在作业处理工具上有很大的可扩展性,可兼容大多数作业处理工具与逻辑,提高系统的可扩展性。另外,可避免数据处理作业的无效运行,有效减少了资源浪费。
Description
技术领域
本发明涉及数据处理技术领域,更具体地说是一种数据处理作业调度方法、装置、计算机设备及存储介质。
背景技术
数据是企业的无形资产,很多企业,机构通过采集各种数据,然后整理,统计汇总成各种统计数据,为企业提供决策支撑与行业洞察。很多原始数据是不规范的,在使用之前大多数需要先进行清理与整理,然后按照需要的维度进行统计和归档。这个过程称之为数据处理作业。由于数据是多种多样的,也需要将数据整理为不同维度的统计表,因此数据处理作业会存在多个且数据处理作业之间也会存在一些依赖关系。常规的数据处理作业一般分为离线数据处理作业和实时数据处理作业,离线数据处理作业是指按照一定时间间隔定时开始运行作业,实时数据处理作业是指以数据流的形式持续运行作业。传统的数据处理作业调度存在以下几个缺点:
第一,离线数据处理作业调度需要人工分析作业之间的依赖关系,人工编排数据处理作业的调度前后顺序,当作业数量比较多时,需要投入大量人力且很容易出错。第二,离线数据处理作业调度由于是定时触发的,会导致结果数据出现一定时延,实时性比较差。第三离线数据处理作业调度只是纯粹的按照一定时间间隔触发,无论数据处理作业使用的原始数据是否发生变化,当原始数据没有发生变化时,这个作业本身是无效的,造成很大的资源浪费。第四,现有的实时数据处理作业调度有很大局限性,需要数据源本身是通过数据流的形式提供,而且数据处理作业处理需要使用流作业处理工具,没有办法去使用其他ETL工具和数据处理工具,跟企业原有的作业处理模块整合难度很大,数据源的流化在很多场景下比较困难。
发明内容
本发明的目的在于克服现有技术的不足,提供数据处理作业调度方法、装置、计算机设备及存储介质,旨在解决数据处理实时性较差、资源浪费大以及资源整合难度大的问题。
为实现上述目的,本发明采用以下技术方案:
第一方面,数据处理作业调度方法,包括:
创建数据源;
根据数据源创建数据处理作业;
解析数据处理作业的依赖关系并保存;
监听是否触发数据源变化事件;
若触发数据源变化事件,则根据数据源的变化情况控制事件的触发频率;
根据事件的依赖关系解析数据源变化事件,以得到解析结果;
根据解析结果决定触发的数据处理作业类型;
根据触发的数据处理作业类型按照触发时机执行相应的数据处理作业。
其进一步技术方案为:所述数据源包括数据库表和消息队列。
其进一步技术方案为:数据处理作业的类型包括SQL语句作业、计算引擎运算的作业和ETL工具作业。
其进一步技术方案为:所述解析数据处理作业的依赖关系并保存,包括:
确定数据处理作业的类型;
若数据处理作业的类型为SQL语句作业,则通过语法分析,以解析出使用到的数据源;
若数据处理作业的类型为计算引擎运算的作业,则通过解析计算引擎的计算数据流,以获取使用到的数据源;
若数据处理作业的类型为ETL工具作业,则通过解析具体配置内容,以得到使用到数据源。
其进一步技术方案为:所述根据数据源的变化情况控制事件的触发频率,包括:
设定触发的时间周期;
根据设定的时间周期执行触发事件。
第二方面,数据处理作业调度装置,包括第一创建单元、第二创建单元、第一解析单元、监听单元、控制单元、第二解析单元、确定单元以及执行单元;
所述第一创建单元,用于创建数据源;
所述第二创建单元,用于根据数据源创建数据处理作业;
所述第一解析单元,用于解析数据处理作业的依赖关系并保存;
所述监听单元,用于监听是否触发数据源变化事件;
所述控制单元,用于若触发数据源变化事件,则根据数据源的变化情况控制事件的触发频率;
所述第二解析单元,用于根据事件的依赖关系解析数据源变化事件,以得到解析结果;
所述确定单元,用于根据解析结果决定触发的数据处理作业类型;
所述执行单元,用于根据触发的数据处理作业类型按照触发时机执行相应的数据处理作业。
其进一步技术方案为:所述第一解析单元包括确定模块、第一解析模块、第二解析模块以及第三解析模块;
所述确定模块,用于确定数据处理作业的类型;
所述第一解析模块,用于若数据处理作业的类型为SQL语句作业,则通过语法分析,以解析出使用到的数据源;
所述第二解析模块,用于若数据处理作业的类型为计算引擎运算的作业,则通过解析计算引擎的计算数据流,以获取使用到的数据源;
所述第三解析模块,用于若数据处理作业的类型为ETL工具作业,则通过解析具体配置内容,以得到使用到数据源。
其进一步技术方案为:所述控制单元包括设定模块以及执行模块;
所述设定模块,用于设定触发的时间周期;
所述执行模块,用于根据设定的时间周期执行触发事件。
第三方面,一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的数据处理作业调度方法。
第四方面,一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使得所述处理器执行如上述的数据处理作业调度方法。
本发明与现有技术相比的有益效果是:本发明通过监听到数据源的变化触发数据变化时间,然后根据数据源的变化情况控制事件的触发频率,并结合数据处理作业的依赖关系决定数据处理作业的触发时机,最后按照数据处理作业的触发时机行数据处理作业。从而实现了以准实时的方式去完成数据作业的调度,同时准确地自动处理数据处理作业之间前后依赖关系,控制数据处理作业前后调度顺序。且由于数据处理作业的调度是基于内部事件传递,所以在作业处理工具上有很大的可扩展性,可以兼容大多数作业处理工具与逻辑,提高系统的可扩展性。另外,数据处理作业调度是基于数据源的变更事件为基础触发,可以避免数据处理作业的无效运行,有效减少了资源浪费。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征及优点能够更明显易懂,以下特举较佳实施例,详细说明如下。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明具体实施例提供的数据处理作业调度方法的应用场景示意图;
图2本发明具体实施例提供的数据处理作业调度方法的流程图;
图3为本发明具体实施例提供的数据处理作业调度方法的子流程图一;
图4为本发明具体实施例提供的数据处理作业调度方法的子流程图二;
图5为本发明具体实施例提供的数据处理作业调度装置的示意性框图;
图6为本发明具体实施例提供的数据处理作业调度装置的第一解析单元的示意性框图;
图7为本发明具体实施例提供的数据处理作业调度装置的控制单元的示意性框图;
图8为本发明具体实施例提供的一种计算机设备的示意性框图;
图9为本发明具体实施例提供的各数据处理作业依赖关系的示意图;
图10本发明具体实施例提供的应用环境示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的数据处理作业调度方法的应用场景示意图;图2为本发明实施例提供的数据处理作业调度方法的流程示意图,该数据处理作业调度方法应用于服务器中,该方法通过安装于服务器中的应用软件进行执行。
本发明实施例提供了数据处理作业调度方法,该方法可应用于如图10所示的应用环境中,该应用环境包括数据源、监听器、输入控制阀、事件总线、解析引擎、作业调度器、作业控制阀以及数据处理作业。其中,数据源是存储原始数据的组件包括但不限于数据库,文件和消息队列;监听器是用于监听数据源变化的组件;输入控制阀用于控制输入事件触发频率的组件;事件总线用于接收和分发事件;解析引擎用于存储和解析数据处理作业数据依赖关系;作业调度器用于接收数据变更事件,结合解析引擎的解析结果分发作业调度;作业控制阀用于控制数据处理作业触发时机;数据处理作业是用于处理输入数据,计算并输出结果数据的组件;各个组件之间通过网络连接;该网络可以是有线网络或无线网络。
如图2所示,数据处理作业调度方法包括以下步骤:S10-80。
S10、创建数据源。
数据源一般包括数据库表和消息队列。如果是数据库表,系统支持两种不同的监听方式,一种是基于数据库binlog的实时监听,一种是基于查询的准实时监听,所有监听方式都会被整理成固定格式的消息并发送到消息总线上。
S20、根据数据源创建数据处理作业。
数据源可以组合构成不同的数据处理作业。
数据处理作业的类型包括SQL语句作业、计算引擎运算的作业和ETL工具作业。其中,SQL语句作业,通过若干个SQL语句,将来自不同数据源的数据合并整理并输出到另外一个存储系统中。通过计算引擎运算的作业例如SPARK,FLINK等计算引擎通过读取不同数据源的数据进行运算并输出结果到存储系统。一些ETL工具作业,可以配置不同的运算节点并组合成有向无环图的形式进行运算。
S30、解析数据处理作业的依赖关系并保存。
在一实施例中,如图3所示,步骤S30具体包括以下步骤:S301-S304。
S301、确定数据处理作业的类型。
S302、若数据处理作业的类型为SQL语句作业,则通过语法分析,以解析出使用到的数据源。
S303、若数据处理作业的类型为计算引擎运算的作业,则通过解析计算引擎的计算数据流,以获取使用到的数据源。
S304、若数据处理作业的类型为ETL工具作业,则通过解析具体配置内容,以得到使用到数据源。
对于步骤S301-S304,具体地,对不同形式的数据处理作业进行针对性解析,对于SQL作业,通过语法分析,解析SQL语句使用到的数据源;对于计算引擎数据处理作业,通过解析计算引擎的计算数据流,获取对应使用到的数据源;对于其他ETL工具通过解析其数据源节点具体配置内容整理出整个作业使用到数据源。
另外,对于一些其他非常规的数据处理作业,可以通过自定义录入的方式录入对应的依赖数据源。解析过程会将每个数据处理作业的依赖数据源和输出数据源整理并存储到解析引擎中。
S40、监听是否触发数据源变化事件。
当监听到数据源发生变化时,对应组件会发送数据源变化事件到消息总线上。
监听源包括数据库binlog,监听器轮询数据表,数据流消息队列主题和数据处理作业完成触发的下游数据源变更。
S50、若触发数据源变化事件,则根据数据源的变化情况控制事件的触发频率。
在一实施例中,如图4所示,步骤S50具体包括以下步骤:S501-S502。
S501、设定触发的时间周期。
S502根据设定的时间周期执行触发事件。
对于S501-S502,具体地,消息总线接收到数据源变化事件后并不会马上触发下游的数据处理作业,因为对于一些变化频繁的数据源或者流式数据源,可能会有持续的数据变化事件发送,下游数据处理作业可能有很多或包含一些计算量很大的数据处理作业,这样会导致数据处理作业一直被触发造成系统极高的负载。这种场景下我们可以通过输入控制阀,控制事件的触发频率,例如控制阀设置为一分钟触发一次,那么就算数据源变化事件每秒都发送,但经过控制阀的事件也会是每分钟才触发一次,避免下游数据处理作业频繁调度。
S60、根据事件的依赖关系解析数据源变化事件,以得到解析结果。
输入控制阀触发之后,系统会向解析引擎查询该数据源变更事件相关的下游数据处理作业,由于解析引擎已经采集了每个数据处理作业的数据源依赖,因此可以借此解析每个数据源对应的下游数据处理作业,然后发送事件到每个数据处理作业的作业控制阀。如图9所示,图9中示例出的多个数据处理作业,均存在各自的计算流程和输入输出,当数据A变更事件触发时,分析到数据处理作业1依赖数据A,所以触发了数据处理作业1的调度,当数据处理作业1完成后,由于数据处理作业1输出数据B,所以会触发数据B变更事件,分析数据处理作业2和数据处理作业4依赖于数据B,所以会触发数据处理作业2和数据处理作业4的调度,而数据处理作业3没有依赖数据B,所以不会触发调度。
S70、根据解析结果决定触发的数据处理作业类型。
数据流经作业控制阀时,会由控制阀决定触发时机,作业控制阀主要解决的是以下两个场景的控制。第一种是有一些数据处理作业的运算是一定粒度的时间维度,例如分钟,小时或者天。虽然上游有持续的触发事件发生,但数据处理作业需要统计的是上一个时间窗口的统计值。例如一个统计日用电量的作业,上游数据源可能是每分钟的用电量信息,数据处理作业需要等待至第二天才能统计对应昨天的统计信息,这种情况下需要通过作业控制阀控制当控制阀接收到作业事件时,触发数据处理作业运行的时机。第二种是一些菱形依赖相关的情况,如图9所示,数据A,数据处理作业1,数据处理作业2和数据处理作业4。数据处理作业2和数据处理作业4都依赖于数据B,而数据处理作业5依赖于数据处理作业2和数据处理作业4的结果。这种情况下会形成菱形依赖。由于数据处理作业2和数据处理作业4的运算时间不固定而且可能差距比较大,假设数据处理作业2很快结束而数据处理作业4比较慢才结束,这样数据处理作业5会先接收到数据处理作业2的事件,如果这时马上开始数据处理作业4的话,会导致数据处理作业5使用到旧版本的数据处理作业4的数据,并且后面还会因为数据处理作业4的结束需要重新再触发一遍。而经过数据处理作业控制阀和解析引擎的解析,可以提前知道数据处理作业是否存在如上所说的菱形依赖的情况,如果存在可以通过作业控制阀等待至所有相关上游数据处理作业完成后,再触发数据处理作业启动。
S80、根据触发的数据处理作业类型按照触发时机执行相应的数据处理作业。
通过作业控制阀触发后,开始正式启动数据处理作业运行,根据具体数据处理作业类型不同启动对应引擎,针对数据处理作业输出而言,采用带有类事务的输出器来进行输出,可以确保数据处理作业即使运行失败,也不会影响结果数据。以数据库表为例,输出器会采用影子表的方式进行输出,影子表用于数据处理作业输出结果的临时存储,作业数据会先输出到影子表,当数据处理作业正常结束时,用影子表替换原有的结果表。如果数据处理作业运行失败,由于没有直接操作结果表,所以不会影响原有结果表,只要清理对应影子表即可。
当数据处理作业运行结束后,会发送对应输出数据的数据变更事件到消息总线,然后重复下游数据处理作业流程,直至完成所有的作业调度。
本发明实现了以准实时的方式去完成数据作业的调度,同时准确地自动处理数据处理作业之间前后依赖关系,控制数据处理作业前后调度顺序。且由于数据处理作业的调度是基于内部事件传递,所以在作业处理工具上有很大的可扩展性,可以兼容大多数作业处理工具与逻辑,提高系统的可扩展性。另外,数据处理作业调度是基于数据源的变更事件为基础触发,可以避免数据处理作业的无效运行,有效减少了资源浪费。
图5是本发明实施例提供的一种数据处理作业调度装置100的示意性框图。对应于上述的数据处理作业调度方法,本发明具体实施例还提供了一种数据处理作业调度装置100。该数据处理作业调度装置100包括用于执行上述数据处理作业调度方法的单元,该装置可以被配置于服务器中。
如图5所示,数据处理作业调度装置100,包括第一创建单元110、第二创建单元120、第一解析单元130、监听单元140、控制单元150、第二解析单元160、确定单元170以及执行单元180。
第一创建单元110,用于创建数据源。
数据源一般包括数据库表和消息队列。如果是数据库表,系统支持两种不同的监听方式,一种是基于数据库binlog的实时监听,一种是基于查询的准实时监听,所有监听方式都会被整理成固定格式的消息并发送到消息总线上。
第二创建单元120,用于根据数据源创建数据处理作业。
数据源可以组合构成不同的数据处理作业。
数据处理作业的类型包括SQL语句作业、计算引擎运算的作业和ETL工具作业。其中,SQL语句作业,通过若干个SQL语句,将来自不同数据源的数据合并整理并输出到另外一个存储系统中。通过计算引擎运算的作业例如SPARK,FLINK等计算引擎通过读取不同数据源的数据进行运算并输出结果到存储系统。一些ETL工具作业,可以配置不同的运算节点并组合成有向无环图的形式进行运算。
第一解析单元130,用于解析数据处理作业的依赖关系并保存。
在一实施例中,如图6所示,第一解析单元130包括确定模块131、第一解析模块132、第二解析模块133以及第三解析模块134。
确定模块,用于确定数据处理作业的类型。
第一解析模块,用于若数据处理作业的类型为SQL语句作业,则通过语法分析,以解析出使用到的数据源。
第二解析模块,用于若数据处理作业的类型为计算引擎运算的作业,则通过解析计算引擎的计算数据流,以获取使用到的数据源。
第三解析模块,用于若数据处理作业的类型为ETL工具作业,则通过解析具体配置内容,以得到使用到数据源。
具体地,对不同形式的数据处理作业进行针对性解析,对于SQL作业,通过语法分析,解析SQL语句使用到的数据源;对于计算引擎数据处理作业,通过解析计算引擎的计算数据流,获取对应使用到的数据源;对于其他ETL工具通过解析其数据源节点具体配置内容整理出整个作业使用到数据源。
另外,对于一些其他非常规的数据处理作业,可以通过自定义录入的方式录入对应的依赖数据源。解析过程会将每个数据处理作业的依赖数据源和输出数据源整理并存储到解析引擎中。
监听单元140,用于监听是否触发数据源变化事件。
当监听到数据源发生变化时,对应组件会发送数据源变化事件到消息总线上。
监听源包括数据库binlog,监听器轮询数据表,数据流消息队列主题和数据处理作业完成触发的下游数据源变更。
控制单元150,用于若触发数据源变化事件,则根据数据源的变化情况控制事件的触发频率。
在一实施例中,如图7所示,控制单元150包括设定模块151以及执行模块152。
设定模块151,用于设定触发的时间周期。
执行模块152,用于根据设定的时间周期执行触发事件。
具体地,消息总线接收到数据源变化事件后并不会马上触发下游的数据处理作业,因为对于一些变化频繁的数据源或者流式数据源,可能会有持续的数据变化事件发送,下游数据处理作业可能有很多或包含一些计算量很大的数据处理作业,这样会导致数据处理作业一直被触发造成系统极高的负载。这种场景下我们可以通过输入控制阀,控制事件的触发频率,例如控制阀设置为一分钟触发一次,那么就算数据源变化事件每秒都发送,但经过控制阀的事件也会是每分钟才触发一次,避免下游数据处理作业频繁调度。
第二解析单元160,用于根据事件的依赖关系解析数据源变化事件,以得到解析结果。
输入控制阀触发之后,系统会向解析引擎查询该数据源变更事件相关的下游数据处理作业,由于解析引擎已经采集了每个数据处理作业的数据源依赖,因此可以借此解析每个数据源对应的下游数据处理作业,然后发送事件到每个数据处理作业的作业控制阀。如图9所示,图9中示例出的多个数据处理作业,均存在各自的计算流程和输入输出,当数据A变更事件触发时,分析到数据处理作业1依赖数据A,所以触发了数据处理作业1的调度,当数据处理作业1完成后,由于数据处理作业1输出数据B,所以会触发数据B变更事件,分析数据处理作业2和数据处理作业4依赖于数据B,所以会触发数据处理作业2和数据处理作业4的调度,而数据处理作业3没有依赖数据B,所以不会触发调度。
确定单元170,用于根据解析结果决定触发的数据处理作业类型。
数据流经作业控制阀时,会由控制阀决定触发时机,作业控制阀主要解决的是以下两个场景的控制。第一种是有一些数据处理作业的运算是一定粒度的时间维度,例如分钟,小时或者天。虽然上游有持续的触发事件发生,但数据处理作业需要统计的是上一个时间窗口的统计值。例如一个统计日用电量的作业,上游数据源可能是每分钟的用电量信息,数据处理作业需要等待至第二天才能统计对应昨天的统计信息,这种情况下需要通过作业控制阀控制当控制阀接收到作业事件时,触发数据处理作业运行的时机。第二种是一些菱形依赖相关的情况,如图9所示,数据A,数据处理作业1,数据处理作业2和数据处理作业4。数据处理作业2和数据处理作业4都依赖于数据B,而数据处理作业5依赖于数据处理作业2和数据处理作业4的结果。这种情况下会形成菱形依赖。由于数据处理作业2和数据处理作业4的运算时间不固定而且可能差距比较大,假设数据处理作业2很快结束而数据处理作业4比较慢才结束,这样数据处理作业5会先接收到数据处理作业2的事件,如果这时马上开始数据处理作业4的话,会导致数据处理作业5使用到旧版本的数据处理作业4的数据,并且后面还会因为数据处理作业4的结束需要重新再触发一遍。而经过数据处理作业控制阀和解析引擎的解析,可以提前知道数据处理作业是否存在如上所说的菱形依赖的情况,如果存在可以通过作业控制阀等待至所有相关上游数据处理作业完成后,再触发数据处理作业启动。
执行单元180,用于根据触发的数据处理作业类型按照触发时机执行相应的数据处理作业。
通过作业控制阀触发后,开始正式启动数据处理作业运行,根据具体数据处理作业类型不同启动对应引擎,针对数据处理作业输出而言,采用带有类事务的输出器来进行输出,可以确保数据处理作业即使运行失败,也不会影响结果数据。以数据库表为例,输出器会采用影子表的方式进行输出,影子表用于数据处理作业输出结果的临时存储,作业数据会先输出到影子表,当数据处理作业正常结束时,用影子表替换原有的结果表。如果数据处理作业运行失败,由于没有直接操作结果表,所以不会影响原有结果表,只要清理对应影子表即可。
当数据处理作业运行结束后,会发送对应输出数据的数据变更事件到消息总线,然后重复下游数据处理作业流程,直至完成所有的作业调度。
上述数据处理作业调度装置可以实现为计算机程序的形式,该计算机程序可以在如图8所示的计算机设备上运行。
请参阅图8,图8是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是服务器,其中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
如图8所示,该计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的数据处理作业调度方法步骤。
该计算机设备700可以是终端或服务器。该计算机设备700包括通过系统总线710连接的处理器720、存储器和网络接口750,其中,存储器可以包括非易失性存储介质730和内存储器740。
该非易失性存储介质730可存储操作系统731和计算机程序732。该计算机程序732被执行时,可使得处理器720执行任意一种数据处理作业调度方法。
该处理器720用于提供计算和控制能力,支撑整个计算机设备700的运行。
该内存储器740为非易失性存储介质730中的计算机程序732的运行提供环境,该计算机程序732被处理器720执行时,可使得处理器720执行任意一种数据处理作业调度方法。
该网络接口750用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,所述处理器720用于运行存储在存储器中的程序代码,以实现以下步骤:
第一方面,数据处理作业调度方法,包括:
创建数据源;
根据数据源创建数据处理作业;
解析数据处理作业的依赖关系并保存;
监听是否触发数据源变化事件;
若触发数据源变化事件,则根据数据源的变化情况控制事件的触发频率;
根据事件的依赖关系解析数据源变化事件,以得到解析结果;
根据解析结果决定触发的数据处理作业类型;
根据触发的数据处理作业类型按照触发时机执行相应的数据处理作业。
在一实施例中:所述数据源包括数据库表和消息队列。
在一实施例中:数据处理作业的类型包括SQL语句作业、计算引擎运算的作业和ETL工具作业。
在一实施例中:所述解析数据处理作业的依赖关系并保存,包括:
确定数据处理作业的类型;
若数据处理作业的类型为SQL语句作业,则通过语法分析,以解析出使用到的数据源;
若数据处理作业的类型为计算引擎运算的作业,则通过解析计算引擎的计算数据流,以获取使用到的数据源;
若数据处理作业的类型为ETL工具作业,则通过解析具体配置内容,以得到使用到数据源。
在一实施例中:所述根据数据源的变化情况控制事件的触发频率,包括:
设定触发的时间周期;
根据设定的时间周期执行触发事件。
应当理解,在本申请实施例中,处理器720可以是中央处理单元(CentralProcessing Unit,CPU),该处理器720还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域技术人员可以理解,图8中示出的计算机设备700结构并不构成对计算机设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在本发明的另一实施例中提供了一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本发明实施例公开的数据处理作业调度方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.数据处理作业调度方法,其特征在于,包括:
创建数据源;
根据数据源创建数据处理作业;
解析数据处理作业的依赖关系并保存;
监听是否触发数据源变化事件;
若触发数据源变化事件,则根据数据源的变化情况控制事件的触发频率;
根据事件的依赖关系解析数据源变化事件,以得到解析结果;
根据解析结果决定触发的数据处理作业类型;
根据触发的数据处理作业类型按照触发时机执行相应的数据处理作业。
2.根据权利要求1所述的数据处理作业调度方法,其特征在于,所述数据源包括数据库表和消息队列。
3.根据权利要求1所述的数据处理作业调度方法,其特征在于,数据处理作业的类型包括SQL语句作业、计算引擎运算的作业和ETL工具作业。
4.根据权利要求3所述的数据处理作业调度方法,其特征在于,所述解析数据处理作业的依赖关系并保存,包括:
确定数据处理作业的类型;
若数据处理作业的类型为SQL语句作业,则通过语法分析,以解析出使用到的数据源;
若数据处理作业的类型为计算引擎运算的作业,则通过解析计算引擎的计算数据流,以获取使用到的数据源;
若数据处理作业的类型为ETL工具作业,则通过解析具体配置内容,以得到使用到数据源。
5.根据权利要求1所述的数据处理作业调度方法,其特征在于,所述根据数据源的变化情况控制事件的触发频率,包括:
设定触发的时间周期;
根据设定的时间周期执行触发事件。
6.数据处理作业调度装置,其特征在于,包括第一创建单元、第二创建单元、第一解析单元、监听单元、控制单元、第二解析单元、确定单元以及执行单元;
所述第一创建单元,用于创建数据源;
所述第二创建单元,用于根据数据源创建数据处理作业;
所述第一解析单元,用于解析数据处理作业的依赖关系并保存;
所述监听单元,用于监听是否触发数据源变化事件;
所述控制单元,用于若触发数据源变化事件,则根据数据源的变化情况控制事件的触发频率;
所述第二解析单元,用于根据事件的依赖关系解析数据源变化事件,以得到解析结果;
所述确定单元,用于根据解析结果决定触发的数据处理作业类型;
所述执行单元,用于根据触发的数据处理作业类型按照触发时机执行相应的数据处理作业。
7.根据权利要求6所述的数据处理作业调度装置,其特征在于,所述第一解析单元包括确定模块、第一解析模块、第二解析模块以及第三解析模块;
所述确定模块,用于确定数据处理作业的类型;
所述第一解析模块,用于若数据处理作业的类型为SQL语句作业,则通过语法分析,以解析出使用到的数据源;
所述第二解析模块,用于若数据处理作业的类型为计算引擎运算的作业,则通过解析计算引擎的计算数据流,以获取使用到的数据源;
所述第三解析模块,用于若数据处理作业的类型为ETL工具作业,则通过解析具体配置内容,以得到使用到数据源。
8.根据权利要求6所述的数据处理作业调度装置,其特征在于,所述控制单元包括设定模块以及执行模块;
所述设定模块,用于设定触发的时间周期;
所述执行模块,用于根据设定的时间周期执行触发事件。
9.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~5中任意一项所述的数据处理作业调度方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使得所述处理器执行如权利要求1~5任意一项所述的数据处理作业调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211149343.5A CN115525680A (zh) | 2022-09-21 | 2022-09-21 | 数据处理作业调度方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211149343.5A CN115525680A (zh) | 2022-09-21 | 2022-09-21 | 数据处理作业调度方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115525680A true CN115525680A (zh) | 2022-12-27 |
Family
ID=84698659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211149343.5A Pending CN115525680A (zh) | 2022-09-21 | 2022-09-21 | 数据处理作业调度方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115525680A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056058A (zh) * | 2023-10-11 | 2023-11-14 | 国家气象信息中心(中国气象局气象数据中心) | 基于状态感知的任务调度方法、系统、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254982A (zh) * | 2018-08-31 | 2019-01-22 | 杭州安恒信息技术股份有限公司 | 一种流数据处理方法、系统、装置及计算机可读存储介质 |
CN110647387A (zh) * | 2019-08-29 | 2020-01-03 | 武汉天喻教育科技有限公司 | 一种教育云大数据任务调度方法与系统 |
CN110689245A (zh) * | 2019-09-17 | 2020-01-14 | 上海易点时空网络有限公司 | 一种分析大数据工作流调用关系的方法及系统 |
CN110795479A (zh) * | 2019-10-08 | 2020-02-14 | 中国建设银行股份有限公司 | 基于数据的分布式etl调度的方法和装置 |
CN113220431A (zh) * | 2021-04-29 | 2021-08-06 | 西安易联趣网络科技有限责任公司 | 跨云的分布式数据任务调度方法、设备及存储介质 |
CN113485817A (zh) * | 2021-08-02 | 2021-10-08 | 重庆忽米网络科技有限公司 | 基于多数据源的任务调度方法与多任务协作处理方法 |
CN113590276A (zh) * | 2021-05-11 | 2021-11-02 | 深圳市数商时代科技有限公司 | 信息推送方法及相关产品 |
CN113792094A (zh) * | 2021-08-26 | 2021-12-14 | 广东电网有限责任公司 | 一种数据同步系统、方法、设备及介质 |
-
2022
- 2022-09-21 CN CN202211149343.5A patent/CN115525680A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254982A (zh) * | 2018-08-31 | 2019-01-22 | 杭州安恒信息技术股份有限公司 | 一种流数据处理方法、系统、装置及计算机可读存储介质 |
CN110647387A (zh) * | 2019-08-29 | 2020-01-03 | 武汉天喻教育科技有限公司 | 一种教育云大数据任务调度方法与系统 |
CN110689245A (zh) * | 2019-09-17 | 2020-01-14 | 上海易点时空网络有限公司 | 一种分析大数据工作流调用关系的方法及系统 |
CN110795479A (zh) * | 2019-10-08 | 2020-02-14 | 中国建设银行股份有限公司 | 基于数据的分布式etl调度的方法和装置 |
CN113220431A (zh) * | 2021-04-29 | 2021-08-06 | 西安易联趣网络科技有限责任公司 | 跨云的分布式数据任务调度方法、设备及存储介质 |
CN113590276A (zh) * | 2021-05-11 | 2021-11-02 | 深圳市数商时代科技有限公司 | 信息推送方法及相关产品 |
CN113485817A (zh) * | 2021-08-02 | 2021-10-08 | 重庆忽米网络科技有限公司 | 基于多数据源的任务调度方法与多任务协作处理方法 |
CN113792094A (zh) * | 2021-08-26 | 2021-12-14 | 广东电网有限责任公司 | 一种数据同步系统、方法、设备及介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056058A (zh) * | 2023-10-11 | 2023-11-14 | 国家气象信息中心(中国气象局气象数据中心) | 基于状态感知的任务调度方法、系统、设备及存储介质 |
CN117056058B (zh) * | 2023-10-11 | 2024-02-27 | 国家气象信息中心(中国气象局气象数据中心) | 基于状态感知的任务调度方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020259392A1 (zh) | 一种异常任务的根因任务确定方法及装置 | |
AU2023201395B2 (en) | Data stream processing language for analyzing instrumented software | |
CN109408347B (zh) | 一种指标实时分析系统及指标实时计算方法 | |
CN110647387B (zh) | 一种教育云大数据任务调度方法与系统 | |
CN109388537B (zh) | 运行信息跟踪方法、装置及计算机可读存储介质 | |
WO2019223155A1 (zh) | Sql性能监控方法、装置、计算机设备及存储介质 | |
US10217073B2 (en) | Monitoring transactions from distributed applications and using selective metrics | |
CN115525680A (zh) | 数据处理作业调度方法、装置、计算机设备及存储介质 | |
CN106796520B (zh) | 基于软件的仪器化的实时报告 | |
CN115373835A (zh) | Flink集群的任务资源调整方法、装置及电子设备 | |
WO2014204489A2 (en) | Stream data processing method with time adjustment | |
CN113760677A (zh) | 异常链路分析方法、装置、设备及存储介质 | |
WO2022237506A1 (zh) | 在线问诊业务监控方法、装置、设备及存储介质 | |
Skinner | Performance monitoring of parallel scientific applications | |
Feitelson et al. | Experience with the parallel workloads archive | |
Kulkarni et al. | Real-time, load-adaptive processing of continuous queries over data streams | |
US10061681B2 (en) | System for discovering bugs using interval algebra query language | |
EP2770447B1 (en) | Data processing method, computational node and system | |
CN113220530B (zh) | 数据质量监控方法及平台 | |
CN115712572A (zh) | 任务的测试方法、装置、存储介质及电子装置 | |
CN111679899B (zh) | 任务调度方法、装置、平台设备及存储介质 | |
CN114003618A (zh) | 数据库信息变更追溯方法、装置、计算机设备及存储介质 | |
CN113407430A (zh) | 基于应用性能监控的单指标参数采集方法及装置 | |
CN112965793A (zh) | 一种面向标识解析数据的数据仓库任务调度方法和系统 | |
Kola et al. | A client-centric grid knowledgebase |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221227 |
|
RJ01 | Rejection of invention patent application after publication |