CN108628675A - 一种数据处理方法、装置、设备及计算机可读存储介质 - Google Patents

一种数据处理方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN108628675A
CN108628675A CN201810455853.2A CN201810455853A CN108628675A CN 108628675 A CN108628675 A CN 108628675A CN 201810455853 A CN201810455853 A CN 201810455853A CN 108628675 A CN108628675 A CN 108628675A
Authority
CN
China
Prior art keywords
calculating
data
task
batch
data processing
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
CN201810455853.2A
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.)
Wuba Co Ltd
Original Assignee
Wuba 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 Wuba Co Ltd filed Critical Wuba Co Ltd
Priority to CN201810455853.2A priority Critical patent/CN108628675A/zh
Publication of CN108628675A publication Critical patent/CN108628675A/zh
Pending legal-status Critical Current

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

Landscapes

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

Abstract

本发明提供了一种数据处理方法、装置、设备及计算机可读存储介质,其中数据处理方法包括:确定计算任务,计算任务中包含若干计算操作;根据各计算操作之间的依赖关系,将计算任务划分为具有逻辑执行顺序的若干批次;读取目标数据,基于目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务。本发明的技术方案,通过将计算任务划分为具有逻辑执行顺序的若干批次,并按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务,可以提高数据处理的效率。

Description

