CN113377501A - 数据处理方法、装置、设备、介质及程序产品 - Google Patents
数据处理方法、装置、设备、介质及程序产品 Download PDFInfo
- Publication number
- CN113377501A CN113377501A CN202110635559.1A CN202110635559A CN113377501A CN 113377501 A CN113377501 A CN 113377501A CN 202110635559 A CN202110635559 A CN 202110635559A CN 113377501 A CN113377501 A CN 113377501A
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- queue
- function
- platform
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 193
- 238000000034 method Methods 0.000 claims abstract description 75
- 238000013500 data storage Methods 0.000 claims abstract description 66
- 230000002596 correlated effect Effects 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 98
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 46
- 238000007726 management method Methods 0.000 description 32
- 238000013515 script Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000010354 integration 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
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/22—Indexing; Data structures therefor; Storage structures
-
- 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/24552—Database cache management
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Algebra (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据处理方法、装置、设备、介质及程序产品,该方法包括:根据数据存储平台的数据队列中存储的待处理数据的数量M,确定从所述数据队列提取的待处理数据的数量N,其中,所述M和所述N均为大于或等于1的正整数,所述M大于所述N、且所述M与所述N正相关;从所述数据队列中批量提取N个待处理数据;并行处理所述N个待处理数据。本申请的方法可以提高处理待处理数据的正确性和效率。
Description
技术领域
本申请涉及数据处理技术,尤其涉及一种数据处理方法、装置、设备、介质及程序产品。
背景技术
随着信息技术和网络技术的飞速发展,以及数字化时代的来临,信息化管理水平得到不断提高,以往通过人力直接完成的流程管理,已经有了成熟的电子化管理环境。由于技术限制,有很多数据存量的流程管理系统需要对所有待处理数据进行整合处理。
为了方便用户的流程管理,可以通过一个数据处理平台完成对多个流程管理系统的多个待处理数据的处理。对于该数据处理平台来讲,需要对接多个流程管理系统,可能会在某一时间段内接收到来自于不同流程管理系统的多条待处理数据。由于该数据处理平台中缓存的待处理数据的处理压力较大,在单位时间段内需要处理的待处理数据较多,难以正确、高效地处理每一条待处理数据。
发明内容
本申请提供一种数据处理方法、装置、设备、介质及程序产品,用以提高处理待处理数据的正确性和效率。
第一方面,本申请提供一种数据处理方法,所述方法应用于数据处理平台,包括:根据数据存储平台的数据队列中存储的待处理数据的数量M,确定从所述数据队列提取的待处理数据的数量N,其中,所述M和所述N均为大于或等于1的正整数,所述M大于所述N、且所述M与所述N正相关;从所述数据队列中批量提取N个待处理数据;并行处理所述N个待处理数据。
结合第一方面,在第一方面的某些实现方式中,所述根据数据存储平台的数据队列中存储的待处理数据的数量M,确定从所述数据队列提取的待处理数据的数量N,包括:根据第一函数、第二函数和第三函数,确定从所述数据队列提取的待处理数据的数量N;其中,所述第一函数,用于表征所述数据处理平台并行处理不同数量的待处理数据的时延;所述第二函数,用于表征从所述数据队列中提取不同数量的待处理数据时,所述数据处理平台存储处理后的所述待处理数据的存储次数;所述第三函数,用于表征在所述数据存储平台的数据队列中存储的待处理数据的数量为M时,从所述数据队列中提取N个待处理数据时,所述数据存储平台中待处理数据的积压压力。
结合第一方面,在第一方面的某些实现方式中,所述根据第一函数、第二函数和第三函数,确定从所述数据队列提取的待处理数据的数量N,包括:计算目标函数的最小值,确定所述N,所述目标函数为:
F(N)=aD(N)+bP(N)+cS(M,N)
其中,F(N)为所述目标函数,D(N)为所述第一函数,P(N)为所述第二函数,S(M,N)为所述第三函数,a、b和c均为权重系数、且所述a、b和c之和等于1。
基于上述方案,若从数据存储平台的数据队列中提取的待处理数据的数量N越大,则数据处理平台处理待处理数据的时延越大,该数据处理平台存储处理后的待处理数据的存储次数越少,数据存储平台中待处理数据的积压压力越大。因此,取该三个函数值加和最小时对应的N为批量提取的待处理数据的数量,可以确保数据处理平台并行处理待处理数据的时延较小、处理后的待处理数据的存储效率也较高、且数据存储平台中待处理数据的积压压力也相对较小。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:在预设时长内,若接收到来自外部平台的至少一个待处理数据,则将所述至少一个待处理数据批量写入所述数据队列中。
数据处理平台在预设时长内接收到来自至少一个外部平台的待处理数据较多时,难以正确、高效地处理每一条待处理数据。将接收到的多个待处理数据写入数据存储平台的数据队列中,再根据数据队列中存储的待处理数据的数量,从数据队列中批量提取待处理数据并进行并行处理,可以提高处理待处理数据的正确性和效率。
结合第一方面,在第一方面的某些实现方式中,所述将所述至少一个待处理数据批量写入所述数据队列中,包括:根据预设的写入速度和/或预设的批量写入数量,将所述至少一个待处理数据批量写入所述数据队列中。
结合第一方面,在第一方面的某些实现方式中,所述将所述至少一个待处理数据批量写入所述数据队列中,包括:通过lua脚本语言将所述至少一个待处理数据批量写入所述数据队列中。
结合第一方面,在第一方面的某些实现方式中,所述并行处理所述N个待处理数据之后,所述方法还包括:若所述N个待处理数据中的目标数据处理失败,则将所述目标数据重新写入所述数据队列中。
结合第一方面,在第一方面的某些实现方式中,所述数据存储平台为远程字典服务集群。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:将处理后的所述N个待处理数据批量存储于所述数据处理平台的数据库中。
第二方面,本申请提供一种数据处理装置,所述装置应用于数据处理平台,所述装置包括:确定模块,用于根据数据存储平台的数据队列中存储的待处理数据的数量M,确定从所述数据队列提取的待处理数据的数量N,其中,所述M和所述N均为大于或等于1的正整数,所述M大于所述N、且所述M与所述N正相关;获取模块,用于从所述数据队列中批量提取N个待处理数据;处理模块,用于并行处理所述N个待处理数据。
结合第二方面,在第二方面的某些实现方式中,所述确定模块具体用于:根据第一函数、第二函数和第三函数,确定从所述数据队列提取的待处理数据的数量N;其中,所述第一函数,用于表征所述数据处理平台并行处理不同数量的待处理数据的时延;所述第二函数,用于表征从所述数据队列中提取不同数量的待处理数据时,所述数据处理平台存储处理后的所述待处理数据的存储次数;所述第三函数,用于表征在所述数据存储平台的数据队列中存储的待处理数据的数量为M时,从所述数据队列中提取N个待处理数据时,所述数据存储平台中待处理数据的积压压力。
结合第二方面,在第二方面的某些实现方式中,所述确定模块具体用于:计算目标函数的最小值,确定所述N,所述目标函数为:
F(N)=aD(N)+bP(N)+cS(M,N)
其中,F(N)为所述目标函数,D(N)为所述第一函数,P(N)为所述第二函数,S(M,N)为所述第三函数,a、b和c均为权重系数、且所述a、b和c之和等于1。
结合第二方面,在第二方面的某些实现方式中,所述数据处理装置还包括:收发模块,用于在预设时长内,若接收到来自外部平台的至少一个待处理数据,则将所述至少一个待处理数据批量写入所述数据队列中。
结合第二方面,在第二方面的某些实现方式中,所述收发模块具体用于:根据预设的写入速度和/或预设的批量写入数量,将所述至少一个待处理数据批量写入所述数据队列中。
结合第二方面,在第二方面的某些实现方式中,所述收发模块还用于:在所述处理模块并行处理所述N个待处理数据之后,若所述N个待处理数据中的目标数据处理失败,则将所述目标数据重新写入所述数据队列中。
结合第二方面,在第二方面的某些实现方式中,所述处理模块还用于:将处理后的所述N个待处理数据批量存储于所述数据处理平台的数据库中。
第三方面,提供了一种电子设备,所述电子设备包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行上述第一方面或第一方面中任一种可能实现方式中的方法。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一种可能实现方式中的方法。
第五方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序(也可以称为代码,或指令),当该计算机程序被处理器运行时,使得计算机执行上述第一方面或第一方面中任一种可能实现方式中的方法。
本申请提供的数据处理方法、装置、设备、介质及程序产品中,根据数据存储平台的数据队列中存储的待处理数据的数量,确定批量提取待处理数据的数量,并对批量提取的待处理数据进行并行处理。批量提取的待处理数据的数量小于所有待处理数据的数量。对批量提取的待处理数据进行处理,相较于对所有的待处理数据进行处理,可以提高数据处理的正确性。除此之外,对批量提取的待处理数据进行并行处理,可以降低处理待处理数据的时延,从而提高处理待处理数据的效率。因此,该方案能够提高处理待处理数据的正确性和效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为现有技术提供的数据处理方法的应用场景示意图;
图2为本申请实施例提供的数据处理方法的应用场景示意图;
图3为本申请实施例提出的一种数据处理方法的示意性流程图;
图4为本申请提供的数据处理装置的结构示意图;
图5为本申请提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
流量消峰:在某一时间段内的向服务器发送的请求过多,服务器无法快速的对所有待处理数据进行处理,出现数据处理的不及时或不正确,因此需要对流经服务器的数据流量的峰值进行削减,从而确保服务器能够稳定、高效、正确运行。
远程字典服务(remote dictionary server,Redis)集群:是一个开源的高性能Key-Value存储系统(数据库),提供多种语言的应用程序接口(Application ProgrammingInterface,API),从而能够方便的进行使用。由于其特有的性质,为保证效率,所有数据都缓存在内存中,能够满足高并发情况下的数据暂存功能。Redis集群允许开发者使用Lua语言编写脚本传到Redis集群中执行。
Lua:一种脚本语言,通过标准C语言编写并且以源代码形式开放,目的是潜入应用程序中,从而为应用程序提供灵活的扩展和定制功能,在本次实践中,通过Lua编写脚本,从而在Redis集群完成批量数据的推入与取出。Lua脚本的优点有:使用脚本功能完成同样的操作只需要发送给一个请求即可,减少网络往返时延;Redis集群会将整个脚本作为一个整体执行,中间不会被其他命令插入。
随着信息技术和网络技术的飞速发展,以及数字化时代的来临,信息化管理水平得到不断提高,以往通过人力直接完成的流程管理,也已经有了成熟的电子化管理环境。由于技术限制,有很多数据存量的流程管理系统需要将所有待处理数据进行整合处理。
为了方便用户的流程管理,可以通过一个数据处理平台完成对多个流程管理系统的多个待处理数据的处理。对于该数据处理平台来讲,需要对接多个流程管理系统,可能会在某一时间段内接收到来自于不同流程管理系统的多条待处理数据。由于该数据处理平台中缓存的待处理数据的处理压力较大,在单位时间段内需要处理的待处理数据较多,难以正确、高效地处理每一条待处理数据。
图1为现有技术提供的数据处理方法的应用场景示意图。多个外部流程管理系统向数据处理平台推送一条或多条待处理数据,该数据处理平台需要对收到的每条待处理数据进行整合处理或加工处理,并将处理后的待处理数据存储于该数据处理平台的数据库中,便于外部流程管理系统从该数据处理平台访问处理后的待处理数据。其中,多个外部流程管理系统包括外部流程管理系统1、外部流程管理系统2、外部流程管理系统Q等,Q为大于2的正整数。其中,外部流程管理系统可以称之为外部平台。应理解,对待处理数据的具体处理方式,与待处理数据的来源以及待处理数据所属的流程管理系统有关。
在该场景下,数据处理平台需要将从多个外部平台接收到的多个待处理数据进行处理,当单位时间内接收到的待处理数据较多时,该数据处理平台需要将所有待处理数据进行缓存,且需要完成对每一条待处理数据的处理。在请求峰值过高的情况下,数据库的并发能力不足导致数据处理平台的服务速度小于请求速度,请求积压最终导致数据处理平台无法处理请求甚至宕机。因此,该数据处理平台的数据缓存压力和数据处理压力较大,难以正确且高效地完成对每一条待处理数据的处理。该情况下,若外部平台访问处理后的待处理数据,访问的数据可能是未处理的待处理数据或未处理结束的待处理数据或处理不正确的待处理数据。
通过上述描述可知,难以正确、高效地完成对每一条待处理数据的处理的原因是:当数据处理平台接收到多个外部平台的发送的待处理数据较多时,该数据处理平台的数据缓存压力过大,会导致该数据处理平台的数据处理能力减弱。若该数据处理平台在单位时间内需要处理的待处理数据较多时,可能会对某个待处理数据处理不彻底,或者,可能对某个待处理数据处理不正确,或者,可能会漏掉对某个待处理数据的处理等。
为了提高处理待处理数据的正确性和效率,本申请提出了一种将接收到的所有待处理数据存储于数据存储平台,从该数据存储平台批量提取一定数量的待处理数据,且并行处理该一定数量的待处理数据的方法。其中,该数据存储平台是独立于数据处理平台的。
在实现该方法时,需要考虑如下两点:
1、如何保证数据处理平台对待处理数据处理的正确性。2、如何提高处理待处理数据的效率。
针对第1点,将所有接收到的待处理数据存储于数据存储平台,可以减轻该数据处理平台的数据缓存压力,从而提高该数据处理平台的数据处理能力。根据该数据存储平台的存储的所有待处理数据的数量,批量从该数据存储平台提取一定数量的待处理数据,并对批量提取的待处理数据进行处理。批量提取的待处理数据的数量远小于所有待处理数据的数量。对批量提取的待处理数据进行处理,相较于对所有接收到的待处理数据进行处理,可以提高数据处理的正确性。
针对第2点,为提高数据处理的效率,对批量提取的待处理数据进行并行处理,可以降低数据处理的时延,从而提高数据处理的效率。
图2为本申请实施例提供的数据处理方法的应用场景示意图。多个外部流程管理系统向数据处理平台推送一条或多条待处理数据,该数据处理平台对收到的每条待处理数据存储于独立于数据处理平台的数据存储平台。该数据处理平台从该数据存储平台批量提取待处理数据,对批量提取的待处理数据进行并行处理,并将处理后的待处理数据存储于该数据处理平台的数据库中,便于外部流程管理系统从该数据处理平台访问处理后的待处理数据。其中,多个外部流程管理系统包括外部流程管理系统1、外部流程管理系统2、外部流程管理系统Q等,Q为大于2的正整数。其中,外部流程管理系统可以称之为外部平台。
其中,上述所说的数据存储平台可以为任一具有数据存储能力的平台,例如,Redis集群。在本实施例中,数据存储平台为数据处理平台的缓存。
上述所说的数据处理平台可以为任一对数据进行处理的平台,其可以由服务器集群组成,也可以由一台服务器或终端构成等,本申请对此不进行限定。
下面结合具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图3为本申请实施例提出的数据处理方法的示意性流程图,该方法可以应用于数据处理平台。如图3所示,该方法包括:
301,根据数据存储平台的数据队列中存储的待处理数据的数量M,确定从该数据队列中提取的待处理数据的数量N。其中,M和N均为大于或等于1的正整数,M大于N,且M与N正相关,M越大、N越大。
通过采用消息队列做缓冲,数据存储平台可以根据自身压力主动去获取并处理消息,保障数据存储平台工作在稳定压力下,从而确保数据处理平台能够稳定、高效、正确运行,提高了数据处理的正确性,降低处理待处理数据的时延。
另外,在数据存储平台进行数据处理时,可以基于数据存储平台的数据队列中存储的待处理数据的数量M,确定从该数据队列中提取的待处理数据的数量N,从而能够动态的实现对流经数据处理平台的数据流量的削峰。即,在单位时间内处理的数据数小于外部平台推入数据处理平台的数据量的峰值,为避免过多数据在数据队列中积压,所以利用数据队列中当前待处理数据的数量,动态的规划从该队列中提取的数据,使得数据存储平台能够高效的完成数据缓存的作用。
302,根据确定的从数据队列中提取待处理数据的数量N,从该数据队列中批量提取N个待处理数据。可以理解为,每次从数据队列中提取N个待处理数据。
以数据存储平台为Redis集群为例,可选的,可以通过lua脚本语言,从数据队列中批量提取N个待处理数据。例如,通过rpop命令,将N个待处理数据从数据队列中批量提取出来,其中,该rpop命令中携带待处理数据被写入的数据队列的队列号以及需要提取的待处理数据的数量N。通过使用rpop命令,防止待提取的数据被重复提取,提高了数据提取的正确性和效率。
应理解,当采用其他类型的数据存储平台时,可以根据其他数据存储平台能够实现批量提取的方式,从该数据存储平台的数据队列中批量提取N个待处理数据,对此不再赘述。
303,数据处理平台并行处理从数据队列中提取的N个待处理数据。
数据处理平台在提取到N个待处理数据后,可以采用并行的方式处理该N个数据,即同步处理该N个待处理数据,或者说同时处理该N个待处理数据。
可选的,若N个待处理数据中的目标数据处理失败,则可以将目标数据重新写入该数据队列中,其中,目标数据可以理解为该N个待处理数据中未成功被处理的待处理数据。例如,5个待处理数据中的2个待处理数据处理失败,则将这2个待处理数据重新写入该数据队列中,可以等待下次与其他待处理数据一并提取且并行处理。
可选的,可以根据第一函数、第二函数和第三函数中的至少一个,确定从数据存储平台的数据队列中提取的待处理数据的数量N,具体可以根据用户对数据处理平台的需求确定。
第一函数为用于表征数据处理平台并行处理不同数量的待处理数据的时延;并行处理的待处理数据的数量越大,处理时延会越大,并行处理的待处理数据的数量越小,处理时延会越小。可选的,第一函数可以用D(H)来表示。
第二函数为用于表征数据处理平台并行处理不同数量的待处理数据时,数据处理平台存储处理后的待处理数据的存储次数。数据处理平台可以将并行处理后的待处理数据一次性存入该数据处理平台的数据库中;换言之,并行处理一次,将处理后的待处理数据批量存储一次。在待处理数据的数量M一定的条件下,批量提取且并行处理的待处理数据的数量N越大,数据处理平台存储处理后的待处理数据的存储次数就越少;批量提取且并行处理的待处理数据的数量N越小,数据处理平台存储处理后的待处理数据的存储次数就越多。因此,N越大,可以提高数据处理平台批量存储处理后的待处理数据的存储效率。可选的,第二函数可以用P(N)来表示。
第三函数为用于表征在数据存储平台的数据队列中存储的待处理数据为M时,从该数据队列中提取N个待处理数据时,数据存储平台中待处理数据的积压压力。M越大、N越小时,数据存储平台中待处理数据的积压压力越大;M越小、N越大时,数据存储平台中待处理数据的积压压力越小。可选的,第三函数可以用S(M,N)来表示。
上述所示的三种函数具体可以根据线下对数据处理平台的测试结果生成的。示例性的,以第一函数为例,可以线下利用数据处理平台并行处理不同数量的待处理数据,获取数据处理平台的时延,从而利用这些数据,构建第一函数。
另外,本申请对上述三种函数的具体表达形式不进行限定,以能够表征其本身所具有的含义均可。仍以第一函数为例,任一能够表征数据处理平台并行处理待处理数据的数量与时延的函数关系的函数均可以作为第一函数。
作为一种可能的实现方式,可以通过计算目标函数的最小值,确定从数据队列提取的待处理数据的数量N,该目标函数例如可以如下述公式(1)所示:
F(N)=aD(N)+bP(N)+cS(M,N) (1)
其中,F(N)为目标函数,a、b和c均为权重系数、且a、b和c之和等于1。应理解,第一函数、第二函数、第三函数以及目标函数还可以为其他的表示方式,本申请对此不做限定。
若从数据存储平台的数据队列中提取的待处理数据的数量N越大,则数据处理平台处理待处理数据的时延越大,该数据处理平台存储处理后的待处理数据的存储次数越少,数据存储平台中待处理数据的积压压力越大;即,M一定时,N越大,则第一函数值越大,第二函数值越小,第三函数值越小。
为了平衡数据处理平台并行处理待处理数据的时延、数据存储平台中待处理数据的积压压力以及数据处理平台存储处理后的待处理数据的存储效率,取该三个函数值加和最小时对应的N为批量提取的待处理数据的数量,可以确保数据处理平台并行处理待处理数据的时延较小、处理后的待处理数据的存储效率也较高、且数据存储平台中待处理数据的积压压力也相对较小。
可选的,也可以仅根据上述第一函数和第三函数,确定从数据队列中提取的待处理数据的数量N。该情况下,也可以通过计算另一目标函数的最小值,确定从数据队列提取的待处理数据的数量N,该目标函数如下述公式(2)所示:
H(N)=eD(N)+fS(M,N) (2)
其中,H(N)为另一目标函数,e、f为权重系数、且e和f之和等于1。
可选的,也可以仅根据上述第一函数和第二函数,确定从数据对队列中提取的待处理数据的数量N。本申请对此不作限定。
可选地,也可以根据上述三个函数中的任一函数,确定从数据队列中提取的待处理数据的数量N,具体可以根据数据处理平台所需达到的要求来确定。
可选的,在根据数据存储平台的数据队列中存储的待处理数据的数量M,确定从该数据队列中提取的待处理数据的数量N之前,该方法该包括:在预设时长内,若该数据处理平台接收到来自一个或多个外部平台的至少一个待处理数据,则可以将该至少一个待处理数据批量写入数据存储平台存储的数据队列中。其中,外部平台可以是外部流程管理系统。
示例性的,可以根据预设的写入速度,将在预设时长内接收到的至少一个待处理数据批量写入数据队列中。
可选的,可以根据预设的批量写入数量,将在预设时长内接收到的至少一个待处理数据批量写入数据队列中。例如,在预设时间内接收到的待处理数据的数量达到预设的批量写入数量,则将预设的批量写入数量的待处理数据批量写入数据队列中。若在预设时长内接收到的待处理数据的数量超过预设的批量写入数量,则可以分批将预设的批量写入数量的待处理数据写入数据队列中。应理解,预设的批量写入数量是指一次性写入的待处理数据的预设数量。可选的,也可以将预设时长内接收到的所有待处理数据一次性写入数据队列中,本申请对此不做限定。
通过上述方式,可以动态的从数据队列中获取特定数量的数据,并通过数据处理平台完成对该部分提取的数据的处理操作。此时,由于处理数据量相较于数据队列中的数据量有了削减,减少了单位时间内处理的消息数量,避免了难以正确且高效地完成对每一条待处理数据的处理的情况。
示例性的,可以根据预设的写入速度和预设的批量写入数量,将至少一个待处理数据批量写入数据队列中。
数据处理平台在预设时长内接收到来自外部平台的待处理数据较多时,难以正确、高效地处理每一条待处理数据,该情况下,若外部平台访问处理后的待处理数据,可能会导致外部平台访问的数据是未处理的待处理数据或未处理结束的待处理数据或处理不正确的待处理数据。将接收到的多个待处理数据写入数据存储平台的数据队列中,再根据数据队列中存储的待处理数据的数量,从数据队列中批量提取待处理数据并进行并行处理,可以保证高效且正确地处理待处理数据,且避免外部平台访问的数据是未处理正确或未处理的。
以数据存储平台为Redis集群为例,作为一种可能的实现方式,可以通过lua脚本语言,将至少一个待处理数据批量写入数据队列中。例如,通过lpush(key,value)命令,将至少一个待处理数据批量写入数据队列中,其中,key表示该数据队列的队列号,value表示至少一个待处理数据的具体内容。通过使用lpush(key,value)命令,防止待写入的数据被重复处理,提高了数据写入的正确性和效率。
应理解,当采用其他类型的数据存储平台时,可以根据其他数据存储平台能够实现批量写入的方式,向该数据存储平台的数据队列中批量写入待处理数据,对此不再赘述。
作为一种可能的实现方式,该数据存储平台可以是远程字典服务Redis集群。Redis集群仅支持单条数据的存储与提取,但是通过lua脚本语言可以实现一次性将多条待处理数据写入到Redis集群中,可以减少待处理数据写入Redis集群的次数,减轻网络开销,提高待处理数据的存储效率。
另外,通过上述动态调整批量写入和批量读取的待处理数据的方式,可以减轻积压的数据量对数据存储平台(即数据处理平台的缓存)的影响,从而使得数据处理平台能够根据传入数据处理平台的数据量与待处理数据量的具体情况,动态的调整并行处理的数据,有效提高了数据处理平台的运行效率。
可选的,可以根据数据存储平台的数据队列中存储的待处理数据的数量,采用图3所示的方法流程,定期调整从该数据队列中提取的待处理数据的数量。此处所说的定期例如可以是在并行处理完N个待处理数据之后,在执行下次并行处理数据时,采用图3所示的方法流程,获取从该数据队列中提取的待处理数据的数量。
可选的,可以将处理后的待处理数据存储于该数据处理平台的数据库中。可以便于外部平台访问处理后的待处理数据。
本申请提供的技术方案中,根据数据存储平台的数据队列中存储的待处理数据的数量,确定批量提取的待处理数据的数量,并对批量提取的待处理数据进行并行处理。批量提取的待处理数据的数量小于所有待处理数据的数量。对批量提取的待处理数据进行处理,相较于对所有的待处理数据进行处理,可以提高数据处理的正确性。除此之外,对批量提取的待处理数据进行并行处理,可以降低处理待处理数据的时延,从而提高处理待处理数据的效率。因此,该方法能够提高处理待处理数据的正确性和效率。
下面结合图2,通过一个示例,对本申请提供的方法进行示例说明。在下述示例中,数据存储平台为Redis集群。具体地:
(1)外部平台通过调用数据处理平台的接口,推送单条或多条待处理数据。数据处理平台设置有一个列表,作为保存外部平台推送的单条或多条待处理数据的临时数据池。
(2)数据处理平台根据Lua脚本所定义的预设的写入速度和预设的批量写入数量,从(1)中所述的列表中,选取多个待处理数据,调用lpush(key,value)命令,将这些待处理数据写入Redis集群的数据队列中,完成该多个待处理数据装载至数据队列的操作。
(3)数据处理平台利用前述公式(1),根据第一函数、第二函数和第三函数中,定从数据存储平台的数据队列中提取的待处理数据的数量N。
此时,由于数据处理平台的数据处理量相较于推入Redis集群的数据队列中的数据量有了一个较大程度的削减,减少了单位时间内处理的消息数量,实现了数据流量的削峰,使得Redis集群能够高效的完成数据缓存的作用。
(4)数据处理平台通过rpop命令,将N个待处理数据从数据队列中批量提取出来,其中,该rpop命令中携带待处理数据被写入的数据队列的队列号以及需要提取的待处理数据的数量N。
(5)数据处理平台并行处理从数据队列中提取的N个待处理数据。
可选地,在实现上述步骤(2)至(5)时,数据处理平台可以采用不同的线程,例如,可以利用一个线程向数据队列写入待处理数据,再利用另外一个线程从数据队列中提取N个待处理数据,通过这种利用多线程对数据流量进行处理和监控的方式,可以高效的完成推入与取出数据,提高了数据处理效率。
本方法通过Redis集群完成了对流经数据处理平台的数据的流量削峰操作,同时利用Lua脚本实现向数据队列动态写入和动态提取的操作,可以实现对Redis集群的数据队列的控制,从而可以确保数据不会过多的积压在数据队列中,从而能够高效的完成数据处理工作,使得数据处理平台能够高效且正确的完成数据流量的削峰。
图4为本申请实时例提供的数据处理装置的结构示意图。如图4所示,该数据处理装置可以应用于上述实施例中的数据处理平台中。该数据处理装置400包括:
确定模块410,用于根据数据存储平台的数据队列中存储的待处理数据的数量M,确定从所述数据队列提取的待处理数据的数量N,其中,所述M和所述N均为大于或等于1的正整数,所述M大于所述N、且所述M与所述N正相关;
获取模块420,用于从所述数据队列中批量提取N个待处理数据;
处理模块430,用于并行处理所述N个待处理数据。
可选的,所述确定模块410具体用于:
根据第一函数、第二函数和第三函数,确定从所述数据队列提取的待处理数据的数量N;
其中,所述第一函数,用于表征所述数据处理平台并行处理不同数量的待处理数据的时延;
所述第二函数,用于表征从所述数据队列中提取不同数量的待处理数据时,所述数据处理平台存储处理后的所述待处理数据的存储次数;
所述第三函数,用于表征在所述数据存储平台的数据队列中存储的待处理数据的数量为M时,从所述数据队列中提取N个待处理数据时,所述数据存储平台中待处理数据的积压压力。
可选的,所述确定模块410具体用于:
计算目标函数的最小值,确定所述N,该目标函数例如可以如下述公式(1)所示:
F(N)=aD(N)+bP(N)+cS(M,N) (1)
其中,F(N)为所述目标函数,D(N)为所述第一函数,P(N)为所述第二函数,S(M,N)为所述第三函数,a、b和c均为权重系数、且所述a、b和c之和等于1。
可选的,所述数据处理装置400还包括:
收发模块440,用于在预设时长内,若接收到来自外部平台的至少一个待处理数据,则将所述至少一个待处理数据批量写入所述数据队列中。
可选的,所述收发模块440具体用于:根据预设的写入速度和/或预设的批量写入数量,将所述至少一个待处理数据批量写入所述数据队列中。
可选的,所述收发模块440具体用于:通过lua脚本语言将所述至少一个待处理数据批量写入所述数据队列中。
可选的,所述收发模块440还用于:在所述处理模块并行处理所述N个待处理数据之后,若所述N个待处理数据中的目标数据处理失败,则将所述目标数据重新写入所述数据队列中。
可选的,所述数据存储平台为远程字典服务集群。
可选的,所述处理模块还用于:将处理后的所述N个待处理数据批量存储于所述数据处理平台的数据库中。
图5为本申请提供的电子设备的结构示意图。如图5所示,该电子设备500可以为上述实施例中所述的数据处理平台,该电子设备500包括:存储器501和至少一个处理器502。
存储器501,用于存储程序指令;
处理器502,用于在程序指令被执行时实现本实施例中的数据处理方法,具体实现原理可参见上述实施例,本实施例此处不再赘述。
该电子设备还可以包括及输入/输出接口503。
输入/输出接口503可以包括独立的输出接口和输入接口,也可以为集成输入和输出的集成接口。其中,输出接口用于输出数据,输入接口用于获取输入的数据。
本实施例还提供一种可读存储介质,可读存储介质中存储有执行指令,当电子设备的至少一个处理器执行该执行指令时,当计算机执行指令被处理器执行时,实现上述实施例中的数据处理方法。
本实施例还提供一种计算机程序产品,该程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述实施例中的数据处理方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (11)
1.一种数据处理方法,其特征在于,所述方法应用于数据处理平台,包括:
根据数据存储平台的数据队列中存储的待处理数据的数量M,确定从所述数据队列提取的待处理数据的数量N,其中,所述M和所述N均为大于或等于1的正整数,所述M大于所述N、且所述M与所述N正相关;
从所述数据队列中批量提取N个待处理数据;
并行处理所述N个待处理数据。
2.根据权利要求1所述的方法,其特征在于,所述根据数据存储平台的数据队列中存储的待处理数据的数量M,确定从所述数据队列提取的待处理数据的数量N,包括:
根据第一函数、第二函数和第三函数,确定从所述数据队列提取的待处理数据的数量N;
其中,所述第一函数,用于表征所述数据处理平台并行处理不同数量的待处理数据的时延;
所述第二函数,用于表征从所述数据队列中提取不同数量的待处理数据时,所述数据处理平台存储处理后的所述待处理数据的存储次数;
所述第三函数,用于表征在所述数据存储平台的数据队列中存储的待处理数据的数量为M时,从所述数据队列中提取N个待处理数据时,所述数据存储平台中待处理数据的积压压力。
3.根据权利要求2所述的方法,其特征在于,所述根据第一函数、第二函数和第三函数,确定从所述数据队列提取的待处理数据的数量N,包括:
计算目标函数的最小值,确定所述N,所述目标函数为:
F(N)=aD(N)+bP(N)+cS(M,N)
其中,F(N)为所述目标函数,D(N)为所述第一函数,P(N)为所述第二函数,S(M,N)为所述第三函数,a、b和c均为权重系数、且所述a、b和c之和等于1。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
在预设时长内,若接收到来自外部平台的至少一个待处理数据,则将所述至少一个待处理数据批量写入所述数据队列中。
5.根据权利要求4所述的方法,其特征在于,所述将所述至少一个待处理数据批量写入所述数据队列中,包括:
根据预设的写入速度和/或预设的批量写入数量,将所述至少一个待处理数据批量写入所述数据队列中。
6.根据权利要求1-3中任一项所述的方法,其特征在于,所述并行处理所述N个待处理数据之后,所述方法还包括:
若所述N个待处理数据中的目标数据处理失败,则将所述目标数据重新写入所述数据队列中。
7.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
将处理后的所述N个待处理数据批量存储于所述数据处理平台的数据库中。
8.一种数据处理装置,其特征在于,所述装置应用于数据处理平台,所述装置包括:
确定模块,用于根据数据存储平台的数据队列中存储的待处理数据的数量M,确定从所述数据队列提取的待处理数据的数量N,其中,所述M和所述N均为大于或等于1的正整数,所述M大于所述N、且所述M与所述N正相关;
获取模块,用于从所述数据队列中批量提取N个待处理数据;
处理模块,用于并行处理所述N个待处理数据。
9.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行权利要求1-7中任一项所述的数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7中任一项所述的数据处理方法。
11.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110635559.1A CN113377501A (zh) | 2021-06-08 | 2021-06-08 | 数据处理方法、装置、设备、介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110635559.1A CN113377501A (zh) | 2021-06-08 | 2021-06-08 | 数据处理方法、装置、设备、介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113377501A true CN113377501A (zh) | 2021-09-10 |
Family
ID=77576382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110635559.1A Pending CN113377501A (zh) | 2021-06-08 | 2021-06-08 | 数据处理方法、装置、设备、介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377501A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297711A (zh) * | 2019-05-16 | 2019-10-01 | 平安科技(深圳)有限公司 | 批量数据处理方法、装置、计算机设备及存储介质 |
CN111694681A (zh) * | 2020-06-12 | 2020-09-22 | 中国银行股份有限公司 | 批量业务的处理方法、装置、电子设备和计算机存储介质 |
WO2020259017A1 (zh) * | 2019-06-24 | 2020-12-30 | 同方威视科技江苏有限公司 | 时序数据处理方法、装置、系统、服务器及可读存储介质 |
-
2021
- 2021-06-08 CN CN202110635559.1A patent/CN113377501A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297711A (zh) * | 2019-05-16 | 2019-10-01 | 平安科技(深圳)有限公司 | 批量数据处理方法、装置、计算机设备及存储介质 |
WO2020259017A1 (zh) * | 2019-06-24 | 2020-12-30 | 同方威视科技江苏有限公司 | 时序数据处理方法、装置、系统、服务器及可读存储介质 |
CN111694681A (zh) * | 2020-06-12 | 2020-09-22 | 中国银行股份有限公司 | 批量业务的处理方法、装置、电子设备和计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110008045B (zh) | 微服务的聚合方法、装置、设备及存储介质 | |
CN111414389B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN110232411B (zh) | 模型蒸馏实现方法、装置、系统、计算机设备及存储介质 | |
CN108509501B (zh) | 一种查询处理方法、服务器及计算机可读存储介质 | |
CN107315729B (zh) | 用于图表的数据处理方法、介质、装置和计算设备 | |
CN112687266B (zh) | 语音识别方法、装置、计算机设备和存储介质 | |
CN110825435B (zh) | 用于处理数据的方法和装置 | |
CN110297743B (zh) | 一种负载测试方法、装置和存储介质 | |
CN112860706A (zh) | 一种业务的处理方法、装置、设备及存储介质 | |
CN110955390B (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN115098018A (zh) | 一种数据写入方法、设备及存储介质 | |
CN110413540B (zh) | 一种fpga数据缓存的方法、系统、设备及存储介质 | |
CN113377501A (zh) | 数据处理方法、装置、设备、介质及程序产品 | |
CN109246082B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN114169451A (zh) | 行为数据分类处理方法、装置、设备及存储介质 | |
CN111241818B (zh) | 词槽填充方法、装置、设备及存储介质 | |
US11755534B2 (en) | Data caching method and node based on hyper-converged infrastructure | |
CN113220760B (zh) | 一种数据处理方法、装置、服务器及存储介质 | |
CN116804915B (zh) | 基于存储器的数据交互方法、处理器、设备以及介质 | |
CN112394962B (zh) | 一种业务执行方法、业务逻辑更新方法及装置 | |
CN117874211B (zh) | 基于saas软件的智能问答方法、系统、介质及电子设备 | |
US20240126610A1 (en) | Apparatus and method of processing data, electronic device, and storage medium | |
CN113900831A (zh) | 请求处理方法、装置、电子设备及存储介质 | |
CN116244363A (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 |