掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、装置、存储介质及计算机设备

文献发布时间:2023-06-19 11:26:00


数据处理方法、装置、存储介质及计算机设备

技术领域

本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、存储介质及计算机设备。

背景技术

数据库(database)是一种按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

随着计算机技术的发展,用户期望存储的数据越来越多,数据库的规模也越来越大。例如,对于大规模的视频图像分析技术,用户通过进行图像分析可以得到数十亿甚至上百亿数量级的特征。

由于计算机算法的不断更新,数据库中保存的大量历史数据可能无法适用于新的算法,因此,需要对数据库中的大量历史数据进行更新。在进行历史数据更新时,现有技术通常是一次性对所有数据进行更新。然而,由于数据较多,更新时间较长,若更新过程中出现数据更新任务中断的情况,则需要重新对所有数据进行更新,从而,导致现有数据存在数据更新效率低的问题。

发明内容

本申请提供一种数据处理方法、装置、存储介质及计算机设备,用以解决现有技术存在的问题。

第一方面,本申请提供一种数据处理方法,包括:

获取数据处理过程中的索引表以及进度表,其中,所述索引表用于保存所有分段数据对应的多个索引信息,所述进度表用于保存对所述分段数据进行数据处理的进度信息,所述分段数据为对数据库中待处理的原始数据进行分段处理得到;

根据所述索引表以及所述进度表确定开始进行数据处理的起点索引信息;

迭代执行从所述起点索引信息开始,从所述索引表中选择预设数量的索引信息,对所选择的索引信息对应的分段数据进行处理以得到数据处理结果,并将所选择的索引信息的下一个索引信息更新为新的起点索引信息的步骤,直至所有分段数据都存在对应的数据处理结果。

在一些实施例中,所述对所述分段数据进行数据处理的进度信息包括:已完成数据处理的分段数据对应的索引信息;

所述根据所述索引表以及所述进度表确定开始进行数据处理的起点索引信息,包括:

按照所述索引表中各所述索引信息的排列顺序,确定未存在于所述进度表中的第一个索引信息为所述起点索引信息。

在一些实施例中,所述按照所述索引表中各所述索引信息的排列顺序,确定未存在于所述进度表中的第一个索引信息为所述起点索引信息,包括:

获取所述索引表以及所述进度表的差集;

确定所述差集中的第一个索引信息为所述起点索引信息。

在一些实施例中,还包括:

在完成对单个索引信息对应的所有分段数据的处理后,将所述单个索引信息添加至所述进度表;以及

根据所述单个索引信息对应的所有分段数据的数据处理结果,对所述数据库进行更新。

在一些实施例中,所述预设数量为根据进行数据处理的系统资源的计算能力确定。

在一些实施例中,还包括:

获取所述数据库中待处理的原始数据的数据大小;

根据所述原始数据的数据大小,确定分段尺寸;

根据所述分段尺寸,对所述待处理的原始数据进行分段处理,得到所述分段数据。

在一些实施例中,获取数据处理过程中的进度表的步骤,包括:

检测当前是否已存在进度表;

若存在,则直接获取已有的所述进度表;

若未存在,则创建新的进度表。

在一些实施例中,所述数据库中待处理的原始数据包括人脸特征数据;

所述数据处理包括对所述人脸特征数据的数据升级处理;

所述索引表中索引信息的数据结构包括摄像头区域编号、区域内的摄像头编号以及人脸特征数据;

所述进度表中索引信息的数据结构包括摄像头区域编号、索引编号、所述索引编号对应的人脸特征数据的起始时间、结束时间以及数据数量。

第二方面,本申请提供一种数据处理装置,包括:

获取模块,用于获取数据处理过程中的索引表以及进度表,其中,所述索引表用于保存所有分段数据对应的多个索引信息,所述进度表用于保存对所述分段数据进行数据处理的进度信息,所述分段数据为对数据库中待处理的原始数据进行分段处理得到;

确定模块,用于根据所述索引表以及所述进度表确定开始进行数据处理的起点索引信息;