一种数据处理方法、装置、设备及计算机可读存储介质
技术领域
本发明涉及信息处理领域,特别涉及一种数据处理方法、装置、设备及计算机可读存储介质。
背景技术
大数据分析平台提供各行各业大数据分析、数据挖掘、数据可视化等功能,充分发挥了大数据的价值。数据分析平台中漏斗、留存和分群等是核心功能,此功能基础和核心就是大量Bitmap(位图)的存储与分析计算。其中,Bitmap作为一种数据结构,一组连续的bit,用来记录流量来源、内容使用、用户属性和行为等数据。基础Bitmap数据通常以TB为单位,毫无疑问Bitmap的存储和计算是一个难点。目前通用的存储、计算方案为以Bitmap为单位存储,存储计算分离,服务查询方需要将所有Bitmap读取到本机然后计算结果。
然而,现有的计算方案在计算效率上并不能满足需求,如何提高数据计算效率成为目前亟待解决的技术问题。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种解决上述问题的数据处理方法、装置、设备及计算机可读存储介质。
依据本发明实施例的一个方面,提供了一种数据处理方法,包括:
确定计算任务,所述计算任务中包含若干计算操作;
根据各计算操作之间的依赖关系,将所述计算任务划分为具有逻辑执行顺序的若干批次;
读取目标数据,基于所述目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务。
可选的,在本发明实施例所述的数据处理方法中,所述计算操作至少包括如下操作描述信息之一:
计算操作的名称、计算操作所采用计算方法的名称、计算操作所依赖的数据、计算操作的结果。
可选的,在本发明实施例所述的数据处理方法中,所述根据各计算操作之间的依赖关系,将所述计算任务划分为具有逻辑执行顺序的若干批次,包括:
根据各计算操作所依赖的数据,确定各计算操作之间的依赖关系;
以被依赖的计算操作所归属的计算任务批次的执行顺序优于依赖的计算操作所归属的计算任务批次为划分标准,进行批次划分。
可选的,在本发明实施例所述的数据处理方法中,所述以被依赖的计算操作所归属的计算任务批次的执行顺序优于依赖的计算操作所归属的计算任务批次为划分标准,进行批次划分,包括:
将依赖于所述目标数据的计算操作,划分为第一批次的计算任务;
将依赖于第i批次计算任务的结果的计算操作,划分为第i+1批次的计算任务;其中,第i批次的计算任务的执行顺序优于第i+1批次的计算任务的执行顺序,所述i≥1。
可选的,在本发明实施例所述的数据处理方法中,在执行各批次的计算任务时,针对每个批次的计算任务,采用并行的方式执行本批次计算任务内的各计算操作。
可选的,在本发明实施例所述的数据处理方法中,在确定计算任务之前,还包括:获取待加载数据,并将所述待加载数据存储在预设的存储层中;
所述读取目标数据包括:在所述存储层中读取所述目标数据。
可选的,在本发明实施例所述的数据处理方法中,所述将所述待加载数据存储在预设的存储层中,包括:
将所述待加载数据进行分片;
将分片后的待加载数据存储在所述存储层中。
可选的,在本发明实施例所述的数据处理方法中,所述在所述存储层中读取所述目标数据,包括:
在所述存储层中并行读取所述计算任务所需的目标数据的各个分片;
将读取到的各个分片组成完整的数据,得到目标数据。
可选的,在本发明实施例所述的数据处理方法中,所述获取待加载数据,包括:
获取所述待加载数据的存储路径,并将所述存储路径存入缓存队列;
依次读取所述缓存队列中每个待加载数据的存储路径,根据得到的每个存储路径获取对应的待加载数据。
可选的,在本发明实施例所述的数据处理方法中,所述目标数据为位图Bitmap数据。
依据本发明实施例的另一个方面,提供了一种数据处理装置,包括任务确定模块、任务划分模块、数据获取模块及任务执行模块;
所述任务确定模块,用于确定计算任务,所述计算任务中包含若干计算操作;
所述任务划分模块,用于根据各计算操作之间的依赖关系,将所述计算任务划分为具有逻辑执行顺序的若干批次;
所述数据获取模块,用于读取目标数据;
所述任务执行模块,用于基于所述目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务。
可选的,在本发明实施例所述的数据处理装置中,所述计算操作至少包括如下操作描述信息之一:
计算操作的名称、计算操作所采用计算方法的名称、计算操作所依赖的数据、计算操作的结果。
可选的,在本发明实施例所述的数据处理装置中,所述任务划分模块具体用于:
根据各计算操作所依赖的数据,确定各计算操作之间的依赖关系;
以被依赖的计算操作所归属的计算任务批次的执行顺序优于依赖的计算操作所归属的计算任务批次为划分标准,进行批次划分。
可选的,在本发明实施例所述的数据处理装置中,所述任务划分模块具体用于:
将依赖于所述目标数据的计算操作,划分为第一批次的计算任务;
将依赖于第i批次计算任务的结果的计算操作,划分为第i+1批次的计算任务;其中,第i批次的计算任务的执行顺序优于第i+1批次的计算任务的执行顺序,所述i≥1。
可选的,在本发明实施例所述的数据处理装置中,所述任务执行模块具体用于:
在执行各批次的计算任务时,针对每个批次的计算任务,采用并行的方式执行本批次计算任务内的各计算操作。
可选的,在本发明实施例所述的数据处理装置中,还包括获取模块和存储模块:
所述获取模块,用于在确定计算任务之前,获取待加载数据;
所述存储模块,用于将所述待加载数据存储在预设的存储层中;
所述任务执行模块,用于在所述存储层中读取所述目标数据。
可选的,在本发明实施例所述的数据处理装置中,所述存储模块具体用于:
将所述待加载数据进行分片;
将分片后的待加载数据存储在所述存储层中。
可选的,在本发明实施例所述的数据处理装置中,所述数据获取模块具体用于:
在所述存储层中并行读取所述计算任务所需的目标数据的各个分片;
将读取到的各个分片组成完整的数据,得到目标数据。
可选的,在本发明实施例所述的数据处理装置中,所述获取模块具体用于:
获取所述待加载数据的存储路径,并将所述存储路径存入缓存队列;
依次读取所述缓存队列中每个待加载数据的存储路径,根据得到的每个存储路径获取对应的待加载数据。
可选的,在本发明实施例所述的数据处理装置中,所述目标数据为位图Bitmap数据。
依据本发明实施例的第三个方面,提供了一种数据处理设备,所述数据处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的数据处理方法的步骤。
依据本发明实施例的第四个方面,提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述数据处理方法的步骤。
本发明实施例的有益效果如下:
本发明实施例提供的数据处理方法、装置、设备及计算机可读存储介质,根据计算操作之间的依赖关系,将计算任务划分为具有逻辑执行顺序的若干批次,并按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务,本发明实施例通过该操作,优化了计算策略,极大的提高了计算效率,进而提升了用户的体验。
附图说明
图1为本发明第一实施例中数据处理方法的流程示意图;
图2为本发明第二实施例中数据处理方法的流程示意图;
图3为本发明第三实施例中数据处理方法的流程示意图;
图4为本发明第四实施例中数据处理方法的流程示意图;
图5为本发明第五实施例中数据处理方法的流程示意图;
图6为本发明第六实施例中数据处理方法的流程示意图;
图7为本发明第七实施例中数据处理装置的结构示意图;
图8为本发明第八实施例中数据处理装置的结构示意图;
图9为本发明实例1中数据处理装置的架构示意图;
图10为本发明实例1中将计算操作进行批次划分后的结果示意图;
图11为本发明第九实施例中数据处理设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于唯一限定本发明。
根据本发明的第一实施例,提供了一种数据处理方法。图1为本发明第一实施例中数据处理方法的流程示意图,如图1所示,本发明第一实施例的数据处理方法,包括以下步骤:
S101:确定计算任务,所述计算任务中包含若干计算操作。
具体的,本发明实施例为了标准化数据计算过程,将计算任务进行最小单元的粒度划分,每个粒度定义为一个计算操作,本实施例中将每个计算操作抽象为一个Action模型,其中Action模型即为计算操作的操作描述。
其中,操作描述至少包括如下信息之一:计算操作的名称(name)、计算操作所采用计算方法的名称(op)、计算操作所依赖的数据(fields)、计算操作的结果(result)。
下表为一个具体的Action模型示例,其中计算操作所依赖的数据为位图Bitmap或另一个计算操作的结果。
针对位图Bitmap数据而言,Action计算类型包括交、并、差、异或等。
S102:根据各计算操作之间的依赖关系,将所述计算任务划分为具有逻辑执行顺序的若干批次。
S103:读取目标数据,基于所述目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务。
所述目标数据是为了完成计算任务所需要的数据,即计算任务所依赖的数据。可选的,所述目标数据为位图bitmap数据。基于所述目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务,也就是说,基于读取的目标数据,分别执行各批次的计算任务。其中,目标数据可以为多个批次的计算任务所依赖的数据(例如目标数据为第一批次的计算任务、第二批次的计算任务、第三批次的计算任务所依赖的数据),也可以仅为第一批次的计算任务所依赖的数据。
本发明第一实施例提供的数据处理方法,根据计算操作之间的依赖关系,将计算任务划分为具有逻辑执行顺序的若干批次,并按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务,可以提高数据处理的效率,提升用户的体验。
根据本发明的第二实施例,提供了一种数据处理方法。图2为本发明第二实施例中数据处理方法的流程示意图,如图2所示,本发明第二实施例的数据处理方法,包括以下步骤:
S201:确定计算任务,所述计算任务中包含若干计算操作。
本实施例中,计算操作至少包括如下操作描述信息之一:计算操作的名称、计算操作所采用计算方法的名称、计算操作所依赖的数据、计算操作的结果。
关于计算操作的具体描述可参见第一实施例,本实施例不再赘述。
S202:根据各计算操作所依赖的数据,确定各计算操作之间的依赖关系。
在实施例中,由于计算任务包含若干计算操作,而每个计算操作所依赖的数据是不同的,有的计算操作依赖的是最原始的数据,即目标数据,有的计算操作依赖的是其中一个计算操作的计算结果,而有的计算操作既依赖目标数据,同时又依赖其中一个计算操作的计算结果。所以各计算操作之间包括依赖关系。例如,如果计算操作A依赖的是计算操作B的计算结果,则称为计算操作A依赖于计算操作B。
S203:以被依赖的计算操作所归属的计算任务批次的执行顺序优于依赖的计算操作所归属的计算任务批次为划分标准,进行批次划分。
作为本发明一种可选的实施方式,以被依赖的计算操作所归属的计算任务批次的执行顺序优于依赖的计算操作所归属的计算任务批次为划分标准,进行批次划分,包括:
将依赖于所述目标数据的计算操作,划分为第一批次的计算任务;
将依赖于第i批次计算任务的结果的计算操作,划分为第i+1批次的计算任务;其中,第i批次的计算任务的执行顺序优于第i+1批次的计算任务的执行顺序,所述i≥1。
S204:读取目标数据,基于所述目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务。
本发明第二实施例提供的数据处理方法,提供了一种根据计算操作之间的依赖关系将计算任务划分为具有逻辑执行顺序的若干批次的具体实现方式,并按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务,可以提高数据处理的效率。
根据本发明的第三实施例,提供了一种数据处理方法。图3为本发明第三实施例中数据处理方法的流程示意图,如图3所示,本发明第三实施例的数据处理方法,包括以下步骤:
S301:确定计算任务,所述计算任务中包含若干计算操作。
本实施例中,计算操作至少包括如下操作描述信息之一:计算操作的名称、计算操作所采用计算方法的名称、计算操作所依赖的数据、计算操作的结果。
关于计算操作的具体描述可参见第一实施例,本实施例不再赘述。
S302:根据各计算操作所依赖的数据,确定各计算操作之间的依赖关系。
S303:以被依赖的计算操作所归属的计算任务批次的执行顺序优于依赖的计算操作所归属的计算任务批次为划分标准,进行批次划分。
示例的,以被依赖的计算操作所归属的计算任务批次的执行顺序优于依赖的计算操作所归属的计算任务批次为划分标准,进行批次划分,包括:
将依赖于所述目标数据的计算操作,划分为第一批次的计算任务;
将依赖于第i批次计算任务的结果的计算操作,划分为第i+1批次的计算任务;其中,第i批次的计算任务的执行顺序优于第i+1批次的计算任务的执行顺序,所述i≥1。
S304:读取目标数据,基于所述目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务,在执行各批次的计算任务时,针对每个批次的计算任务,采用并行的方式执行本批次计算任务内的各计算操作。
本发明第三实施例提供的数据处理方法,不仅提供了一种根据计算操作之间的依赖关系将计算任务划分为具有逻辑执行顺序的若干批次的具体实现方式,而且针对每个批次的计算任务,采用并行的方式执行本批次计算任务内的各计算操作,可以进一步提高数据处理的效率,提升用户的体验。
根据本发明的第四实施例,提供了一种数据处理方法。图4为本发明第四实施例中数据处理方法的流程示意图,如图4所示,本发明第四实施例的数据处理方法,包括以下步骤:
S401:获取待加载数据,并将所述待加载数据存储在预设的存储层中。
S402:确定计算任务,所述计算任务中包含若干计算操作。
S403:根据各计算操作之间的依赖关系,将所述计算任务划分为具有逻辑执行顺序的若干批次。
S404:在所述存储层中读取目标数据,基于读取的目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务。
本发明第四实施例提供的数据处理方法,不仅根据计算操作之间的依赖关系将计算任务划分为具有逻辑执行顺序的若干批次,提高数据处理的效率;而且还可以在处理计算任务之前,将计算任务所需的目标数据预先存储在本机的存储层中,使得计算和存储不分离,提高了计算过程中目标数据的读取速度,从而进一步地提高了计算效率。
根据本发明的第五实施例,提供了一种数据处理方法。图5为本发明第五实施例中数据处理方法的流程示意图,如图5所示,本发明第五实施例的数据处理方法,包括以下步骤:
S501:获取待加载数据。
S502:将所述待加载数据进行分片,将分片后的待加载数据存储在存储层中。
具体的,以加载的数据为Bitmap为例,由于Bitmap平均大小为2M,最大文件将近40M左右,如果将Bitmap单个存储,读取每个Bitmap只能串行的读取,大Bitmap的读取耗时将会很长,这直接影响查询计算的效率,所以本方案采用了将Bitmap分片存储的策略。将每个Bitmap分成若干个分片,例如256KB大小的分片,存储层以分片为单位存储。
S503:确定计算任务,所述计算任务中包含若干计算操作。
S504:根据各计算操作之间的依赖关系,将所述计算任务划分为具有逻辑执行顺序的若干批次。
S505:在所述存储层中并行读取所述计算任务所需的目标数据的各个分片;将读取到的各个分片组成完整的数据,得到目标数据。
本发明实施例,在存储层中读取目标数据时,利用多线程技术并行读取每个数据的所有分片然后重新组装成一个完整的数据,将大大减少了读取数据的耗时。
S506:基于所述目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务。
本发明第五实施例提供的数据处理方法,不仅根据计算操作之间的依赖关系将计算任务划分为具有逻辑执行顺序的若干批次,提高数据处理的效率;而且还可以在处理计算任务之前,将计算任务所需的目标数据分片预先存储在本机的存储层中,在读取目标数据时在所述存储层中并行读取所述计算任务所需的目标数据的各个分片,将读取到的各个分片组成完整的数据,得到目标数据,可以进一步提高计算过程中目标数据的读取速度。
根据本发明的第六实施例,提供了一种数据处理方法。图6为本发明第六实施例中数据处理方法的流程示意图,如图6所示,本发明第六实施例的数据处理方法,包括以下步骤:
S601:获取所述待加载数据的存储路径,并将所述存储路径存入缓存队列;依次读取所述缓存队列中每个待加载数据的存储路径,根据得到的每个存储路径获取对应的待加载数据。
在发明实施例中,为了避免大量的写操作造成磁盘的IO压力,设计了文件路径缓存队列,所有待写入的Bitmap路径保存在缓存队列中。
S602:将所述待加载数据进行分片,将分片后的待加载数据存储在所述存储层中。
S603:确定计算任务,所述计算任务中包含若干计算操作。
S604:根据各计算操作之间的依赖关系,将所述计算任务划分为具有逻辑执行顺序的若干批次。
S605:在所述存储层中并行读取所述计算任务所需的目标数据的各个分片;将读取到的各个分片组成完整的数据,得到目标数据。
S606:基于所述目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务。
本发明第六实施例提供的数据处理方法,不仅根据计算操作之间的依赖关系提高数据处理的效率,采用分片存储提高计算过程中目标数据的读取速度;而且获取待加载数据的过程中,设计了缓存队列,避免了大量的写操作造成的磁盘IO压力。
本发明的第七实施例,提供了一种数据处理装置。图7为本发明第七实施例中数据处理装置的结构示意图,如图7所述,本发明第七实施例的数据处理装置包括任务确定模块72、任务划分模块74、数据读取模块76及任务执行模块78,以下对各模块进行详细的说明。
任务确定模块72,用于确定计算任务,所述计算任务中包含若干计算操作。
可选的,本发明实施例为了标准化数据计算过程,将计算任务进行最小单元的粒度划分,每个粒度定义为一个计算操作,本实施例中将每个计算操作抽象为一个Action模型,其中Action模型即为计算操作的操作描述。
其中,操作描述至少包括如下信息之一:计算操作的名称(name)、计算操作所采用计算方法的名称(op)、计算操作所依赖的数据(fields)、计算操作的结果(result)。本发明第七实施例的任务确定模块72根据计算操作之间的依赖关系将计算任务划分为具有逻辑执行顺序的若干批次,可以提高数据处理的效率。
所述任务划分模块74,用于根据各计算操作之间的依赖关系,将所述计算任务划分为具有逻辑执行顺序的若干批次。
可选的,所述任务划分模块74用于:根据各计算操作所依赖的数据,确定各计算操作之间的依赖关系;以被依赖的计算操作所归属的计算任务批次的执行顺序优于依赖的计算操作所归属的计算任务批次为划分标准,进行批次划分。
作为一种可选的实施方式,所述任务划分模块74用于:将依赖于所述目标数据的计算操作,划分为第一批次的计算任务;将依赖于第i批次计算任务的结果的计算操作,划分为第i+1批次的计算任务;其中,第i批次的计算任务的执行顺序优于第i+1批次的计算任务的执行顺序,所述i≥1。
本发明第七实施例的任务划分模块74提供了一种根据计算操作之间的依赖关系将计算任务划分为具有逻辑执行顺序的若干批次的具体实现方式,可以提高数据处理的效率。
所述数据读取模块76,用于读取目标数据。可选的,目标数据为位图bitmap数据。
所述任务执行模块78,用于基于所述目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务。
在本发明的一个可选实施例中,所述任务执行模块78在执行各批次的计算任务时,针对每个批次的计算任务,采用并行的方式执行本批次计算任务内的各计算操作。本发明第七实施例的任务执行模块76,采用并行的方式执行本批次计算任务内的各计算操作,可以进一步提高数据处理的效率。
本发明的第八实施例,提供了一种数据处理装置。图8为本发明第八实施例中数据处理装置的结构示意图,如图8所述,本发明第八实施例的数据处理装置包括获取模块70、存储模块71、任务确定模块72、任务划分模块74、数据读取模块76及任务执行模块78,以下对各模块进行详细的说明。
获取模块70,用于获取待加载数据。
可选的,所述获取模块70用于,获取所述待加载数据的存储路径,并将所述存储路径存入缓存队列;依次读取所述缓存队列中每个待加载数据的存储路径,根据得到的每个存储路径获取对应的待加载数据。本发明第八实施例的获取模块70在获取待加载数据的过程中,设计了缓存队列,避免了大量的写操作造成的磁盘IO压力。
所述存储模块71,用于将所述待加载数据存储在预设的存储层中。本发明第八实施例的存储模块71可以在处理计算任务之前,将计算任务所需的目标数据预先存储在本机的存储层中,使得计算和存储不分离,提高了计算过程中目标数据的读取速度,从而进一步地提高了计算效率。
可选的,所述存储模块71用于,将所述待加载数据进行分片,将分片后的待加载数据存储在所述存储层中。本发明第八实施例的存储模块71可以在处理计算任务之前,将计算任务所需的目标数据分片预先存储在本机的存储层中,以便于数据读取模块76对目标数据进行分片读取。
所述任务确定模块72,用于确定计算任务,所述计算任务中包含若干计算操作。
可选的,计算操作至少包括如下操作描述信息之一:计算操作的名称、计算操作所采用计算方法的名称、计算操作所依赖的数据、计算操作的结果。
所述任务划分模块74,用于根据各计算操作之间的依赖关系,将所述计算任务划分为具有逻辑执行顺序的若干批次。
所述数据读取模块76,用于在所述存储层中并行读取所述计算任务所需的目标数据的各个分片,将读取到的各个分片组成完整的数据,得到目标数据。本发明第八实施例的数据读取模块76可以在所述存储层中并行读取所述计算任务所需的目标数据的各个分片,将读取到的各个分片组成完整的数据,得到目标数据,提高目标数据的读取速度。
所述任务执行模块78,用于基于所述目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务。
为了更加详细的说明本发明实施例,给出实例1,本实例以数据为Bitmap为例进行说明。图9为本发明实例1中数据处理装置的架构示意图,在图9中文件处理层的作用相当于上文中的获取模块70,存储接口层的作用相当于上文中的存储模块71和数据读取模块76,计算逻辑层的作用相当于上文中的任务确定模块72、任务划分模块74及任务执行模块78。如图9所示,数据处理装置的工作流程主要包括Bitmap存储查询和Bitmap计算两部分。
(1)Bitmap存储查询:用户行为分析平台采集的数据经过过滤清洗生成Bitmap最终落地到HDFS(Hadoop分布式文件系统),用户行为分析平台数据查询服务将需要加载的Bitmap文件路径传给数据处理装置的服务接口层。为了避免大量的写操作造成磁盘的IO压力,设计了文件路径缓存队列(即图中的任务队列),所有待写入的Bitmap路径保存在缓存队列中,文件处理层从队列中获取文件路径,从HDFS上读取文件内容。由于Bitmap平均大小为2M,最大文件将近40M左右,如果将Bitmap单个存储,读取每个Bitmap只能串行的读取,大Bitmap的读取耗时将会很长,这直接影响查询计算的效率,所以采用了将Bitmap分片存储的策略。在存储接口层将每个Bitmap分成256KB大小的分片,存储层以分片为单位存储,所述存储接口层在存储层中读取时利用多线程技术并行读取目标数据的每个Bitmap的所有分片然后重新组装成一个完整的Bitmap,将大大减少了获取Bitmap的耗时。
(2)Bitmap计算:当服务接口层接收到计算任务后,计算逻辑层为了标准化数据计算操作,将计算任务进行最小单元的粒度划分,每个粒度定义为一个计算操作,并将每个计算操作抽象为一个Action模型;同时Action计算依赖的Bitmap可能是计算的中间结果,存在Action之间的相互依赖性,所以需要对Action进行批量执行任务的划分,将计算依赖的Bitmap已经存在的Action作为一个执行任务,将依赖的Bitmap尚未完成的Action分为下一个执行任务。在实例1中将依赖于所述目标数据的计算操作,划分为第一批次的计算任务,将依赖于第i批次计算任务的结果的计算操作,划分为第i+1批次的计算任务;其中,第i批次的计算任务的执行顺序优于第i+1批次的计算任务的执行顺序,所述i≥1。图10为本发明实例1将计算操作进行批次划分后的结果示意图,如图10所示,第一批计算任务包括ActionC、ActionD、ActionF,均依赖于目标数据Bitmap,第二批计算任务包括ActionB、ActionE,其中ActionB依赖于ActionC和ActionD的计算结果,ActionE依赖于ActionF的计算结果,即第二批计算任务依赖于第一批计算任务的结果,第三批计算任务包括ActionA,其依赖于ActionB,即第三批计算任务依赖于第二批计算任务的结果。
由于计算需要大量的Bitmap参与,本方案在存储接口层将ActionC、ActionD、ActionF所依赖于的目标数据进行统一读取。Bitmap的读取属于IO密集型任务,所以采用了单独的线程池处理读取的任务,减少Bitmap读取的耗时。
本发明实例1提供了一套通用的Bitmap存储查询计算的实现方案,存储采用了Bitmap分片存储方案,减少了查询耗时,计算采用了Action模型的并行化的处理优化策略,提升了计算的性能,同时只返回数据查询服务方计算结果的长度,减少了与数据查询服务之间大量Bitmap的传输,降低了Bitmap计算和数据查询方的耦合度。本发明实例1在存储和计算方面带来了性能上的提升,提升了用户体验。为了进一步提升查询性能,由于部署时采用数据处理装置和存储服务混合部署,数据处理装置优先访问本机上的存储服务,减少了大量Bitmap在不同机器间网络传输所带来的时间损耗。
本发明第九实施例提供了一种数据处理设备。图11为本发明第九实施例中数据处理设备的结构示意图,如图11所示所述数据处理设备包括:存储器112、处理器114及存储在所述存储器112上并可在所述处理器114上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一实施例至第六实施例所述的数据处理方法的步骤,同时也能起到相同的技术效果,在此不再赘述。
本发明第十实施例还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一实施例至第六实施例所述的数据处理方法的步骤,同时也能起到相同的技术效果,在此不再赘述。
本实施例计算机可读存储介质包括但不限于为:ROM、RAM、磁盘或光盘等。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (22)

