CN113176937B - 任务处理方法、装置和电子设备 - Google Patents

任务处理方法、装置和电子设备 Download PDF

Info

Publication number
CN113176937B
CN113176937B CN202110563454.XA CN202110563454A CN113176937B CN 113176937 B CN113176937 B CN 113176937B CN 202110563454 A CN202110563454 A CN 202110563454A CN 113176937 B CN113176937 B CN 113176937B
Authority
CN
China
Prior art keywords
operator
data
progress
processing
type
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.)
Active
Application number
CN202110563454.XA
Other languages
English (en)
Other versions
CN113176937A (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.)
Douyin Vision Co Ltd
Original Assignee
Douyin Vision 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 Douyin Vision Co Ltd filed Critical Douyin Vision Co Ltd
Priority to CN202110563454.XA priority Critical patent/CN113176937B/zh
Publication of CN113176937A publication Critical patent/CN113176937A/zh
Application granted granted Critical
Publication of CN113176937B publication Critical patent/CN113176937B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开实施例公开了的任务处理方法、装置和电子设备,通过确定目标任务对应的目标存储空间,并可以根据预配置的数目对目标存储空间中的数据进行划分,获得至少一个数据切片;使得大部分数据切片中的数据的数量相同,从而可以使得任务处理每个数据切片的处理事件大致相同;从而使得确定并展示的各算子的完成进度以及数据切片的导入进度更加准确。换言之,通过上述方式,可以使得确定出的各算子的完成进度以及数据切片的导入进度更加准确,从而也就可以使得利用各算子的完成进度以及数据切片的导入进度确定出目标任务的处理完成时间更加准确,且可以有效监测任务处理引擎的各处理阶段是否出现异常。

Description

