CN110764893A - 一种识别任务链路中无效计算的方法、系统及设备 - Google Patents

一种识别任务链路中无效计算的方法、系统及设备 Download PDF

Info

Publication number
CN110764893A
CN110764893A CN201911013599.1A CN201911013599A CN110764893A CN 110764893 A CN110764893 A CN 110764893A CN 201911013599 A CN201911013599 A CN 201911013599A CN 110764893 A CN110764893 A CN 110764893A
Authority
CN
China
Prior art keywords
task
calculation
invalid
computing
link
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
Application number
CN201911013599.1A
Other languages
English (en)
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN201911013599.1A priority Critical patent/CN110764893A/zh
Publication of CN110764893A publication Critical patent/CN110764893A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种识别任务链路中无效计算的方法、系统及设备。本说明书一实施例的方法流程包括:在按照任务链路的执行顺序执行计算任务的过程中,当执行到第一计算任务时,在执行所述第一计算任务前识别所述第一计算任务在本轮任务链路执行过程中是否为无效计算,其中,当满足以下所有条件时,所述第一计算任务为无效计算:在本轮任务链路执行过程中,所述第一计算任务依赖的所有计算任务均为无效计算;在本轮任务链路执行过程中,所述第一计算任务依赖的所有任务链路外部输入相较上一轮任务链路执行时没有发生变化。

Description