1.一种数据处理方法,其特征在于,包括:
确定计算任务,所述计算任务中包含若干计算操作;
根据各计算操作之间的依赖关系,将所述计算任务划分为具有逻辑执行顺序的若干批次;
读取目标数据,基于所述目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务。
2.如权利要求1所述的数据处理方法,其特征在于,所述计算操作至少包括如下操作描述信息之一:
计算操作的名称、计算操作所采用计算方法的名称、计算操作所依赖的数据、计算操作的结果。
3.如权利要求1所述的数据处理方法,其特征在于,所述根据各计算操作之间的依赖关系,将所述计算任务划分为具有逻辑执行顺序的若干批次,包括:
根据各计算操作所依赖的数据,确定各计算操作之间的依赖关系;
以被依赖的计算操作所归属的计算任务批次的执行顺序优于依赖的计算操作所归属的计算任务批次为划分标准,进行批次划分。
4.如权利要求3所述的数据处理方法,其特征在于,所述以被依赖的计算操作所归属的计算任务批次的执行顺序优于依赖的计算操作所归属的计算任务批次为划分标准,进行批次划分,包括:
将依赖于所述目标数据的计算操作,划分为第一批次的计算任务;
将依赖于第i批次计算任务的结果的计算操作,划分为第i+1批次的计算任务;其中,第i批次的计算任务的执行顺序优于第i+1批次的计算任务的执行顺序,所述i≥1。
5.如权利要求1所述的数据处理方法,其特征在于,在执行各批次的计算任务时,针对每个批次的计算任务,采用并行的方式执行本批次计算任务内的各计算操作。
6.如权利要求1所述的数据处理方法,其特征在于,在确定计算任务之前,还包括:获取待加载数据,并将所述待加载数据存储在预设的存储层中;
所述读取目标数据包括:在所述存储层中读取所述目标数据。
7.如权利要求6所述的数据处理方法,其特征在于,所述将所述待加载数据存储在预设的存储层中,包括:
将所述待加载数据进行分片;
将分片后的待加载数据存储在所述存储层中。
8.如权利要求7所述的数据处理方法,其特征在于,所述在所述存储层中读取所述目标数据,包括:
在所述存储层中并行读取所述计算任务所需的目标数据的各个分片;
将读取到的各个分片组成完整的数据,得到目标数据。
9.如权利要求6所述的数据处理方法,其特征在于,所述获取待加载数据,包括:
获取所述待加载数据的存储路径,并将所述存储路径存入缓存队列;
依次读取所述缓存队列中每个待加载数据的存储路径,根据得到的每个存储路径获取对应的待加载数据。
10.如权利要求1至9任意一项所述的数据处理方法,其特征在于,所述目标数据为位图bitmap数据。
11.一种数据处理装置,其特征在于,包括任务确定模块、任务划分模块、数据读取模块及任务执行模块;
所述任务确定模块,用于确定计算任务,所述计算任务中包含若干计算操作;
所述任务划分模块,用于根据各计算操作之间的依赖关系,将所述计算任务划分为具有逻辑执行顺序的若干批次;
所述数据读取模块,用于读取目标数据;
所述任务执行模块,用于基于所述目标数据,按照划分的各批次计算任务的逻辑执行顺序,执行各批次的计算任务。
12.如权利要求11所述的数据处理装置,其特征在于,所述计算操作至少包括如下操作描述信息之一:
计算操作的名称、计算操作所采用计算方法的名称、计算操作所依赖的数据、计算操作的结果。
13.如权利要求11所述的数据处理装置,其特征在于,所述任务划分模块具体用于:
根据各计算操作所依赖的数据,确定各计算操作之间的依赖关系;
以被依赖的计算操作所归属的计算任务批次的执行顺序优于依赖的计算操作所归属的计算任务批次为划分标准,进行批次划分。
14.如权利要求13所述的数据处理装置,其特征在于,所述任务划分模块具体用于:
将依赖于所述目标数据的计算操作,划分为第一批次的计算任务;
将依赖于第i批次计算任务的结果的计算操作,划分为第i+1批次的计算任务;其中,第i批次的计算任务的执行顺序优于第i+1批次的计算任务的执行顺序,所述i≥1。
15.如权利要求11所述的数据处理装置,其特征在于,所述任务执行模块具体用于:
在执行各批次的计算任务时,针对每个批次的计算任务,采用并行的方式执行本批次计算任务内的各计算操作。
16.如权利要求11所述的数据处理装置,其特征在于,还包括获取模块和存储模块:
所述获取模块,用于在确定计算任务之前,获取待加载数据;
所述存储模块,用于将所述待加载数据存储在预设的存储层中;
所述任务执行模块,用于在所述存储层中读取所述目标数据。
17.如权利要求16所述的数据处理装置,其特征在于,所述存储模块具体用于:
将所述待加载数据进行分片;
将分片后的待加载数据存储在所述存储层中。
18.如权利要求17所述的数据处理装置,其特征在于,所述数据读取模块具体用于:
在所述存储层中并行读取所述计算任务所需的目标数据的各个分片;
将读取到的各个分片组成完整的数据,得到目标数据。
19.如权利要求16所述的数据处理装置,其特征在于,所述获取模块具体用于:
获取所述待加载数据的存储路径,并将所述存储路径存入缓存队列;
依次读取所述缓存队列中每个待加载数据的存储路径,根据得到的每个存储路径获取对应的待加载数据。
20.如权利要求11至19任意一项所述的数据处理装置,其特征在于,所述目标数据为位图bitmap数据。
21.一种数据处理设备,其特征在于,所述数据处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1~10任一项所述的数据处理方法的步骤。
22.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1~10中任一项所述数据处理方法的步骤。
CN201810455853.2A 2018-05-14 2018-05-14 一种数据处理方法、装置、设备及计算机可读存储介质 Pending CN108628675A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810455853.2A CN108628675A (zh) 2018-05-14 2018-05-14 一种数据处理方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810455853.2A CN108628675A (zh) 2018-05-14 2018-05-14 一种数据处理方法、装置、设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN108628675A true CN108628675A (zh) 2018-10-09