任务处理方法、装置和电子设备
技术领域
本公开涉及互联网技术领域,尤其涉及一种任务处理方法、装置和电子设备。
背景技术
随着大数据处理技术领域的发展,衍生出了许多用于大数据计算的引擎,例如,MapReduce计算框架、Storm流计算框架、Spark计算框架和Flink框架等。而大数据计算模式主要分为批量计算流式计算,其中,MapReduce计算框架、Storm流计算框架、Spark计算框架和Flink框架均可以用于批量计算;但是,由于批量计算在离线数仓的建设过程中,需要定时将数据进行产出,供下游依赖任务消费使用,因此,需要实时获取批量计算过程的任务进度,以便预测数据的产出时间。
发明内容
提供该公开内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该公开内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本公开实施例提供了一种任务处理方法、装置和电子设备,通过获得多个数据切片,从而可以使得确定出的算子的完成进度和数据切片的导入进度更加准确;从而也就可以使得利用算子的完成进度和数据切片的导入进度,确定出的目标任务的处理完成时间更加准确。
第一方面,本公开实施例提供了一种任务处理方法,包括:对目标任务对应的数据集合中除空洞数据外的原始数据进行数据切片划分,获得至少一个数据切片;将数据切片导入至算子处理层,其中,算子处理层包括至少一个算子,算子用于处理数据切片;确定并展示数据切片的导入进度和各算子的完成进度。
第二方面,本公开实施例提供了一种任务处理装置,包括:第一确定单元,用于响应于确定任务处理引擎处理目标任务,确定与上述目标任务对应的目标存储空间,其中,上述目标存储空间用于存储与上述目标任务对应的数据;划分单元,用于基于预配置的数目,对上述目标存储空间中的数据进行数据切片划分,获得至少一个数据切片,其中,上述预配置的数目用于指示各数据切片中数据的数目;导入单元,用于将数据切片导入至算子处理层,其中,算子处理层包括至少一个算子,算子用于处理数据切片;第二确定单元,用于确定并展示数据切片的导入进度和各算子的完成进度。
第三方面,本公开实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得上述一个或多个处理器实现如第一方面上述的任务处理方法。
第四方面,本公开实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面上述的任务处理方法的步骤。
本公开实施例提供的任务处理方法、装置和电子设备,通过确定目标任务对应的目标存储空间,并可以根据预配置的数目对目标存储空间中的数据进行划分,获得至少一个数据切片;使得大部分数据切片中的数据的数量相同,从而可以使得任务处理每个数据切片的处理事件大致相同;从而使得确定并展示的各算子的完成进度以及数据切片的导入进度更加准确。换言之,通过上述方式,可以使得确定出的各算子的完成进度以及数据切片的导入进度更加准确,从而也就可以使得利用各算子的完成进度以及数据切片的导入进度确定出目标任务的处理完成时间更加准确,且可以有效监测任务处理引擎的各处理阶段是否出现异常。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1是根据本公开的任务处理方法的一个实施例的流程图;
图2A和2B是根据本公开的任务处理方法的一个实施例的处理进程图;
图3是根据本公开的任务处理方法的又一个实施例的处理进程图;
图4是根据本公开的任务处理方法的一个实施例的界面展示示意图;
图5是根据本公开的任务处理装置的一个实施例的结构示意图;
图6是本公开的一个实施例的任务处理方法可以应用于其中的示例性系统架构;
图7是根据本公开实施例提供的电子设备的基本结构的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
请参考图1,其示出了根据本公开的任务处理方法的一个实施例的流程。该任务处理方法可以应用于终端设备。如图1所示该任务处理方法,包括以下步骤:
步骤101,响应于确定任务处理引擎处理目标任务,确定与目标任务对应的目标存储空间。
在这里,目标存储空间用于存储与目标任务对应的数据。
在这里,任务处理引擎可以理解为以任务为驱动的引擎,也即,任务处理引擎可以以任务对应的数据集合为处理单元对数据进行处理。而不同任务对应的数据集合中的数据数量不同,因此,任务处理引擎每次处理的数据数量可能不同。作为示例,任务处理引擎可以为基于Flink框架的处理引擎。
在这里,目标任务可以为任务处理引擎需处理的多个任务中的任一任务。
作为示例,任务处理引擎在进行批量数据(可能包括了多个任务,例如:结算任务、平均计算任务等)处理时,可以将数据根据任务的不同对数据进行划分。换言之,一个数据集合可以对应一个任务。而目标任务可以理解为多个任务中的任一任务。而由于数据存储于存储空间内,因此,一个任务也可以对应一个存储空间。相应的,目标任务与目标存储空间对应。
步骤102,基于预配置的数目,对目标存储空间中的数据进行数据切片划分,获得至少一个数据切片。
在这里,预配置的数目用于指示各数据切片中的数据的数目。
在这里,目标存储空间可以包括多个存储单元,一个存储单元可以对应一个数据。
作为示例,一些数据可能有一定的时效性,因此在任务处理引擎批量处理数据的过程中,某些数据可能已将失效了,而这些失效的数据所对应的存储单元则可以理解为数据空洞。
作为示例,各数据切片中的数据可以为去除失效数据之后的数据,各数据切片中的数据也可以包括失效数据。也即,预配置的数目仅是用于指示各数据切片中共有多少数据,而具体数据切片中是否包括失效数据(空数据)可以根据具体地切片划分方式进行确定。
在这里,获得至少一个数据切片则也可以理解为:将数据的存储单元进行划分,从而获得至少一个数据存储单元集合,并将各数据存储单元集合中中的数据提取出获得至少一个数据切片。
作为示例,由于目标存储空间中的存储单元的个数可能不是预配置数目的整数倍,使得划分出的最后一个数据切片中的数据的数量与其它数据切片中的数据的数量可能不同。例如,目标存储空间中有10500个存储单元,而预配置的数目为1000,则前10个数据切片中,每个数据切片均包括1000个数据,而最后一个数据切片仅包括500个数据,也即,11个数据切片中,10个数据切片中的数据数目都是相同的。
作为示例,至少一个数据切片中,除最后一个划分出的数据切片外的其它数据切片中包括的数据的数量可以相同。换言之,划分出的数据切片中大部分数据切片中的数据的数量都是相同的。
在这里,由于大部分数据切片中的数据均相同,进而可以使得处理每个数据切片(在这里处理数据切片可以理解为:导入数据切片和/或算子计算数据切片)的时间大致相同,从而可以利用针对数据切片的处理进度,较为准确的预估目标任务处理完成的时间。
可以看出,通过使切片数据中包括相同数量的数据,可以使得在根据切片数据确定进度时,确定出的进度可以更准确的反映针对目标任务的真实处理进度。同时,通过将目标存储空间中的数据划分为多个数据切片,可以将数据切片进行并行处理,从而也可以提升针对目标任务的处理效率。
步骤103,将数据切片导入至算子处理层。
在这里,算子处理层可以包括至少一个算子,算子处理层中的算子可以用于处理数据切片中的数据。
一般而言,至少一个算子可以并行或者串行的方式处理数据切片,例如,如图2A和图2B所示,图2A为利用算子处理层中的两个算子(算子A和算子B)串行处理数据切片,而图2B为利用算子处理层中的两个算子(算子A和算子B)并行处理4个数据切片,可以看出,当算子A与算子B并行处理数据切片时,算子B用于处理算子A输出的数据切片,而当算子A和算子B并行处理数据切片时,算子A和算子B可以处理不同的数据切片(算子A可以用于处理数据切片a和数据切片c,而算子B则可以用户处理数据切片b和数据切片d)。
步骤104,确定并展示数据切片的导入进度和各算子的完成进度。
在这里,可以根据数据切片的导入进度,确定目标任务还有多少数据切片未导入至算子处理层。作为示例,数据切片的导入进度可以理解为:已导入的数据切片与至少一个数据切片的比例关系。例如,对目标任务的数据集合进行数据切片划分,获得8个数据切片,此时已导入了4个数据切片,则可以理解为此时数据切片的导入进度为50%,也即,还有50%数据切片未导入至算子处理层。
在这里,算子的完成进度可以用于表征算子的处理效率是否可以跟上导入效率,作为示例,当算子的已接收的数据切片与算子已处理的数据切片之间的比例已经大于导入进度所指示的比例时,则可以表征算子的处理效率可以跟上导入效率,进而可以将导入进度确定为完成进度。同时,算子的完成进度还可以相对准确的反映算子已处理数据切片的数量和需要处理的数据切片的总量之间的比例关系。
作为示例,算子的完成进度可以基于算子已处理的数据切片的数量,和接收到的数据切片的数量进行确定,例如,算子已处理的数据切片的数量为1,已接收到的数据切片的数量为4;且此时算子的完成进度为25%。
作为示例,算子处理层中的算子可能以并联的方式处理数据切片,也即,如图2B所示,此时,则可以对至少一个数据切片进行划分,例如,部分数据切片需要导入至算子A,而部分数据切片需要导入至数据B。也即,此时,数据切片的导入进度可以根据导入至算子A和算子B的数据切片的总量,与至少一个数据切片的总量进行对比获得。当然,在这种情况下,也可以展示多个导入进度,也即,已导入至算子A的数据切片的数量,与需要导入至算子A的数据切片的数量进行对比,获得一个导入进度;已导入至算子B的数据切片的数量,与需要导入至算子B的数据切片的数量进行对比,获得一个导入进度;根据导入至算子A和算子B的数据切片的总量,与至少一个数据切片的总量进行对比,获得一个导入进度。
为了便于理解,以切片数据的总量为4个进行举例说明,例如,有两个数据切片需要导入至算子A,另两个数据切片需要导入至算子B,若此时已经导入算子A一个数据切片,而导入算子B两个数据切片,则此时展示的导入进度可以为75%。也可以展示,总导入进度为75%,导入至算子A的导入进度为50%,导入至算子B的导入进度为100%。而具体展示方式,可以根据实际情况进行选取。
在这里,由于大部分数据切片中数据的数量相同,因此,算子处理每个数据切片的时间也大致相同;相应的,导入每个数据至算子处理层所花费的时间也大致相同;从而,可以使得展示的各算子的完成进度和数据切片的导入进度更加准确,也就可以使得利用各算子的完成进度和数据切片的导入进度确定出的目标任务的处理完成时间更加准确。
可以看出,通过确定目标任务对应的目标存储空间,并可以根据预配置的数目对目标存储空间中的数据进行划分,获得至少一个数据切片;使得大部分数据切片中的数据的数量相同,从而可以使得任务处理每个数据切片的处理事件大致相同;从而使得确定并展示的各算子的完成进度以及数据切片的导入进度更加准确。换言之,通过上述方式,可以使得确定出的各算子的完成进度以及数据切片的导入进度更加准确,从而也就可以使得利用各算子的完成进度以及数据切片的导入进度确定出目标任务的处理完成时间更加准确,且可以有效监测任务处理引擎的各处理阶段是否出现异常。
在一些实施例中,基于各算子的完成进度和数据切片的导入进度,确定目标任务的处理完成时间。
在这里,可以利用处理完成时间配置处理任务。作为示例,当确定目标任务处理完成时间后,即可确定完成之后下一个需要处理的任务;当然,在一些实现方式中,当目标任务被处理完成后,还可能利用处理完成的目标任务的数据进行一些处理,此时,可能也需要对执行主体的处理任务进行调节(例如,可能会短暂暂停某些任务的处理,或者延后某些任务的处理,以避免在目标任务处理完成时间,执行主体由于需要处理大量任务,而造成的宕机现象等)。
作为示例,确定出的处理完成时间可以是一个时间范围,也即,目标任务可能会在该时间范围内被任务处理引擎处理完成。
可以看出,由于可能需要利用处理完成时间配置处理任务,确定出的目标任务完成时间越精确,也就可以避免了在目标任务处理完成时刻,执行主体同时执行大量任务。
在一些实施例中,可以基于已处理时长、算子的完成进度和导入进度来确定导入速度和算子的计算速度。
在这里,处理时长可以细分为导入时长和算子处理时长。
举例说明,若有10个数据切片,当前导入时长为6秒,导入进度为60%,算子A处理时长为2秒,完成进度为60%,算子B的处理时长为1秒,完成进度为60%,(算子A和算子B串行),此时可以看出,将全部数据导入至算子处理层需要10秒,也即,导入速度为1个/每秒,而算子A可能在2秒可能处理了4个数据切片,处理速度为2个/每秒,而算子B在1秒可能处理了3个数据切片,处理速度为3个/每秒;因此,处理完成整个数据切片可能仅需11-13秒。也即,根据处理速度以及处理时长,可以预估处理完成整个数据切片的时间,从而也就可以预测目标任务处理完成的时间。
作为示例,目标任务被算子处理层处理完成可以分为两个步骤(步骤a和步骤b),步骤a:将目标任务对应的数据集合导入至算子处理层,步骤b,利用算子处理层处理数据集合。也即,通过确定导入进度和算子的完成进度,可以较为准确地预测目标任务对应的数据集合被处理完成的时间。
在一些实施例中,步骤102(可以基于预配置的数目,对目标存储空间中的数据进行数据切片划分,获得至少一个数据切片)具体可以包括:将目标存储空间中数据存储单元依次排序,获得与每个数据存储单元对应的排序标识;根据预配置的数目,确定目标排序标识;响应于确定目标排序标识包括末尾排序标识,基于确定出的目标排序标识,获得至少一个数据切片;响应于确定目标排序标识不包括末尾排序标识,基于确定出的目标排序标识和末尾排序标识,获得至少一个数据切片。
在这里,每个数据存储单元用于存储一个数据。
在这里,目标排序标识和首个排序标识之间的排序标识数目,可以等于预配置的数目的整数倍。
作为示例,每个数据存储单元对应一个排序标识,则可以根据预配置的数目对目标存储空间中的数据进行快速划分,获得至少一个数据切片。例如,目标存储空间中有10000个数据,则有10000个数据存储单元,则可以对10000个数据存储单元进行排序,如从‘1’-‘10000’进行排序,若预配置的数目为1000,则可以将序号(可以理解为排序标识)为‘1’-‘1000’的数据存储单元中的数据划分为一个数据切片,将序号为‘1001’-‘2000’的数据存储单元中的数据划分为一个数据切片,以此类推,可以获得10个数据切片。当然,目标存储空间中的数据的数目,可能不是预配置的数目的整数倍。例如,目标存储空间中有15000个数据,预配置的数目仍为1000时,则最后一个数据切片对应的存储单元的序号为‘10001’-‘15000’。
可以看出,通过为每个数据存储单元添加一个排序标识,则可以直接利用排序标识快速的划分数据切片,且可以保证大部分数据切片中的数据数目相同。也即,通过为每个数据存储单元添加一个排序标识,可以加快数据切片划分的效率。
在一些实施例中,步骤102(可以基于预配置的数目,对目标存储空间中的数据进行数据切片划分,获得至少一个数据切片)具体可以包括:将目标存储空间中数据存储单元依次排序,获得与每个数据存储单元对应的排序标识;根据排序标识的指示,从起始排序标识所指示的存储单元开始依次读取预配置的数目的数据,确定目标排序标识;响应于确定目标排序标识包括末尾排序标识,基于确定出的目标排序标识,获得至少一个数据切片;响应于确定目标排序标识不包括末尾排序标识,基于确定出的目标排序标识和末尾排序标识,获得至少一个数据切片。
在这里,每个数据存储单元用于存储一个数据。
在这里,目标存储单元和起始存储单元之间除数据空洞外的数据数目,可以等于所述预配置的数目的整数倍。
在这里,目标排序标识指示目标存储单元,起始排序标识指示起始存储单元。
作为示例,某些数据存储单元中存储的数据可能已经失效或者丢失,而这样的存储单元可以理解为数据空洞。
作为示例,目标存储单元和起始存储单元之间除数据空洞外的数据数目,等于所述预配置的数目的整数倍,则可以理解为:目标存储单元和起始存储单元之间的有效数据的数目等于所述预配置的数目的整数倍。
为了便于理解,进行举例说明,例如,目标存储空间中有15000个数据,则有15000个数据存储单元,则可以对15000个数据存储单元进行排序,如从‘1’-‘10000’进行排序。若预配置的数目为1000,则可以按照排序依次读取数据,例如,当读取到序号为‘1100’的数据存储单元时,读取到了1000个有效数据,则可以将序号为‘1’-‘1100’的数据存储单元中的数据划分为一个数据切片;此时也可表征序号为‘1’-‘1100’的数据存储单元中有100个数据空洞。以此类推,依次对数据存储单元进行读取,直至数据读取完毕。相应的,由于目标存储空间中的数据的数目,可能不是预配置的数目的整数倍,因此,最后一个数据切片的中的数据数目,可能与其它数据切片中的数目不同。
作为示例,通过将目标存储空间中的数据存储单元均设定有对应的排序标识,不仅可以根据标识的范围确定数据切片对应的标识范围,还可以便于获知目标任务的那些数据已被处理,那些数据还等待处理,在这里,处理可以理解为:导入处理和/或算子的计算处理。
作为示例,可以基于Flink框架的计算引擎进行举例说明,以更好的理解本公开数据切片划分的过程。例如,可以先构建基于Flink框架的计算引擎的初始化运行环境,可以根据任务启动配置信息,找到对应DTS Source的名字(这里可以理解为找到目标任务对应的数据集合),并可以通过反射Class.forName()得到对应的DTS SourcePlugin,调用initPlugin()方法开始Plugin初始化。而Source端插件初始化过程会对数据源(目标任务对应的目标存储空间中的数据)进行细粒度的切片splits划分,进度将会以split为单位向前推进。举例说明,若数据集合中有11000个数据,每个数据切片包括1000个数据,则每读取到1000个数据则可以为一个数据切片。也即,可以单个数据进行推进,当确定了1000个数据时,则划分出了一个数据切片。
可以看出,通过上述的切片划分方式,使得大部分数据切片中的有效数据的数目相同,从而也就可以避免空洞数据的干扰,从而也可以使得利用数据切片的导入进度和各算子的完成进度来确定出的目标任务完成时间更加准确。
例如,处理引擎导入500个数据通常需要1秒,若每个数据切片中包括1000个数据,若1000个数据中没有失效数据,则处理引擎导入1000个数据则需要2秒,若1000个数据中包括500个失效数据(需要说明的是,由于在任务处理引擎进行处理过程中,并不会处理失效数据,这里失效数据也可以理解为数据空洞中的数据),则实际导入时间仅需1.5秒。
也即,通过为数据存储单元进行排序,并依次读取数据获得数据切片的方式,可以使得大部分数据切片中的有效数据的数目相同,从而也就使得利用数据切片的导入进度和各算子的完成进度来确定出的目标任务完成时间更加准确。
在一些实施例中,根据游标逐个读取数据切片中的每个数据,以及对每个读取出的数据进行处理,将完成预处理的数据切片导入至算子处理层。
在这里,在将数据切片进行导入之前,可以将数据切片中的数据进行预处理。例如,可能需要将数据切片中的数据进行加‘1’处理。此时,为了使数据切片中的每个数据均被预处理,则可以利用游标逐个读取数据切片中的数据,从而,可以避免出现某些数据没有被读取到的情况。也即,通过游标逐个读取数据切片中的数据,可以使得数据切片中的数据均可以被预处理。
在一些实施例中,可以根据已完成预处理的数据切片的数量和数据切片的总量,确定数据切片的预处理进度信息,展示预处理进度信息。
在这里,在利用游标读取数据时,当游标每读取完一个数据切片,均可以进行上报,也即,可以十分便捷地确定出预处理进度信息。
在这里,还可以展示预处理进度信息,而通过预处理进度信息可以获知对切片数据的预处理进度。也即,在预估目标任务的被处理完成的时刻时,可以结合考虑预处理进度信息;从而使得预估出的目标任务被处理完成的时间更加准确。
在这里,为了便于理解,继续以基于Flink框架的计算引擎进行举例说明,当Source端切片划分后,可以调用StreamExecutionEnvironment.addSource()方法,传入DTS Source插件对象,并调用StreamExecutionEnvironment.execute()方法提交FlinkJob任务。而)Flink的执行线程Task会open数据源连接,获取该数据切片的游标resultSet,根据该游标逐个读取record,进行转化计算处理,而完成对一个record的计算处理后,会调用reachEnd()判断该Task是否结束,判断依据可以通过调用isSplitEnd()检测该任务是否已完成其所分配的数据切片的处理。例如,isSplitEnd()可以根据游标resultSet.hasNext()判断是否有下一行record数据,若有,则继续处理;若没有,则当前数据切片的数据处理完毕,递增completeSplitsCounter计数器对象,上报该数据切片预处理完成,从而获得算子的预处理进度信息。
在一些实施例中,算子处理层包括第一类型算子和第二类型算子,以及,将数据切片导入至算子处理层,包括:将数据切片导入至第一类型算子。
在这里,第二类型算子用于接收第一类型算子输出的数据切片或第二类型算子输出的数据切片。
作为示例,当算子将数据切片处理完成后,可以将数据切片进行输出。
在这里,第一类型算子则可以理解为算子处理层中用于接收导入的数据切片的算子。
作为示例,有3个算子(算子A、算子B、算子C)以串联的方式进行连接,若算子A用于接收导入的数据切片,则算子A可以理解为第一类型算子,而算子B用于接收算子A输出的数据切片,算子C用于接收算子B输出的数据切片,则算子B和算子C可以理解为第二类型算子。
在一些实施例中,可以通过如下方式确定个各算子的完成进度:响应于确定算子为第一类型算子,根据第一类型算子已处理数据切片的数量和已接收到数据切片的数量,确定第一类型算子的处理进度;并可以基于该第一类型算子的处理进度和导入进度,确定该第一类型算子的完成进度;响应于确定算子为第二类型算子,根据第二类型算子已处理数据切片的数量和已接收到数据切片的数量,确定第二类型算子的处理进度;基于该第二类型算子的上游算子的完成进度和该第二类型算子的处理进度,确定该第二类型算子的完成进度。
在这里,第二类型算子用于接收第二类型算子的上游算子处理完成的数据切片。作为示例,第二类型算子的上游算子可以为第一类型算子也可以为第一类型算子。例如,有3个算子(算子A、算子B、算子C)以串联的方式进行连接,若算子A用于接收导入的数据切片,而算子B用于接收算子A输出的数据切片,算子C用于接收算子B输出的数据切片,则算子B的上游算子为算子A(算子A为第一类型算子),而算子C的上游算子为算子B(算子B为第二类型算子)。
在这里,算子的处理进度可以理解为算子已处理的数据量和已接收数据量之间的比值。
在一些实施例中,响应于确定该第一类型算子的处理进度大于或者等于导入进度,根据导入进度确定该第一类型算子的完成进度;响应于确定该第一类型算子的处理进度小于导入进度,根据该第一类型算子的处理进度确定该第一类型算子的完成进度。
在这里,当第一类型算子的处理进度小于导入进度时,此时则可以将第一类型算子的处理进度确定为第一类型算子的完成进度;从而可以便于用户获知该第一类型算子的处理效率已经低于导入效率,并可以对该第一类型算子及时进行优化。而当第一类型算子的处理进度大于或者等于导入进度时,则可以表征该第一类型算子的处理效率已经不低于导入效率,此时将导入进度确定为第一类型算子的完成进度,使得完成进度可以更加准确的反映出算子已处理数据切片和总共需处理的数据切片之间的比值,从而可以使得利用算子的完成进度预估的处理完成时间更加准确。
作为示例,算子处理层的处理过程依赖于导入层(这里,导入层可以用于对数据集合进行数据切片划分),也即,仅有导入层将数据切片导入至算子处理层后,算子处理层才能将数据切片进行处理。因此,第一类型算子的完成进度可以不高于导入进度。而通过这种方式,则可以使得根据算子的完成进度确定出的完成时间更加准确。
作为示例,一共有10个数据切片,若已导入了5个数据切片至算子处理层,则导入进度可以理解为50%,若算子处理层中的第一类型算子接收到了4个数据切片,并已经处理完成其中的3个数据切片;则该第一类型算子对应的处理进度可以为75%,可以看出,此时该第一类型算子的处理进度已经大于导入进度,则可以以50%作为算子的完成进度。也即,此时,也可以表征该第一类型算子的处理效率可以跟上数据切片的导入效率。
相应的,当算子计算出的处理进度小于导入进度时,则可以直接以算子计算出的处理进度,确定该算子的完成进度,此时,则可以表征该算子处理效率跟不上导入效率。
可以看出,通过对比第一类型算子的处理进度和导入进度,可以确定处理引擎中的第一类型子的处理能力是否正常,例如,处理能力不正常的第一类型算子,处理进度低于导入进度。而通过这种方式,可以便捷的确定出处理能力不正常的第一类型算子。
在一些实施例中,响应于确定该第二类型算子的上游算子的完成进度大于或者等于该第二类型算子的处理进度,根据该第二类型算子的处理进度,确定该第二类型算子的完成进度;响应于确定该第二类型算子的上游算子的完成进度小于该第二类型算子的处理进度,根据该第二类型算子的上游算子的完成进度,确定该第二类型算子的完成进度。
作为示例,算子处理层中可能会出现以串联方式连接的至少两个算子,此时,第二类型算子在处理时,需要依赖该第二类型算子的上游算子的处理结果。为了便于理解,请参阅图3,算子B(第二类型算子)依赖与算子A(第二类型算子的上游算子)的处理结果,也即,算子A的处理进度可能会影响算子B的处理进度。如图3所示,仅有当算子B处理完成的数据切片才会被传输至算子B进行处理,而此时算子B的处理进度为50%,而算子A的完成进度为40%,则可以将算子A的完成进度确定为算子B的完成进度,也即,算子B的完成进度为40%。而通过这种方式,可以更加准确地确定目标任务处理完成的时间。也即,通过限制第二类型算子的完成进度不高于本身上游算子的完成进度,可以使利用算子的完成进度确定的目标任务完成时间更加准确。
在一些实施例中,也可以通过如下方式确定各算子的处理进度:根据算子已处理数据切片的数量和已接收到数据切片的数量,确定算子的处理进度;根据算子的处理进度和导入进度,确定算子的完成进度。
在这里,算子的处理进度可以理解为算子当前已接收到的数据切片的处理进度,而算子的完成进度则可以理解为算子总共要处理的数据切片的处理进度。作为示例,一共有40个数据切片,此时已经导入了8个数据切片,则可以理解为算子当前接收到8个数据切片,若算子已经处理了4个数据切片,则此时的处理进度可以为50%。但是,剩下的32个数据切片也会由算子进行处理,因此,此时将处理进度确定为算子的完成进度则不合理,也即,此时算子的完成进度则可以等于导入进度,也即,此时,算子的完成进度可以等于20%。需要说明的是,算子的实际完成进度仅为10%,而算子的处理进度为50%,而算子的完成进度为20%,可以看出,通这种方式确定出的完成进度,可以使得确定出的完成进度与算子的真实完成进度差距较小。
可以看出,通过根据算子的处理进度和导入进度,确定算子的完成进度,可以使得根据算子的完成进度和导入进度确定出的目标任务处理完成时刻更加准确。
在一些实施例中,可以展示各算子的完成进度和导入进度。
在这里,通过展示各算子的完成进度和导入进度,可以便于用户确定哪些算子处理能力以及任务处理引擎的导入能力是否正常,当发现存在异常算子时,可以及时进行处理,从而可以进一步提升任务处理引擎处理数据切片的效率。
在一些实施例中,可以以第一展示状态展示不小于导入进度的完成进度,以及以第二展示状态展示小于导入进度的完成进度;可以以第三展示状态展示导入进度。
在这里,通过以不同的展示形态展示完成进度,使得用户可以清晰且便捷地获知具体哪个算子的处理效率较低,从而可以进一步提升用户发现异常算子的效率。作为示例,可以将处理异常的算子对应的完成进度进行突出显示(例如,高亮显示、加粗显示等)。
为了便于理解,可以如图4所示,图4为执行主体的展示界面展示导入进度以及各算子的完成进度的示意图,从图4可以看出,算子A的完成进度不小于导入进度,从而可以将算子A的处理效率较为正常,而算子B的完成进度小于导入进度,则可以以第二展示状态展示算子B的完成进度,可以看出,以第二展示状态展示的算子B的完成进度,相较于以第一展示状态展示的算子A的完成进度更加明显,也即,通过这种展示方式可以很便捷地确定出那个算子处理效率不正常。而以第三展示状态展示导入进度,可以便捷地将导入进度与算子的完成进度进行区分。
进一步参考图5,作为对上述各图所示方法的实现,本公开提供了一种任务处理装置的一个实施例,该装置实施例与图1所示的任务处理方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的任务处理装置包括:第一确定单元501,用于响应于确定任务处理引擎处理目标任务,确定与上述目标任务对应的目标存储空间,其中,上述目标存储空间用于存储与上述目标任务对应的数据;划分单元502,用于基于预配置的数目,对上述目标存储空间中的数据进行数据切片划分,获得至少一个数据切片,其中,上述预配置的数目用于指示各数据切片中数据的数目;导入单元503,用于将数据切片导入至算子处理层,其中,算子处理层包括至少一个算子,算子用于处理数据切片;第二确定单元504,用于确定并展示数据切片的导入进度和各算子的完成进度。
在一些实施例中,上述装置还包括第三确定单元505,用于基于各算子的完成进度和数据切片的导入进度,确定目标任务的处理完成时间,其中,上述处理完成时间用于配置处理任务。
在一些实施例中,上述划分单元502具体还用于:将上述目标存储空间中数据存储单元依次排序,获得与每个数据存储单元对应的排序标识,其中,每个数据存储单元用于存储一个数据;根据上述预配置的数目,确定目标排序标识,其中,目标排序标识和首个排序标识之间的排序标识数目,等于上述预配置的数目的整数倍;响应于确定目标排序标识包括末尾排序标识,基于确定出的目标排序标识,获得至少一个数据切片;响应于确定目标排序标识不包括末尾排序标识,基于确定出的目标排序标识和末尾排序标识,获得至少一个数据切片。
在一些实施例中,上述划分单元502具体还用于:将上述目标存储空间中数据存储单元依次排序,获得与每个数据存储单元对应的排序标识,其中,每个数据存储单元用于存储一个数据;根据排序标识的指示,从起始排序标识所指示的存储单元开始依次读取预配置的数目的数据,确定目标排序标识,其中,目标数据存储单元和起始数据存储单元之间除数据空洞外的数据数目,等于上述预配置的数目的整数倍;其中,目标排序标识指示目标数据存储单元,上述起始排序标识指示上述起始数据存储单元;响应于确定目标排序标识包括末尾排序标识,基于确定出的目标排序标识,获得至少一个数据切片;响应于确定目标排序标识不包括末尾排序标识,基于确定出的目标排序标识和末尾排序标识,获得至少一个数据切片。
在一些实施例中,上述导入单元503具体还用于:根据游标逐个读取数据切片中的每个数据,以及对每个读取出的数据进行预处理;将完成预处理的数据切片导入至上述算子处理层。
在一些实施例中,上述装置还包括展示单元506,用于根据已完成预处理的数据切片的数量和数据切片的总量,确定数据切片的预处理进度信息;展示上述预处理进度信息。
在一些实施例中,上述算子处理层包括第一类型算子和第二类型算子,以及,上述导入单元503具体还用于:将上述数据切片导入至第一类型算子,其中,第二类型算子用于接收第一类型算子输出的数据切片或第二类型算子输出的数据切片。
在一些实施例中,装置还包括第四确定单元507,用于响应于确定算子为第一类型算子,根据第一类型算子已处理数据切片的数量和已接收到数据切片的数量,确定第一类型算子的处理进度;基于该第一类型算子的处理进度和上述导入进度,确定该第一类型算子的完成进度;响应于确定算子为第二类型算子,根据第二类型算子已处理数据切片的数量和已接收到数据切片的数量,确定第二类型算子的处理进度;基于该第二类型算子的上游算子的完成进度和该第二类型算子的处理进度,确定该第二类型算子的完成进度,其中,该第二类型算子用于接收该第二类型算子的上游算子处理完成的数据切片。
在一些实施例中,上述第四确定单元506具体还用于:响应于确定该第一类型算子的处理进度大于或者等于上述导入进度,根据上述导入进度确定该第一类型算子的完成进度;响应于确定该第一类型算子的处理进度小于上述导入进度,根据该第一类型算子的处理进度确定该第一类型算子的完成进度。
在一些实施例中,上述第四确定单元506具体还用于:响应于确定该第二类型算子的上游算子的完成进度大于或者等于该第二类型算子的处理进度,根据该第二类型算子的处理进度,确定该第二类型算子的完成进度;响应于确定该第二类型算子的上游算子的完成进度小于该第二类型算子的处理进度,根据该第二类型算子的上游算子的完成进度,确定该第二类型算子的完成进度。
在一些实施例中,上述第三确定单元506具体还用于:根据算子已处理数据切片的数量和已接收到数据切片的数量,确定算子的处理进度;根据算子的处理进度和上述导入进度,确定算子的完成进度。
在一些实施例中,展示单元506具体还用于展示各算子的完成进度和上述导入进度。
在一些实施例中,展示单元506具体还用于以第一展示状态展示不小于上述导入进度的完成进度,以及以第二展示状态展示小于上述导入进度的完成进度,其中,第一展示状态与第二展示状态不同;以第三展示状态展示上述导入进度。
请参考图6,图6示出了本公开的一个实施例的任务处理方法可以应用于其中的示例性系统架构。
如图6所示,系统架构可以包括终端设备601、602、603,网络604,服务器605。网络604可以用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备601、602、603可以通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种客户端应用,例如网页浏览器应用、搜索类应用、新闻资讯类应用。终端设备601、602、603中的客户端应用可以接收用户的指令,并根据用户的指令完成相应的功能,例如根据用户的指令在信息中添加相应信息。
终端设备601、602、603可以是硬件,也可以是软件。当终端设备601、602、603为硬件时,可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。当终端设备601、602、603为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器605可以是提供各种服务的服务器,例如接收终端设备601、602、603发送的信息获取请求,根据信息获取请求通过各种方式获取信息获取请求对应的展示信息。并展示信息的相关数据发送给终端设备601、602、603。
需要说明的是,本公开实施例所提供的信息处理方法可以由终端设备执行,相应地,任务处理装置可以设置在终端设备601、602、603中。此外,本公开实施例所提供的信息处理方法还可以由服务器605执行,相应地,信息处理装置可以设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本公开实施例的电子设备(例如图7中的终端设备或服务器)的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储装置708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、ROM702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM702被安装。在该计算机程序被处理装置701执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:对目标任务对应的数据集合中除空洞数据外的原始数据进行数据切片划分,获得至少一个数据切片;将数据切片导入至算子处理层,其中,算子处理层包括至少一个算子,算子用于处理数据切片;确定并展示数据切片的导入进度和各算子的完成进度。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (15)