一种识别任务链路中无效计算的方法、系统及设备
技术领域
本说明书涉及计算机技术领域,尤其涉及一种识别任务链路中无效计算的方法、系统及设备。
背景技术
对于数据研发而言,往往会建立大量的计算任务,彼此之间形成一个有向无环的计算任务链路图,该计算任务链路图可以作为完整的一个任务链路或者多个具有承接关系的任务链路。
一般的,在实际应用场景中,不同的研发部门(团体)会维护各自负责的那一部分任务链路所包含的计算任务,这些计算任务不断更新、上线,长此以往任务链路中往往会出现大量无效计算:有的是永久无效计算,例如计算任务的下游已经没有人使用该计算任务的计算结果或者计算任务的上游数据已经不再更新;有的是当日无效计算,例如计算任务的上游今日没有数据(例如周末,节假日)或者没有更新。这些无效计算每天可能占据着相当比例的计算资源,因此,为了节约计算资源,就需要尽可能的及时发现无效计算并进行相应的处理。
发明内容
有鉴于此,本说明书实施例提供了一种识别任务链路中无效计算的方法、系统及设备,用于解决现有技术中无效计算对计算资源的占用问题。
本说明书实施例采用下述技术方案:
本说明书实施例提供一种识别任务链路中无效计算的方法,所述方法包括:
在按照任务链路的执行顺序执行计算任务的过程中,当执行到第一计算任务时,在执行所述第一计算任务前识别所述第一计算任务在本轮任务链路执行过程中是否为无效计算,其中,当满足以下所有条件时,所述第一计算任务为无效计算:
在本轮任务链路执行过程中,所述第一计算任务依赖的所有计算任务均为无效计算;
在本轮任务链路执行过程中,所述第一计算任务依赖的所有任务链路外部输入相较上一轮任务链路执行时没有发生变化。
在本说明书一实施例中,所述方法还包括:
在本轮任务链路执行过程中,当所述第一计算任务为无效计算时,不执行所述第一计算任务,直接拷贝所述第一计算任务上次执行的执行结果作为当前的执行结果。
在本说明书一实施例中:
所述方法还包括,在本轮任务链路执行过程中,当所述第一计算任务为无效计算时,标记所述第一计算任务为执行结果未更新;
识别所述第一计算任务是否为无效计算,其中,当满足以下所有条件时,所述第一计算任务为无效计算:
在本轮任务链路执行过程中,所述第一计算任务依赖的所有计算任务均被标记为执行结果未更新;
在本轮任务链路执行过程中,所述第一计算任务依赖的所有任务链路外部输入相较上一轮任务链路执行时没有发生变化。
在本说明书一实施例中,所述方法还包括:
创建标记表,所述标记表包括用于描述所述任务链路中每一个计算任务执行结果和/或每一个任务链路外部输入输入参数是否被更新的标志位;
当所述计算任务被识别为无效计算时,将对应的标记位记录为未更新;
在识别所述计算任务是否为无效计算时,读取所述标记表并根据所述标记表中的标记位判断所述计算任务是否为无效计算。
在本说明书一实施例中,所述方法还包括:
记录所述任务链路每轮执行过程中无效计算的识别结果并输出。
在本说明书一实施例中,所述任务链路为数仓任务,所述数仓任务包括同步任务、ODS层任务、DWD层/DWS层任务以及ADM层任务。
在本说明书一实施例中,识别所述ODS层任务是否为无效计算,其中,当所述同步任务对应的更新数据为空时,所述ODS层任务为无效计算。
在本说明书一实施例中,识别所述DWD层/DWS层任务是否为无效计算,其中,当所述DWD层/DWS层任务依赖的ODS层任务执行结果没有被更新时,所述DWD层/DWS层任务为无效计算。
在本说明书一实施例中,识别所述ADM层任务是否为无效计算,其中,当所述ADM层任务依赖的DWD层/DWS层任务执行结果没有被更新时,所述DWD层/DWS层任务为无效计算。
本说明书实施例还提出了一种识别任务链路中无效计算的系统,所述系统包括:
无效计算识别模块,其用于在按照任务链路的执行顺序执行计算任务的过程中,当执行到第一计算任务时,在执行所述第一计算任务前识别所述第一计算任务在本轮任务链路执行过程中是否为无效计算,其中,当满足以下所有条件时,所述第一计算任务为无效计算:
在本轮任务链路执行过程中,所述第一计算任务依赖的所有计算任务均为无效计算;
在本轮任务链路执行过程中,所述第一计算任务依赖的所有任务链路外部输入相较上一轮任务链路执行时没有发生变化。
本说明书实施例还提出了一种用于在访问方设备端信息处理的设备,该设备包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该设备执行本说明书实施例所述系统所述的方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:根据本说明书实施例的方法,可以简单快捷的识别任务链路中的无效计算;根据本说明书实施例的方法,可以在不进行上游分析的前提下,识别当前任务链路中的无效计算,从而大大降低无效计算识别的难度,减少工作量消耗;根据本说明书实施例的方法,可以有效避免上游输入状态以及任务链路执行状态变化对无效计算识别产生的干扰,在降低无效计算识别难度的同时提高无效计算识别的准确性,维护任务链路的正常运行。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1以及图3为本说明书实施例中应用程序的运行方法的流程图;
图2为本说明书实施例中应用程序的运行方法的部分流程图;
图4为本说明书实施例中系统的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决现有技术中无效计算对计算资源的占用问题,本说明书实施例提出了一种识别任务链路中无效计算的方法。为了提出本说明书实施例的方法,发明人首先分析无效计算出现的应用场景。
一般的,在任务链路中出现的无效计算主要包含以下三种情况:
1.计算任务本身已脱离任务链路,其运行与否,计算结果都不会被引入任务链路;
2.计算任务转变为一次性任务,计算结果已恒定,再次重复计算不会改变计算结果;
3.计算任务的上游输入参数恒定,基于不变的输入参数,计算任务重复计算也不会得到其他的输出结果,这导致计算任务的计算结果呈现一种被动的恒定状态。
针对第一种情况,一种可行的方案是检测任务链路运行流程,梳理出脱离任务链路的计算任务并将其废弃。针对第二种情况,一种可行的方案是分别检测任务链路的每一个计算任务,检测出一次性任务,用其输出参数作为一个恒定的输入量替换该一次性任务。
上述方案的实现在理论上只需要梳理任务链路的运行流程并对每一个计算任务分别进行输入输出检测即可。但是,针对第三种情况,由于计算任务输出参数的恒定状态是由上游输入导致的,其本身既不是一次性任务也没有脱离任务链路,因此不会被检测出来。如果要检测该种无效任务,就需要对计算任务的上游进行分析。具体的,任务链路中的计算任务的上游可以是任务链路的上游或是任务链路中其他计算任务。
然而,一个任务链路或者多个前后承接的任务链路往往是多人前仆后继建立的,前人的东西后人未必足够了解,无论是从业务层面还是技术层面,不够了解就不敢做也不能做一次性的调整来解决。即使人力可以做,也是很耗费成本的,需要针对一个一个的计算任务的上游任务来做业务分析,和对应的业务负责人做确认。
针对上述情况,在本说明一实施例中,不采用针对计算任务上游进行分析的方法来识别无效计算,而采用自上而下的方式,监控任务链路运行过程的每一层级的输入状态,如果输入被恒定,那么显而易见的,输出也就不会发生变化,对应的计算任务也就是无效计算。这里需要说明的是,虽然在本说明书实施例的描述中,本说明书实施例的方案是针对上述第三种情况所提出的,但是,在具体的实施应用场景中,本说明书实施例的方法并不仅仅限于上述第三种应用情况,还可以包含第一种和/或第二种应用情况。
进一步的,在任务链路的运行场景中,计算任务的输入来源(即,计算任务的上游输入)可能是任务链路中的其他计算任务,也可能是任务链路的任务链路外部输入(任务链路的上游输入)。当计算任务的输入全部恒定(输入该计算任务的其他计算任务全都是无效计算,并且输入该计算任务的任务链路外部输入全部都恒定)时,该计算任务就是无效计算。
具体的,在本说明书一实施例中,针对某一任务链路,其中的一个计算任务(第一计算任务),当满足以下所有条件时,该计算任务为无效计算:
在任务链路中,该计算任务依赖的所有计算任务均为无效计算;
该计算任务依赖的所有任务链路外部输入恒定。
进一步的,在实际的应用场景中,任务链路一般会重复的多轮运行。在任务链路的多轮运行过程中,其任务链路的任务链路外部输入(任务链路的上游输入)是动态的。这就导致任务链路的多轮运行也是动态的,每轮的运行状态可能不同。也就是说,在某一时刻,某一计算任务为无效计算,但在其他时间节点上,该计算任务可能不是无效计算。而何时是无效计算以及何时不是无效计算,这个规律是很难分析的,这就导致针对这类计算任务的无效计算识别无法进行。例如一个任务其实有一半的日期是需要计算,另外一半的日期不需要,如果没有非常明显的规则,数据研发往往会让任务每天都计算,避免出问题。
针对上述情况的存在,在本说明书一实施例中,采用了动态的无效计算识别方式。即,不采用一次性的识别,而是在任务链路运行期间,识别当前运行场景下,计算任务是否为无效计算,当运行场景发生变化,则重新识别。具体的,在本说明书一实施例中,在按照任务链路的执行顺序执行计算任务的过程中,当执行到第一计算任务时,在执行第一计算任务前识别第一计算任务在本轮任务链路执行过程中是否为无效计算。
具体的,在本说明书一实施例中,识别任务链路中无效计算的方法包括:
在按照任务链路的执行顺序执行计算任务的过程中,当执行到第一计算任务时,在执行第一计算任务前识别第一计算任务在本轮任务链路执行过程中是否为无效计算,其中,当满足以下所有条件时,第一计算任务为无效计算:
在本轮任务链路执行过程中,第一计算任务依赖的所有计算任务均为无效计算;
在本轮任务链路执行过程中,第一计算任务依赖的所有任务链路外部输入相较上一轮任务链路执行时没有发生变化。
这里需要说明的是,本说明书实施例所针对的计算任务,指的是基于自身内设算法,根据输入参数计算获取并输出输出参数的计算机可执行任务,采用其他运行机制的计算机可执行任务并不作为本说明书一实施例的方法的识别对象。例如,没有输入项,只有输出项的计算机可执行任务。具体的,例如,根据内置时钟进行输出的计算机可执行任务;基于内置算法计算随机数进行输出的计算机可执行任务。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
在本说明书一实施例中,如图1所示,识别任务链路中无效计算的方法包括:
S110,监控任务链路执行进程;
S120,确定当前需要执行的计算任务;
S130,暂停任务链路的执行,不执行当前需要执行的计算任务;
S140,判断计算任务是否为无效计算,其中,当满足以下所有条件时,计算任务为无效计算:
在本轮任务链路执行过程中,计算任务依赖的所有计算任务均为无效计算;
在本轮任务链路执行过程中,计算任务依赖的所有的任务链路外部输入相较上一轮任务链路执行时没有发生变化。
根据本说明书实施例的方法,可以在不进行任务链路、计算任务上游分析的前提下,识别当前任务链路中的无效计算,从而大大降低无效计算识别的难度,减少工作量消耗;根据本说明书实施例的方法,可以有效避免任务链路上游输入状态以及任务链路执行状态变化对无效计算识别产生的干扰,在降低无效计算识别难度的同时提高无效计算识别的准确性,维护任务链路的正常运行。
具体的,在本说明书一实施例中,如图2所示,在判断计算任务是否为无效计算的过程中:
S210,判断计算任务是否依赖任务链路外部输入;
当计算任务依赖任务链路外部输入时,S220,判断在本轮任务链路执行过程中,计算任务依赖的所有任务链路外部输入相较上一轮任务链路执行时是否发生变化;
如果计算任务依赖的任务链路外部输入相较上一轮任务链路执行时发生变化,S250,执行计算任务,继续任务链路的执行;
如果计算任务依赖的任务链路外部输入相较上一轮任务链路执行时没有发生变化,S230,判断计算任务是否依赖其他计算任务;当计算任务不依赖其他计算任务时,S240,识别计算任务为无效计算;当计算任务依赖其他计算任务时,S250,判断在本轮任务链路执行过程中,计算任务依赖的所有计算任务是否均为无效计算;当计算任务依赖的所有计算任务均为无效计算时,S240,识别计算任务为无效计算;当计算任务依赖的计算任务存在有效计算时,S260,执行计算任务,继续任务链路的执行;
当计算任务不依赖任务链路外部输入时,S250,判断在本轮任务链路执行过程中,计算任务依赖的所有计算任务是否均为无效计算;当计算任务依赖的所有计算任务均为无效计算时,S241,识别计算任务为无效计算;当计算任务依赖的计算任务存在有效计算时,S250,执行计算任务,继续任务链路的执行。
进一步的,在本说明书一实施例中,方法还包括:
在本轮任务链路执行过程中,当第一计算任务为无效计算时,不执行第一计算任务,直接拷贝第一计算任务上次执行的执行结果作为当前的执行结果。
具体的,在本说明书一实施例中,如图3所示,识别任务链路中无效计算的方法包括:
S310,监控任务链路执行进程;
S320,确定当前需要执行的计算任务;
S330,暂停任务链路的执行,不执行当前需要执行的计算任务;
S340,判断计算任务是否为无效计算;
当计算任务为无效计算时,S350,拷贝计算任务上次执行的执行结果作为当前的执行结果;S351,跳过执行计算任务,继续执行任务链路;返回步骤S310;
当计算任务不为无效计算时,S352,执行计算任务,继续执行任务链路;返回步骤S310。
进一步的,在本说明书一实施例中,为了简化无效计算的识别过程,将每一个识别出的无效计算进行标记。具体的,在本说明书一实施例中,在本轮任务链路执行过程中,当第一计算任务为无效计算时,标记第一计算任务为执行结果未更新。这样,在判断一个计算任务是否为无效计算时,只需识别其是否被标记为执行结果未更新。具体的,识别第一计算任务是否为无效计算,其中,当满足以下所有条件时,第一计算任务为无效计算:
在本轮任务链路执行过程中,第一计算任务依赖的所有计算任务均被标记为执行结果未更新;
在本轮任务链路执行过程中,第一计算任务依赖的所有任务链路外部输入相较上一轮任务链路执行时没有发生变化。
进一步的,在本说明书一实施例中,方法还包括:
创建标记表,标记表包括用于描述任务链路中每一个计算任务执行结果和/或每一个任务链路外部输入输入参数是否被更新的标志位;
当计算任务被识别为无效计算时,将对应的标记位记录为未更新;
在识别计算任务是否为无效计算时,读取标记表并根据标记表中的标记位判断计算任务是否为无效计算。
进一步的,在本说明书一实施例中,方法还包括:记录任务链路每轮执行过程中无效计算的识别结果并输出。这样,外部处理系统就可以根据无效计算的识别历史纪录针对任务链路中无效计算的分布状态、发生频次、产生机制进行分析,从而为任务链路的优化提供有力数据支持。
具体的,在本说明书一实施例中,在实际应用场景中,数仓任务是一种任务链路形态。具体的,数仓任务包括同步任务、ODS层任务、DWD层/DWS层任务以及ADM层任务,其中,ODS是源数据层,DWD是明细数据层,DWS是专题数据层,ADM是应用数据层。具体的,同步任务从外部数据源同步当日更新的数据到数仓,昨天今日的存储分区(partition);ODS层做数据合并,保证ODS总表(Full表)最新存储分区(partition)的数据和数据源的当日数据相同;DWD/DWS是中间层,对ODS数据进行各种清洗转换;DM是输出层,按用户需要的数据格式进行整理。
在本说明书一实施例中,针对数仓任务,识别ODS层任务是否为无效计算,其中,当同步任务对应的更新数据为空时,ODS层任务为无效计算。
在本说明书一实施例中,针对数仓任务,识别DWD层/DWS层任务是否为无效计算,其中,当DWD层/DWS层任务依赖的ODS层任务执行结果没有被更新时,DWD层/DWS层任务为无效计算。
在本说明书一实施例中,针对数仓任务,识别ADM层任务是否为无效计算,其中,当ADM层任务依赖的DWD层/DWS层任务执行结果没有被更新时,DWD层/DWS层任务为无效计算。
在本说明书一实施例中,当外部数据源不再更新时,同步任务同步下来的当日更新数据就是空的。ODS full任务就不需要执行了。直接拷贝存储分区的昨日数据(使用copypartition)到今日存储分区(partition)即可。具体的,在本说明书一实施例中,直接读取同步日志,使用读取结果作为上述步骤的执行判断标准。具体的,在本说明书一实施例中,在标志表中创建一个用于描述今日是否更新的标志位。
进一步的,在本说明书一实施例中,当依赖的ODS full表没有更新时,DWD层也不需要运行,直接拷贝昨日存储分区数据到今日存储分区即可。直接读取标志位表的ODS表更新标志作为判断标准,同时,DWD任务也写入说明自身任务是否更新的标志位。
进一步的,在本说明书一实施例中,当依赖的DWD表没有更新时,ADM层任务也不需要运行,直接拷贝昨日存储分区数据到今日的存储分区即可。直接读取标志位表的DWD表更新标志作为判断标准,同时,ADM任务也会写入说明自身任务是否更新的标志位。
进一步的,基于本说明书实施例提出的方法,本说明书实施例还提出了一种识别任务链路中无效计算的系统。具体的,在本说明书一实施例中,系统包括:
无效计算识别模块,其用于在按照任务链路的执行顺序执行计算任务的过程中,当执行到第一计算任务时,在执行第一计算任务前识别第一计算任务在本轮任务链路执行过程中是否为无效计算,其中,当满足以下所有条件时,所述第一计算任务为无效计算:
在本轮任务链路执行过程中,第一计算任务依赖的所有计算任务均为无效计算;
在本轮任务链路执行过程中,第一计算任务依赖的所有任务链路外部输入相较上一轮任务链路执行时没有发生变化。
具体的,在本说明书一实施例中,如图4所示,系统包括:
监控模块410,其用于监控任务链路执行进程,确定当前需要执行的计算任务;
中断模块420,其用于暂停任务链路的执行,不执行当前需要执行的计算任务;
无效计算识别模块430,其用于判断计算任务是否为无效计算。
进一步的,基于本发明的方法,本发明还提出了一种用于在访问方设备端信息处理的设备,该设备包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该设备执行本发明所述的方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由访问方对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (11)