Family

ID=63693233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810455853.2A Pending CN108628675A (zh) 2018-05-14 2018-05-14 一种数据处理方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN108628675A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597687A (zh) * 2018-10-31 2019-04-09 东软集团股份有限公司 数据同步的资源分配方法、装置、存储介质和电子设备
CN110413317A (zh) * 2019-08-02 2019-11-05 四川新网银行股份有限公司 基于配置化的流程接口调用方法
CN111404755A (zh) * 2020-03-24 2020-07-10 联想(北京)有限公司 一种网络配置方法、装置及存储介质
CN112596880A (zh) * 2020-12-25 2021-04-02 深圳市元征科技股份有限公司 一种数据处理方法、装置、设备及存储介质
CN112860419A (zh) * 2019-11-27 2021-05-28 阿里巴巴集团控股有限公司 多实例任务的执行方法、装置、终端设备及计算机存储介质
CN113344442A (zh) * 2021-06-30 2021-09-03 平安资产管理有限责任公司 指标数据计算方法、装置、计算机设备和存储介质
CN114510540A (zh) * 2022-04-19 2022-05-17 北京微芯感知科技有限公司 数据处理方法、计算存储分离系统及区块链网络架构

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399856A (zh) * 2013-07-01 2013-11-20 北京科东电力控制系统有限责任公司 面向scada系统的爆发式数据缓存处理系统及其方法
US20140059563A1 (en) * 2012-06-05 2014-02-27 International Business Machines Corporation Dependency management in task scheduling
CN104915260A (zh) * 2015-06-19 2015-09-16 北京搜狐新媒体信息技术有限公司 一种Hadoop集群管理任务的分发方法和系统
CN105975600A (zh) * 2016-05-11 2016-09-28 乐视控股(北京)有限公司 大数据处理中的任务优化方法和装置
CN106325984A (zh) * 2015-06-30 2017-01-11 上海证大喜马拉雅网络科技有限公司 一种大数据任务调度装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059563A1 (en) * 2012-06-05 2014-02-27 International Business Machines Corporation Dependency management in task scheduling
CN103399856A (zh) * 2013-07-01 2013-11-20 北京科东电力控制系统有限责任公司 面向scada系统的爆发式数据缓存处理系统及其方法
CN104915260A (zh) * 2015-06-19 2015-09-16 北京搜狐新媒体信息技术有限公司 一种Hadoop集群管理任务的分发方法和系统
CN106325984A (zh) * 2015-06-30 2017-01-11 上海证大喜马拉雅网络科技有限公司 一种大数据任务调度装置
CN105975600A (zh) * 2016-05-11 2016-09-28 乐视控股(北京)有限公司 大数据处理中的任务优化方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597687A (zh) * 2018-10-31 2019-04-09 东软集团股份有限公司 数据同步的资源分配方法、装置、存储介质和电子设备
CN110413317A (zh) * 2019-08-02 2019-11-05 四川新网银行股份有限公司 基于配置化的流程接口调用方法
CN112860419A (zh) * 2019-11-27 2021-05-28 阿里巴巴集团控股有限公司 多实例任务的执行方法、装置、终端设备及计算机存储介质
CN111404755A (zh) * 2020-03-24 2020-07-10 联想(北京)有限公司 一种网络配置方法、装置及存储介质
CN112596880A (zh) * 2020-12-25 2021-04-02 深圳市元征科技股份有限公司 一种数据处理方法、装置、设备及存储介质
CN113344442A (zh) * 2021-06-30 2021-09-03 平安资产管理有限责任公司 指标数据计算方法、装置、计算机设备和存储介质
CN114510540A (zh) * 2022-04-19 2022-05-17 北京微芯感知科技有限公司 数据处理方法、计算存储分离系统及区块链网络架构