1.一种任务处理方法,其特征在于,包括:
响应于确定任务处理引擎处理目标任务,确定与所述目标任务对应的目标存储空间,其中,所述目标存储空间用于存储与所述目标任务对应的数据;
基于预配置的数目,对所述目标存储空间中的数据进行数据切片划分,获得至少一个数据切片,其中,所述预配置的数目用于指示各数据切片中数据的数目;
将数据切片导入至算子处理层,其中,算子处理层包括至少一个算子,算子用于处理数据切片;
确定并展示数据切片的导入进度和各算子的完成进度,
基于各算子的完成进度和数据切片的导入进度,确定所述目标任务的处理完成时间,其中,所述处理完成时间用于配置处理任务,
基于第一类型算子的处理进度和所述导入进度,确定所述第一类型算子的完成进度;基于第二类型算子的上游算子的完成进度和所述第二类型算子的处理进度,确定所述第二类型算子的完成进度,其中,所述第二类型算子用于接收所述第二类型算子的上游算子处理完成的数据切片。
2.根据权利要求1所述的方法,其特征在于,所述基于预配置的数目,对所述目标存储空间中的数据进行数据切片划分,获得至少一个数据切片,包括:
将所述目标存储空间中数据存储单元依次排序,获得与每个数据存储单元对应的排序标识,其中,每个数据存储单元用于存储一个数据;
根据所述预配置的数目,确定目标排序标识,其中,目标排序标识和首个排序标识之间的排序标识数目,等于所述预配置的数目的整数倍;
响应于确定目标排序标识包括末尾排序标识,基于确定出的目标排序标识,获得至少一个数据切片;
响应于确定目标排序标识不包括末尾排序标识,基于确定出的目标排序标识和末尾排序标识,获得至少一个数据切片。
3.根据权利要求1所述的方法,其特征在于,所述基于预配置的数目,对所述目标存储空间中的数据进行数据切片划分,获得至少一个数据切片,包括:
将所述目标存储空间中数据存储单元依次排序,获得与每个数据存储单元对应的排序标识,其中,每个数据存储单元用于存储一个数据;
根据排序标识的指示,从起始排序标识所指示的存储单元开始依次读取预配置的数目的数据,确定目标排序标识,其中,目标数据存储单元和起始数据存储单元之间除数据空洞外的数据数目,等于所述预配置的数目的整数倍;其中,目标排序标识指示目标数据存储单元,所述起始排序标识指示所述起始数据存储单元;
响应于确定目标排序标识包括末尾排序标识,基于确定出的目标排序标识,获得至少一个数据切片;
响应于确定目标排序标识不包括末尾排序标识,基于确定出的目标排序标识和末尾排序标识,获得至少一个数据切片。
4.根据权利要求1所述的方法,其特征在于,所述将数据切片导入至算子处理层,包括:
根据游标逐个读取数据切片中的每个数据,以及对每个读取出的数据进行预处理;
将完成预处理的数据切片导入至所述算子处理层。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据已完成预处理的数据切片的数量和数据切片的总量,确定数据切片的预处理进度信息;
展示所述预处理进度信息。
6.根据权利要求1所述的方法,其特征在于,所述算子处理层包括第一类型算子和第二类型算子,以及,所述将数据切片导入至算子处理层,包括:
将所述数据切片导入至第一类型算子,其中,第二类型算子用于接收第一类型算子输出的数据切片或第二类型算子输出的数据切片。
7.根据权利要求6所述的方法,其特征在于,通过如下方式确定各算子的完成进度:
响应于确定算子为第一类型算子,根据第一类型算子已处理数据切片的数量和已接收到数据切片的数量,确定第一类型算子的处理进度;
基于该第一类型算子的处理进度和所述导入进度,确定该第一类型算子的完成进度;
响应于确定算子为第二类型算子,根据第二类型算子已处理数据切片的数量和已接收到数据切片的数量,确定第二类型算子的处理进度;
基于该第二类型算子的上游算子的完成进度和该第二类型算子的处理进度,确定该第二类型算子的完成进度,其中,该第二类型算子用于接收该第二类型算子的上游算子处理完成的数据切片。
8.根据权利要求7所述的方法,其特征在于,所述基于该第一类型算子的处理进度和所述导入进度,确定该第一类型算子的完成进度,包括:
响应于确定该第一类型算子的处理进度大于或者等于所述导入进度,根据所述导入进度确定该第一类型算子的完成进度;
响应于确定该第一类型算子的处理进度小于所述导入进度,根据该第一类型算子的处理进度确定该第一类型算子的完成进度。
9.根据权利要求7所述的方法,其特征在于,所述基于该第二类型算子的上游算子的完成进度和该第二类型算子的处理进度,确定该第二类型算子的完成进度,包括:
响应于确定该第二类型算子的上游算子的完成进度大于或者等于该第二类型算子的处理进度,根据该第二类型算子的处理进度,确定该第二类型算子的完成进度;
响应于确定该第二类型算子的上游算子的完成进度小于该第二类型算子的处理进度,根据该第二类型算子的上游算子的完成进度,确定该第二类型算子的完成进度。
10.根据权利要求1所述的方法,其特征在于,通过如下方式确定各算子的完成进度:包括:
根据算子已处理数据切片的数量和已接收到数据切片的数量,确定算子的处理进度;
根据算子的处理进度和所述导入进度,确定算子的完成进度。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
展示各算子的完成进度和所述导入进度。
12.根据权利要求11所述的方法,其特征在于,所述展示各算子的完成进度和所述导入进度,包括:
以第一展示状态展示不小于所述导入进度的完成进度,以及以第二展示状态展示小于所述导入进度的完成进度,其中,第一展示状态与第二展示状态不同;
以第三展示状态展示所述导入进度。
13.一种任务处理装置,其特征在于,包括:
第一确定单元,用于响应于确定任务处理引擎处理目标任务,确定与所述目标任务对应的目标存储空间,其中,所述目标存储空间用于存储与所述目标任务对应的数据;
划分单元,用于基于预配置的数目,对所述目标存储空间中的数据进行数据切片划分,获得至少一个数据切片,其中,所述预配置的数目用于指示各数据切片中数据的数目;
导入单元,用于将数据切片导入至算子处理层,其中,算子处理层包括至少一个算子,算子用于处理数据切片;
第二确定单元,用于确定并展示数据切片的导入进度和各算子的完成进度;
第三确定单元,用于基于各算子的完成进度和数据切片的导入进度,确定目标任务的处理完成时间,其中,所述处理完成时间用于配置处理任务,
第四确定单元,用于基于第一类型算子的处理进度和所述导入进度,确定所述第一类型算子的完成进度;基于第二类型算子的上游算子的完成进度和所述第二类型算子的处理进度,确定所述第二类型算子的完成进度,其中,所述第二类型算子用于接收所述第二类型算子的上游算子处理完成的数据切片。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一所述的方法。
CN202110563454.XA 2021-05-21 2021-05-21 任务处理方法、装置和电子设备 Active CN113176937B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110563454.XA CN113176937B (zh) 2021-05-21 2021-05-21 任务处理方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110563454.XA CN113176937B (zh) 2021-05-21 2021-05-21 任务处理方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN113176937A CN113176937A (zh) 2021-07-27
CN113176937B true CN113176937B (zh) 2023-09-12