1.一种识别任务链路中无效计算的方法,所述方法包括:
在按照任务链路的执行顺序执行计算任务的过程中,当执行到第一计算任务时,在执行所述第一计算任务前识别所述第一计算任务在本轮任务链路执行过程中是否为无效计算,其中,当满足以下所有条件时,所述第一计算任务为无效计算:
在本轮任务链路执行过程中,所述第一计算任务依赖的所有计算任务均为无效计算;
在本轮任务链路执行过程中,所述第一计算任务依赖的所有任务链路外部输入相较上一轮任务链路执行时没有发生变化。
2.根据权利要求1所述的方法,所述方法还包括:
在本轮任务链路执行过程中,当所述第一计算任务为无效计算时,不执行所述第一计算任务,直接拷贝所述第一计算任务上次执行的执行结果作为当前的执行结果。
3.根据权利要求2所述的方法:
所述方法还包括,在本轮任务链路执行过程中,当所述第一计算任务为无效计算时,标记所述第一计算任务为执行结果未更新;
识别所述第一计算任务是否为无效计算,其中,当满足以下所有条件时,所述第一计算任务为无效计算:
在本轮任务链路执行过程中,所述第一计算任务依赖的所有计算任务均被标记为执行结果未更新;
在本轮任务链路执行过程中,所述第一计算任务依赖的所有任务链路外部输入相较上一轮任务链路执行时没有发生变化。
4.根据权利要求3所述的方法,所述方法还包括:
创建标记表,所述标记表包括用于描述所述任务链路中每一个计算任务执行结果和/或每一个任务链路外部输入输入参数是否被更新的标志位;
当所述计算任务被识别为无效计算时,将对应的标记位记录为未更新;
在识别所述计算任务是否为无效计算时,读取所述标记表并根据所述标记表中的标记位判断所述计算任务是否为无效计算。
5.根据权利要求1~4中任一项所述的方法,所述方法还包括:
记录所述任务链路每轮执行过程中无效计算的识别结果并输出。
6.根据权利要求1~5中任一项所述的方法,所述任务链路为数仓任务,所述数仓任务包括同步任务、ODS层任务、DWD层/DWS层任务以及ADM层任务。
7.根据权利要求6所述的方法,识别所述ODS层任务是否为无效计算,其中,当所述同步任务对应的更新数据为空时,所述ODS层任务为无效计算。
8.根据权利要求6所述的方法,识别所述DWD层/DWS层任务是否为无效计算,其中,当所述DWD层/DWS层任务依赖的ODS层任务执行结果没有被更新时,所述DWD层/DWS层任务为无效计算。
9.根据权利要求6所述的方法,识别所述ADM层任务是否为无效计算,其中,当所述ADM层任务依赖的DWD层/DWS层任务执行结果没有被更新时,所述DWD层/DWS层任务为无效计算。
10.一种识别任务链路中无效计算的系统,所述系统包括:
无效计算识别模块,其用于在按照任务链路的执行顺序执行计算任务的过程中,当执行到第一计算任务时,在执行所述第一计算任务前识别所述第一计算任务在本轮任务链路执行过程中是否为无效计算,其中,当满足以下所有条件时,所述第一计算任务为无效计算:
在本轮任务链路执行过程中,所述第一计算任务依赖的所有计算任务均为无效计算;
在本轮任务链路执行过程中,所述第一计算任务依赖的所有任务链路外部输入相较上一轮任务链路执行时没有发生变化。
11.一种用于在访问方设备端信息处理的设备,该设备包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该设备执行权利要求1至8中任一项所述的方法。
CN201911013599.1A 2019-10-23 2019-10-23 一种识别任务链路中无效计算的方法、系统及设备 Pending CN110764893A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911013599.1A CN110764893A (zh) 2019-10-23 2019-10-23 一种识别任务链路中无效计算的方法、系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911013599.1A CN110764893A (zh) 2019-10-23 2019-10-23 一种识别任务链路中无效计算的方法、系统及设备