处理模块,用于迭代执行从所述起点索引信息开始,从所述索引表中选择预设数量的索引信息,对所选择的索引信息对应的分段数据进行处理以得到数据处理结果,并将所选择的索引信息的下一个索引信息更新为新的起点索引信息的步骤,直至所有分段数据都存在对应的数据处理结果。

第三方面,本申请提供一种计算机设备,包括:存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的数据处理方法。

第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述的数据处理方法。

本申请提供的数据处理方法、装置、存储介质及计算机设备,该方法包括:获取数据处理过程中的索引表以及进度表,其中,所述索引表用于保存所有分段数据对应的多个索引信息,所述进度表用于保存对所述分段数据进行数据处理的进度信息,所述分段数据为对数据库中待处理的原始数据进行分段处理得到;根据所述索引表以及所述进度表确定开始进行数据处理的起点索引信息;迭代执行从所述起点索引信息开始,从所述索引表中选择预设数量的索引信息,对所选择的索引信息对应的分段数据进行处理以得到数据处理结果,并将所选择的索引信息的下一个索引信息更新为新的起点索引信息的步骤,直至所有分段数据都存在对应的数据处理结果。一方面,本申请通过建立索引表以及进度表,可以在数据处理任务中断时,快速定位重新开始进行数据处理的起点位置,以避免重新对全部数据进行数据处理的情况,可以减少由于任务中断导致需要重新处理时的数据量,降低任务中断造成的影响,提高数据处理效率;另一方面,本申请通过对数量级较大的原始数据进行分段处理,再依次对一定数量的分段数据进行数据处理,可以避免单次数据处理过程中数据的数量级超过系统资源承受能力的情况,缓解系统资源的计算压力。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1为本申请实施例提供的数据处理方法的示意图;

图2为本申请实施例中进行数据处理的流程示意图;

图3为本申请实施例中进行特征数据分段的示意图;

图4为本申请实施例提供的数据处理装置的示意图;

图5为本申请实施例提供的计算机设备的结构示意图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本申请实施例中所使用的单数形式的“一种”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

本申请提供的数据处理方法、装置、存储介质及计算机设备,可以应用于对于海量数据进行处理的应用场景,以下以数据处理为特征数据升级为例,本申请的应用场景进行解释说明:

随着智慧城市建设规模的日渐扩大,其所依赖的大规模视频分析系统所需要处理的数据量也有了很大程度的增加。为了节省资源,提升性能和准确率,现有的系统都会先使用基于深度神经网络的算法对采集到的人脸图像提取出有意义的人脸特征向量,再对这些特征向量进行存储、计算与分析。然而,随着算法的不断迭代优化,图像到特征向量的转换规则也会不断发生变化,由此会产生出不同算法版本的人脸特征,且不同算法版本的特征是不能直接进行计算和比对的。当旧版本的系统想使用新的算法模型时,就必须对系统中已经存在的海量特征数据做相应的升级转换。

目前城市级大规模分布式视频分析系统中的特征数据量一般能达到数十亿级,未来还会快速增长,对这些系统中的海量特征数据进行稳定可靠的转换升级,存在着巨大的挑战,主要有如下两个难点:

1、数十亿的特征数据需要占用大量的存储空间,对于目前的大部分系统而言,由于资源限制,这些特征往往不能被一次性装载进系统中进行升级转换计算;

2、数十亿的特征升级转换是一项耗时长久的计算任务,在长时间的计算过程中,难免会因为网络故障或者机器故障等系统故障导致升级任务出现中断,进而致使已完成的计算结果需要重新计算,重复消耗大量的时间和资源。

因此,要稳定可靠地完成一次大规模分布式特征升级计算任务,需要解决上述两个难题,但现有的技术方案还无法有效应对这些难题。

本申请提供的技术方案,旨在解决现有技术的如上技术问题。

本申请方案的主要构思为:

首先,对于系统无法一次性装载大量特征数据的难题,本申请使用分段滑动窗口机制对特征数据进行分段装载、升级:在特征升级开始前,先根据系统可用资源的数量设定一个分段窗口的大小,然后根据这个窗口大小对特征数据进行分段,再根据特定规则将分段后的数据有序装载进系统进行升级。