Family

ID=76929668

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110563454.XA Active CN113176937B (zh) 2021-05-21 2021-05-21 任务处理方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN113176937B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117312761B (zh) * 2023-11-28 2024-03-05 凯美瑞德(苏州)信息科技股份有限公司 一种数据片段处理时间计算方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000276379A (ja) * 1999-03-24 2000-10-06 Casio Comput Co Ltd 進捗状況表示装置及び記憶媒体
CN102184124A (zh) * 2011-05-11 2011-09-14 中国科学院深圳先进技术研究院 任务调度方法及系统
CN103365713A (zh) * 2012-04-01 2013-10-23 华为技术有限公司 一种资源的调度和管理方法及装置
CN106294451A (zh) * 2015-05-28 2017-01-04 阿里巴巴集团控股有限公司 一种数据处理中显示处理进度的方法及其装置
CN107547270A (zh) * 2017-08-14 2018-01-05 天脉聚源(北京)科技有限公司 一种智能分配任务分片的方法及装置
CN110471989A (zh) * 2019-08-16 2019-11-19 天脉聚源(杭州)传媒科技有限公司 基于区块链的下载任务进度调控方法、系统及存储介质
WO2020000349A1 (zh) * 2018-06-29 2020-01-02 财团法人交大思源基金会 分布式计算方法与管理系统
CN111240890A (zh) * 2018-11-29 2020-06-05 阿里巴巴集团控股有限公司 数据处理方法、快照处理方法、装置及计算设备
CN111950974A (zh) * 2020-07-02 2020-11-17 广州仓实信息科技有限公司 进度信息处理方法、装置、计算机设备和存储介质
CN112148455A (zh) * 2020-09-29 2020-12-29 星环信息科技(上海)有限公司 一种任务处理方法、设备及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9514214B2 (en) * 2013-06-12 2016-12-06 Microsoft Technology Licensing, Llc Deterministic progressive big data analytics
US20160378557A1 (en) * 2013-07-03 2016-12-29 Nec Corporation Task allocation determination apparatus, control method, and program
US20170068751A1 (en) * 2014-05-07 2017-03-09 Sankhya Technologies Private Limited Manifold system and synthesis of a manifold system from input models
JP6703804B2 (ja) * 2014-06-24 2020-06-03 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000276379A (ja) * 1999-03-24 2000-10-06 Casio Comput Co Ltd 進捗状況表示装置及び記憶媒体
CN102184124A (zh) * 2011-05-11 2011-09-14 中国科学院深圳先进技术研究院 任务调度方法及系统
CN103365713A (zh) * 2012-04-01 2013-10-23 华为技术有限公司 一种资源的调度和管理方法及装置
CN106294451A (zh) * 2015-05-28 2017-01-04 阿里巴巴集团控股有限公司 一种数据处理中显示处理进度的方法及其装置
CN107547270A (zh) * 2017-08-14 2018-01-05 天脉聚源(北京)科技有限公司 一种智能分配任务分片的方法及装置
WO2020000349A1 (zh) * 2018-06-29 2020-01-02 财团法人交大思源基金会 分布式计算方法与管理系统
CN111240890A (zh) * 2018-11-29 2020-06-05 阿里巴巴集团控股有限公司 数据处理方法、快照处理方法、装置及计算设备
CN110471989A (zh) * 2019-08-16 2019-11-19 天脉聚源(杭州)传媒科技有限公司 基于区块链的下载任务进度调控方法、系统及存储介质
CN111950974A (zh) * 2020-07-02 2020-11-17 广州仓实信息科技有限公司 进度信息处理方法、装置、计算机设备和存储介质
CN112148455A (zh) * 2020-09-29 2020-12-29 星环信息科技(上海)有限公司 一种任务处理方法、设备及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
自升式钻井平台多项目调度优化技术研究;胡载萍;《中国优秀硕士学位论文全文数据库》;全文 *