Publications (1)

Publication Number Publication Date
CN110764893A true CN110764893A (zh) 2020-02-07

Family

ID=69333513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911013599.1A Pending CN110764893A (zh) 2019-10-23 2019-10-23 一种识别任务链路中无效计算的方法、系统及设备

Country Status (1)

Country Link
CN (1) CN110764893A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112862245A (zh) * 2020-12-30 2021-05-28 北京知因智慧科技有限公司 数据交换方法、装置以及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101481A (en) * 1996-01-25 2000-08-08 Taskey Pty Ltd. Task management system
CN109933617A (zh) * 2019-03-08 2019-06-25 恒生电子股份有限公司 一种数据处理方法、装置以及相关设备和介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101481A (en) * 1996-01-25 2000-08-08 Taskey Pty Ltd. Task management system
CN109933617A (zh) * 2019-03-08 2019-06-25 恒生电子股份有限公司 一种数据处理方法、装置以及相关设备和介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YAO YURONG等: ""Data warehousing and the Internet"s impact on ERP"", 《IT PROFESSIONAL》 *
丁青松: ""基于Hadoop平台的大数据增量处理技术的研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112862245A (zh) * 2020-12-30 2021-05-28 北京知因智慧科技有限公司 数据交换方法、装置以及电子设备
CN112862245B (zh) * 2020-12-30 2024-04-23 北京知因智慧科技有限公司 数据交换方法、装置以及电子设备

Similar Documents

Publication Publication Date Title
CN107577694B (zh) 一种基于区块链的数据处理方法及设备
CN107391527B (zh) 一种基于区块链的数据处理方法及设备
CN107247749B (zh) 一种数据库状态确定方法、一致性验证方法及装置
CN111756550A (zh) 一种区块链共识方法及装置
CN113282659A (zh) 一种基于区块链的数据处理方法及设备
CN110059023B (zh) 一种刷新级联缓存的方法、系统及设备
KR20170134723A (ko) 이벤트 처리 시스템 페이징
CN111241353B (zh) 一种图数据的分区方法、装置以及设备
CN110764893A (zh) 一种识别任务链路中无效计算的方法、系统及设备
CN111222315A (zh) 一种电影剧本情节预测方法
CN113032119A (zh) 一种任务调度方法、装置、存储介质及电子设备
CN113902356B (zh) 区域流量数据分析方法及装置
CN109658094B (zh) 随机游走、基于集群的随机游走方法、装置以及设备
CN107562533B (zh) 一种数据加载处理方法及装置
CN116107728A (zh) 一种任务执行方法、装置、存储介质及电子设备
CN110019975B (zh) 随机游走、基于集群的随机游走方法、装置以及设备
CN111523995B (zh) 一种模型迁移的特征值确定方法、装置及设备
CN114924857A (zh) 基于Redis的分布式定时调度方法、装置及存储介质
CN110321433B (zh) 确定文本类别的方法及装置
CN111984247A (zh) 一种业务处理方法、装置和电子设备
CN109325127B (zh) 一种风险识别方法和装置
CN109614388B (zh) 一种预算扣减方法和装置
CN113205377A (zh) 一种信息推荐的方法及装置
CN112907257A (zh) 风险阈值确定方法、异常检测方法、装置和电子设备
US11068793B2 (en) Causality analysis device, method, and non-transitory computer readable storage medium with determination of causal advantages and disadvantages to a user

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: 20200207

RJ01 Rejection of invention patent application after publication