Similar Documents

Publication Publication Date Title
CN108628675A (zh) 一种数据处理方法、装置、设备及计算机可读存储介质
DE112011100143B4 (de) Optimieren der elektrischen Leistungsaufnahme in einem Rechenzentrum
CN106980649A (zh) 写入区块链业务数据的方法和装置及业务子集合确定方法
CN103458052B (zh) 一种基于IaaS云平台的资源调度方法和装置
Streeter et al. New techniques for algorithm portfolio design
CN104216893B (zh) 多租户共享数据表的分区管理方法、服务器与系统
DE102010044531B4 (de) Autonome Speicherarchitektur
DE112011101321T5 (de) Abfragen von Leistungsdaten auf einem parallelenComputersystem, das Rechenknoten aufweist
CN103745225A (zh) 分布式ctr预测模型训练的方法和系统
CN103500123B (zh) 异构环境中并行计算调度方法
DE102012216029A1 (de) Ein skalierbares anpassungsfähiges map-reduce-rahmenwerk mit verteilten daten
DE102012221502A1 (de) System und Verfahren zum Durchführen von gestalteter-Speicherzugriff-Operationen
CN106326002A (zh) 资源调度方法、装置及设备
CN104036286B (zh) 一种基于Hadoop的多光谱遥感影像分类处理方法
CN105260374B (zh) 异步流水线式的图查询方法及系统
CN106095574B (zh) 海量计算粗颗粒并行实现及计算任务随机动态分配方法
CN114880130B (zh) 并行训练中突破内存限制的方法、系统、设备及存储介质
CN106780149A (zh) 一种基于定时任务调度的设备实时监测系统
CN104484558A (zh) 生物信息项目的分析报告自动生成方法及系统
CN107728935A (zh) 对分布式计算系统中的数据重新分区
CN107656851A (zh) 一种基于部件能耗模型的云服务器能耗测算方法及系统
CN105812175A (zh) 一种资源管理方法及资源管理设备
CN105159925B (zh) 一种数据库集群数据分配方法及系统
CN113807046A (zh) 一种测试激励优化回归验证方法、系统及介质
Hu et al. Improved heuristic job scheduling method to enhance throughput for big data analytics

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20181009