另外,为了在系统出现故障导致升级任务中断时,减少需要重新升级的特征数据量,节约系统资源和时间,提升转换效率,本申请设计了一种针对特征升级的断点重试机制:通过在持久化存储设备中建立用于保存特征升级进度的进度表(progress表),并在升级过程中定期在表中记录每个特征数据分段的升级进度信息;在升级任务因系统故障被中断后,需要重启升级任务时,可以通过分析progress表里的记录,把升级任务恢复到接近被中断前状态,并从该状态开始继续进行特征的升级转换,减少因故障需要重新升级的数据量,并保证故障前后特征升级过程的连续性。

基于上述构思,本申请的技术方案可以起到如下技术效果:

一方面,本申请提供了一种分段装载、升级特征的方案,解决了在系统资源有限的情况下,海量特征难以一次性装载到系统中进行升级的难题。

另一方面,本申请提供了一种在特征升级计算任务执行期间记录升级进度,并在系统故障导致特征转化任务中断时,从最近的中断点恢复的特征数据升级方案,解决了现有的特征升级技术没有考虑长时间的特征升级任务在遇到系统故障时的断点重试方案,大大减少任务失败时需要重新计算的数据量,降低系统故障所造成的损失,提升总体转换效率。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

可以理解,本申请中数据处理方法的处理步骤可以由终端设备或者服务器实现。

图1为本申请实施例提供的数据处理方法的示意图,如图1所示,以数据处理方法由服务器实现为例进行解释说明,该方法主要包括以下步骤:

S100、获取数据处理过程中的索引表以及进度表,其中,索引表用于保存所有分段数据对应的多个索引信息,进度表用于保存对分段数据进行数据处理的进度信息,分段数据为对数据库中待处理的原始数据进行分段处理得到。

其中,数据库保存有待处理的原始数据,待处理的原始数据可以是数量级比较大的数据,例如视频分析处理过程中提取的海量特征数据等。为了避免一次性对海量数据进行处理,可以首先通过对原始数据进行分段处理得到分段数据,单个分段数据可以包括一定数量的部分原始数据,然后分别对分段数据进行处理,以减小单次数据处理过程中的数据量。

服务器在进行数据处理之前,可以根据分段数据构建索引表(index表),索引表中的索引信息与分段数据相对应,一个索引信息可以对应包含多个分段数据,从而,根据索引表中的索引信息可以快速定位对应的分段数据。可以理解,在本实施例中,索引表可以是预先构建好,服务器可以直接获取该索引表。

可选的,获取数据处理过程中的进度表的步骤,包括:检测当前是否已存在进度表;若存在,则直接获取已有的进度表;若未存在,则创建新的进度表。

具体的,服务器在初次进行数据处理时,若未存在进度表,则服务器可以构建用于保存数据处理进度的进度表(progress表),在完成对分段数据的数据处理后,服务器对进度表进行更新,从而可以实时保存数据处理进度。

另外,若服务器不是初次进行数据处理,例如,是在前一次数据处理任务中断后重新进行任务处理,则进度表是已经构建好的,且保存有前一次数据处理的进度信息,此时,服务器获取进度表的过程,可以是直接获取已有的包含前一次数据处理的进度信息的进度表。

可选的,进度表中对分段数据进行数据处理的进度信息包括:已完成数据处理的分段数据对应的索引信息,即,服务器在完成对索引信息对应的分段数据的数据处理后,可以将该索引信息存入进度表中,以表明该索引信息对应的分段数据已完成数据处理。

S200、根据索引表以及进度表确定开始进行数据处理的起点索引信息。

具体的,服务器获取的进度表可能为空,也可能不为空。

其中,在进度表不为空时,说明进度表保存有数据处理的进度信息,即服务器在进行本次的数据处理之前,已经对部分分段数据进行处理,此时,服务器可以根据索引表以及进度表确定本次开始进行数据处理的起点索引信息,即,服务器在进行本次数据处理时,可以以起点索引信息对应的分段数据为起点,开始进行数据处理。

另外,在进度表为空时,说明未存在进行数据处理的历史进度信息,也就是说,服务器当前为初次进行数据处理。

此时,服务器可以按照索引表中各索引信息的排列顺序,以索引表中的首个索引信息为起点索引信息,依次对各索引信息对应的分段数据进行数据处理,从而便于进行数据处理进度的记录,避免在对海量数据进行数据处理时,出现数据处理混乱的情况。

S300、迭代执行从起点索引信息开始,从索引表中选择预设数量的索引信息,对所选择的索引信息对应的分段数据进行处理以得到数据处理结果,并将所选择的索引信息的下一个索引信息更新为新的起点索引信息的步骤,直至所有分段数据都存在对应的数据处理结果。

服务器在根据索引表以及进度表确定开始进行数据处理的起点索引信息之后,可以以起点索引信息对应的分段数据为起点,开始进行本次的数据处理,从而得到分段数据对应的数据处理结果。

具体的,服务器可以通过滑动窗口的形式,依次选择预设数量的索引信息对应的分段数据,然后对所选择的分段数据进行处理;在完成数据处理后,再以下一个索引信息为起点索引信息,再重新选择预设数量的索引信息对应的分段数据,然后对所选择的分段数据进行处理,重复上述处理过程,直至完成对所有分段数据的数据处理,即所有分段数据都存在对应的数据处理结果。

可选的,预设数量为根据进行数据处理的系统资源的计算能力确定,即根据系统资源的计算能力来确定单次进行数据处理时所选择的数据量大小。

例如,假设索引表中包含m个索引信息,服务器当前确定的起点索引信息为第8个索引信息,预设数量为4,则服务器首先选择第8、9、10、11个索引信息对应的分段数据,并对选择的分段数据进行数据处理;在完成数据处理后,在选择第12、13、14、15个索引信息对应的分段数据,并对选择的分段数据进行数据处理,以此类推。

可选的,若进行数据处理的过程中,若由于意外原因导致数据处理中断,则返回S200重新确定开始进行数据处理的起点索引信息。

需要说明的是,服务器在对分段数据进行数据处理时,是按照分段数据的排列顺序,也就是索引表中索引信息的排列顺序进行数据处理,从而便于进行数据处理进度的记录,避免在对海量数据进行数据处理时,出现数据处理混乱的情况。

本实施例提供一种数据处理方法,一方面,本申请通过建立索引表以及进度表,可以在数据处理任务中断时,快速定位重新开始进行数据处理的起点位置,以避免重新对全部数据进行数据处理的情况,可以减少由于任务中断导致需要重新处理时的数据量,降低任务中断造成的影响,提高数据处理效率;另一方面,本申请通过对数量级较大的原始数据进行分段处理,再依次对一定数量的分段数据进行数据处理,可以避免单次数据处理过程中数据的数量级超过系统资源承受能力的情况,缓解系统资源的计算压力。

在一些实施例中,对分段数据进行数据处理的进度信息包括:已完成数据处理的分段数据对应的索引信息。

根据索引表以及进度表确定开始进行数据处理的起点索引信息,包括:按照索引表中各索引信息的排列顺序,确定未存在于进度表中的第一个索引信息为起点索引信息。

具体的,服务器在进行数据处理时,在完成对单个索引信息对应的所有分段数据的数据处理后,将该索引信息添加至进度表中,以表示该分段数据已完成数据处理工作。

服务器在根据索引表以及进度表确定开始进行数据处理的起点索引信息时,由于服务器是按顺序进行数据处理,因此,服务器可以按照索引表中各索引信息的排列顺序,结合进度表中保存的已完成数据处理的分段数据对应的索引信息,依次确定各索引信息是否存在于进度表中,并确定未存在于进度表中的第一个索引信息为起点索引信息。

本实施例中,在进度表保存有已完成数据处理的分段数据对应的索引信息时,服务器可以按照索引表中各索引信息的排列顺序,确定未存在于进度表中的第一个索引信息为起点索引信息,从而可以准确定位重新进行数据处理任务的起点位置。

在一些实施例中,按照索引表中各索引信息的排列顺序,确定未存在于进度表中的第一个索引信息为起点索引信息,包括:

S210、获取索引表以及进度表的差集;

S220、确定差集中的第一个索引信息为起点索引信息。

具体的,服务器在按照索引表中各索引信息的排列顺序,确定未存在于进度表中的第一个索引信息为起点索引信息时,可以通过对索引表以及进度表进行求差集运算,得到索引表以及进度表的差集,然后确定差集中的第一个索引信息为起点索引信息。

例如,若服务器获取的索引表包括{index-1,index-2,…,index-i-1,index-i…,index-m}共m个索引信息,进度表包括{index-1,index-2,…,index-i-1}共i个索引信息,通过对索引表以及进度表进行求差集运算得到的差集为{index-i,…,index-m},因此,可以确定index-i为起点索引信息,即可以从index-i对应的分段数据开始进行数据处理。

本实施例中,服务器可以通过对索引表以及进度表进行求差集运算,得到索引表以及进度表的差集,然后确定差集中的第一个索引信息为起点索引信息,从而可以准确定位重新进行数据处理任务的起点位置。

在一些实施例中,数据处理方法还包括:

S101、获取数据库中待处理的原始数据的数据大小;

S102、根据原始数据的数据大小,确定分段尺寸;

S103、根据分段尺寸,对待处理的原始数据进行分段处理,得到多个分段数据。

在进行数据处理之前,服务器可以首先对数据库中待处理的海量原始数据进行分段处理,以得到多个分段数据。

具体的,服务器可以首先根据数据库内的原始数据确定待处理数据的数据大小,然后根据待处理数据的数据大小确定合适的分段尺寸,即服务器可以动态确定分段数据的数据大小。例如,当待处理数据的数据大小较大时,分段尺寸也可以适应性增大,当待处理数据的数据大小较小时,分段尺寸也可以适应性减小,从而保证分段数据的数量的合理性。

可选的,在确定分段尺寸时,也可以综合服务器的系统资源承受能力来综合考虑,例如,当系统资源承受能力较强时,可以适当增加分段尺寸,当系统资源承受能力较弱时,可以适当减小分段尺寸。

可选的,分段尺寸也可以是采用固定尺寸。

在确定分段尺寸后,服务器根据分段尺寸,对待处理的原始数据进行分段处理,得到多个分段数据,从而可以分别对多个分段数据进行处理。

可选的,服务器进行数据分段的步骤,可以是在初次进行数据处理之前执行,也可以是在确定开始进行数据处理的起点位置之后再执行,本实施例对此不做限定。

本实施例中,服务器通过对数量级较大的原始数据进行分段处理,再分别对得到的分段数据进行数据处理,可以避免单次数据处理过程中数据的数量级超过系统资源承受能力的情况,缓解系统压力。

在一些实施例中,数据处理方法还包括:

S410、在完成对单个索引信息对应的所有分段数据的处理后,将单个索引信息添加至进度表;以及

S420、根据单个索引信息对应的所有分段数据的数据处理结果,对数据库进行更新。

服务器在完成单个索引信息对应的所有分段数据的数据处理工作后,分别对数据库以及进度表进行更新,以及时保存数据处理结果以及进度信息,防止出现数据处理任务中断而数据处理结果未及时保存的情况。

具体的,在对数据库进行更新时,服务器可以使用单个分段数据对应的处理后数据替换数据库中对应的原始分段数据;在对进度表进行更新时,服务器可以将完成数据处理后的分段数据对应的索引信息添加至进度表中。

本实施例中,服务器在完成单个分段数据的数据处理工作后,分别对数据库以及进度表进行更新,以及时保存数据处理结果以及进度信息,防止出现数据处理任务中断而数据处理结果未及时保存的情况。

在一些实施例中,结合一种城市级智能视频分析系统的时空数据库进行特征升级的具体场景,对本申请的技术方案进行解释说明。

本实施例中,数据库中待处理的原始数据包括人脸特征数据;数据处理包括对人脸特征数据的数据升级处理;索引表中索引信息的数据结构包括摄像头区域编号、区域内的摄像头编号以及人脸特征数据;进度表中索引信息的数据结构包括摄像头区域编号、索引编号、索引编号对应的人脸特征数据的起始时间、结束时间以及数据数量。

具体的,在城市级智能视频分析系统中,各个区域内的各个摄像头在各个时间内抓拍解析到的海量人脸特征数据及其对应的时空信息一般是存储于一个分布式数据库中的某个特征表(feature表)中。同时,由于数据量巨大,为了高效的管理和检索这些数据,可以对表中数据进行分段,由于每条特征数据都附带着其时空信息,因此可以根据这些时空信息来建立索引信息,索引信息的数据结构具体为:

((rid,cid,cap_date),f)

其中,f为每条人脸特征数据,rid为摄像头区域编号,cid为区域内的摄像头编号,cap_date为该特征对应图像的抓拍日期,rid、cid以及cap_date这三者构成了特征的索引信息。这部分索引数据存在于数据库中的索引表(index表)中,索引表保存有包括摄像头所属区域,摄像头id,图像抓拍日期在内的时空信息,以及索引的id,和该分段中包含的特征的数量。

图2为本申请实施例中进行数据处理的流程示意图,如图2所示,进行数据处理的流程主要包括以下步骤:

S1、预处理。

具体的,预处理操作主要在于判断当前是否已经创建了用于存储升级进度的进度表,如果未创建,说明本次为初次升级,需要创建用于存储升级进度的进度表;如果已创建,说明这是一次故障导致升级任务中断后,任务重新恢复的升级过程,则读取该进度表的数据,获取升级进度。

本实施例中,数据升级的进度信息可以按照如下格式存储在进度表中:

(rid,index_id,first_time,last_time,shard_size)

其中,rid为摄像头区域编号,index_id为索引编号,first_time为该分段所包含特征的起始时间,last_time为该分段所包含特征的结束时间,shard_size为该分段所包含特征的数量。

S2、进度表数据分析。

时空数据库根据时空信息来对所管理的特征进行分段、建立索引,并将索引信息存储于数据库的索引表(index表)中。为了在升级任务中断后,帮助系统把任务恢复到某个中间状态,在再次开始升级任务前,应该对进度表的数据进行分析:首先要判断本次升级是初次开始还是被中断后再次开始的;如果是被中断再执行的,则需要判断哪些特征数据是已经升级过的,应该从哪里继续进行特征升级,否则可以直接从头开始升级特征。

本实施例中,该分析是通过对index表与progress表数据的差集来达成这个目的:在特征升级开始时,先加载index表数据,得到其所有的索引信息的集合A,然后再加载progress表数据,得到上次成功转换的所有特征的索引信息集合B,最后再计算index表和progress表的差集C=A-B,从而过滤出包含了待转换的特征数据范围的索引信息。当索引信息集合B为空时,说明本次升级是初次升级,需要对所有特征从头开始升级;当差集C为空时,说明所有特征均已经被升级过,本次升级无需再升级特征。

S3、特征数据分段。

通过S2,可以得到待转换的特征数据对应的索引信息集合C,该集合中的每条索引信息的记录与index表类似,包括:代表摄像头所属区域id的rid,代表摄像头id的cid,以及该分段所管理的特征数量m

在特征数据量达到数十亿级的分布式系统中,对于其特征升级的过程中由于资源的限制,这些特征往往不能被一次性装载进系统中进行升级转换计算,因此,本实施例在分析进度表数据,获取待升级的特征数据范围的信息后,对特征数据采用分段操作,将特征数据分成多个在大小上系统可以一次性装载的集合,为系统对特征进行分批升级提供条件。本实施例基于滑动窗口机制对特征数据进行分段操作,具体操作流程为:

S31、根据每条特征数据所占据的字节数大小f

k*f

S32、根据时间顺序遍历待转换特征数据对应的索引信息集合C,并通过累加索引信息中,代表分段所管理的特征数量m

将集合C划分成若干个子集{c

S33、对于每一个子集c

图3为本申请实施例中进行特征数据分段的示意图,如图3所示,step window代表的是一个滑动窗口大小,shard window则代表一个索引信息index所管理的特征范围。从图中可以看出,在每一段滑动窗口step window内的特征转换中,都包含着整数个特征索引index,而每个索引又对应一段特征数据,这种两级分段的数据组织形式可以保证系统在拥有海量特征数据的情况下,还能快速的取出特定范围的特征以及对特征数据进行灵活的拆分和隔离。

在每一段窗口内的特征数据转换完成后,会将其所包含索引数据同步更新到progress表中,然后转换窗口滑动到下一段至待转换的特征索引处,继续执行特征转换流程。这样随着分段特征升级转换窗口不断的向前滑动,整体特征转换的执行进度会被及时的记录下来。如果系统发生了故障,某段窗口内的特征转换流程中断,则在下次启动特征转化流程时,可以根据progress的进度记录来确定上次执行的断点,保证整个流程的连续性。

S4、分布式特征升级计算。

完成特征数据分段之后,每个{f

S5、特征数据更新和升级进度更新。

在S4中的一个滑动窗口内的特征升级计算完成后,需要更新features表中的数据为升级过的特征,以及记录升级进度。本实施例会将子集c

根据本实施例的上述五个步骤进行特征升级时,在任意一个步骤中遇到系统故障导致升级任务被中断时,都只会导致一个滑动窗口内的特征升级失败,对之前已经转化的特征和之后待转换的特征都不会造成影响,每一段滑动窗口内的特征转换都是独立可重试的。这样就降低了系统故障对整个特征升级流程的影响。由于每次执行特征升级时都会先处理和比对progress表所记录的进度,因此重启整个流程不会导致过多的重复特征转换计算,避免了不必要的重复计算,保证故障前后特征转换的可靠性和连续性。

对于存储有数十亿海量特征数据的大型视频分析系统,本实施例技术可在使用有限可控的资源的情况下,为系统提供一套可靠、可重试的特征升级方案,保障特征升级过程的数据升级的连续性和可靠性,减少由系统故障引起的任务中断重试时带来的重复计算,节约资源和成本。

应该理解的是,虽然上述实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,提供一种数据处理装置。

图4为本申请实施例提供的数据处理装置的示意图,如图4所示,该装置包括:

获取模块100,用于获取数据处理过程中的索引表以及进度表,其中,索引表用于保存所有分段数据对应的多个索引信息,进度表用于保存对分段数据进行数据处理的进度信息,分段数据为对数据库中待处理的原始数据进行分段处理得到;

确定模块200,用于根据索引表以及进度表确定开始进行数据处理的起点索引信息;

处理模块300,用于迭代执行从起点索引信息开始,从索引表中选择预设数量的索引信息,对所选择的索引信息对应的分段数据进行处理以得到数据处理结果,并将所选择的索引信息的下一个索引信息更新为新的起点索引信息的步骤,直至所有分段数据都存在对应的数据处理结果。

关于数据处理装置的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。上述数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

本申请提供一种数据处理装置,一方面,本申请通过建立索引表以及进度表,可以在数据处理任务中断时,快速定位重新开始进行数据处理的起点位置,以避免重新对全部数据进行数据处理的情况,可以减少由于任务中断导致需要重新处理时的数据量,降低任务中断造成的影响,提高数据处理效率;另一方面,本申请通过对数量级较大的原始数据进行分段处理,再依次对一定数量的分段数据进行数据处理,可以避免单次数据处理过程中数据的数量级超过系统资源承受能力的情况,缓解系统资源的计算压力。

在一些实施例中,提供一种计算机设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现本申请各方法实施例的步骤。

图5为本申请实施例提供的计算机设备的结构示意图,如图5所示,该计算机设备10,包括:处理器11以及存储器12。

存储器12用于存储程序和数据,处理器11调用存储器存储的程序,以执行前述任一方法实施例的技术方案。

在上述计算机设备中,存储器和处理器之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线连接。存储器中存储有实现数据访问控制方法的计算机执行指令,包括至少一个可以软件或固件的形式存储于存储器中的软件功能模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理。

存储器可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器用于存储程序,处理器在接收到执行指令后,执行程序。进一步地,上述存储器内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。

处理器可以是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

在一些实施例中,提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现本申请各方法实施例的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。

相关技术
  • 数据处理方法、装置、计算机设备和计算机可读存储介质
  • 数据处理方法、装置、计算机可读存储介质和计算机设备
技术分类

06120112923108