Also Published As

Publication number Publication date
CN113176937A (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
CN111475298B (zh) 任务处理方法、装置、设备及存储介质
CN110704751B (zh) 数据处理方法、装置、电子设备及存储介质
CN111368185B (zh) 数据展示方法、装置、存储介质及电子设备
CN110634047B (zh) 一种推荐房源的方法、装置、电子设备及存储介质
CN111679990B (zh) 测试数据生成方法、装置、可读介质及电子设备
CN111258736B (zh) 信息处理方法、装置和电子设备
CN112379982B (zh) 任务处理方法、装置、电子设备及计算机可读存储介质
CN111259636B (zh) 文档渲染方法、装置和电子设备
CN112099982A (zh) 一种崩溃信息定位方法、装置、介质和电子设备
CN115357350A (zh) 任务配置方法、装置、电子设备和计算机可读介质
CN113176937B (zh) 任务处理方法、装置和电子设备
CN111858381B (zh) 应用程序容错能力测试方法、电子设备及介质
CN110888773B (zh) 一种获取线程标识的方法、装置、介质和电子设备
CN111596992A (zh) 导航栏展示方法、装置和电子设备
CN111628938A (zh) 分支合并的方法、装置、电子设备及计算机存储介质
CN110715654A (zh) 终端设备的运动轨迹确定方法、装置、电子设备
CN110633411A (zh) 一种筛选房源的方法、装置、电子设备及存储介质
CN112422648B (zh) 数据同步方法和系统
CN111459893B (zh) 文件处理方法、装置和电子设备
CN111680754B (zh) 图像分类方法、装置、电子设备及计算机可读存储介质
CN110941683B (zh) 获取空间中对象属性信息的方法、装置、介质和电子设备
CN115002557B (zh) 一种网速预测方法、装置、设备和存储介质
CN114651237A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN111309549B (zh) 监控方法、系统、可读介质及电子设备
CN113672675B (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
CB02 Change of applicant information

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant