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

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

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


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

技术领域

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

背景技术

在数据运算统计过程中,需要对数据进行处理。

在相关技术中,通过LRU(Least Recently Used,最近最少使用)算法对数据进行处理。LRU算法认定,若一个数据被访问一次,则该数据在接下来的一段时间还会再次被访问,若某个数据过长时间未被访问,则该数据被重新访问的可能性较小。LRU算法的核心是交换未被访问时长最久的数据。

然而,针对一些突发的数据批量操作、周期性访问数据的情况,LRU算法会导致进行数据交换过程频繁发生,增加了不必要的数据交换次数。

发明内容

本申请提供了一种数据处理方法、装置、设备及存储介质,针对一些突发的数据批量操作、周期性访问数据的情况,也能避免频繁的数据交换过程。所述技术方案如下:

根据本申请实施例的一方面,提供了一种数据处理方法,所述方法包括:

确定存储空间中待访问的目标数据,所述存储空间包括缓存空间和非缓存空间,所述缓存空间包括热数据集合和留存冷数据集合;

在所述目标数据属于所述留存冷数据集合的情况下,更新所述目标数据的第一频率参数和所述目标数据的第二频率参数,所述目标数据的第一频率参数用于表示在所述目标数据最近两次访问间隔内被访问的不重复数据的个数,所述目标数据的第二频率参数用于表示在最近n次访问中所述目标数据的被访问次数,n为正整数;

若所述目标数据的第一频率参数小于或等于第一阈值,且所述目标数据的第二频率参数大于或等于第二阈值,则将所述目标数据从所述留存冷数据集合转移至所述热数据集合中。

根据本申请实施例的另一方面,提供了一种数据处理装置,所述装置包括:

第一确定模块,用于确定存储空间中待访问的目标数据,所述存储空间包括缓存空间和非缓存空间,所述缓存空间包括热数据集合和留存冷数据集合;

参数更新模块,用于在所述目标数据属于所述留存冷数据集合的情况下,更新所述目标数据的第一频率参数和所述目标数据的第二频率参数,所述目标数据的第一频率参数用于表示在所述目标数据最近两次访问间隔内被访问的不重复数据的个数,所述目标数据的第二频率参数用于表示在最近n次访问中所述目标数据的被访问次数,n为正整数;

第一转移模块,用于在所述目标数据的第一频率参数小于或等于第一阈值,且所述目标数据的第二频率参数大于或等于第二阈值的情况下,将所述目标数据从所述留存冷数据集合转移至所述热数据集合中。

根据本申请实施例的另一方面,提供了一种计算机设备,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述数据处理方法。

根据本申请的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述数据处理方法。

根据本申请实施例的另一方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机指令,以实现上述数据处理方法。

本申请实施例提供的技术方案带来的有益效果至少包括:

通过确定待访问的目标数据,并更新目标数据的第一频率参数和第二频率参数,其中,第一频率参数用于表示在目标数据最近两次访问间隔内被访问的不重复数据的个数,第二频率参数用于表示在最近n次访问中目标数据的被访问次数,在这两个频率参数同时满足门限条件的情况下,将目标数据从缓存空间的留存冷数据集合转移至热数据集合中,提高了将目标数据移入热数据集合的门槛,只有在上述两个频率参数同时满足门限条件的情况下才可移入,保证了热数据集合中存储的数据是在最近一段访问过程中访问最频繁的数据,减少了留存冷数据集合和热数据集合间的数据交换次数,有助于降低设备处理开销。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个示例性实施例提供的计算机系统的结构框图;

图2是本申请一个示例性实施例提供的数据处理方法的流程图;

图3是本申请一个示例性实施例提供的各个存储空间之间关系的示意图;

图4是本申请一个示例性实施例提供的第一频率参数的示意图;

图5是本申请一个示例性实施例提供的第二频率参数的示意图;

图6是本申请一个示例性实施例提供的目标数据更新频率参数的示意图;

图7是本申请一个示例性实施例提供的数据处理装置的框图;

图8是本申请另一个示例性实施例提供的数据处理装置的框图;

图9是本申请一个示例性实施例提供的计算机设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

首先,对本申请实施例中涉及的名词进行介绍:

缓存淘汰:由于缓存空间的大小有限,在缓存空间中存储的数据达到缓存空间大小并且有新数据需要写入缓存空间的情况下,需要淘汰掉缓存空间中存储的数据,将新数据写入缓存空间。

热数据:是指在运算过程中,需要被计算节点频繁访问的数据,热数据通常占数据总量的20%左右。当然,该比例可以按需设定,本申请对此不作限定。

流数据:又称为数据流,是指数据量无上限的一系列动态数据的集合体,集合体中的动态数据按照时间顺序进行分布,集合体中的动态数据具有时效性,动态数据的价值随着时间的流逝而降低。对于流数据进行的运算称为流式运算,流数据的时效性要求流式运算具有实时性大数据的计算模式。

实时计算:是指针对海量数据进行的数据运算,实时计算的反馈时长一般要求为秒级。实时计算主要分为数据的实时入库、数据的实时计算两部分。目前用于实时计算的流式框架主要包括:Storm、Spark Streaming、Flink等。

图1给出了本申请一个示例性实施例提供的计算机系统的结构框图。该计算机系统可以包括:终端设备10和服务器20。

终端设备10具有数据传输功能,终端设备10运行有目标应用程序的客户端,该目标应用程序可以是视频应用程序、新闻应用程序、社交应用程序以及其他具有推送数据功能的应用程序,该数据可以是多媒体数据(如视频、音频、图片等),也可以是其他类型数据,本申请对此不作限定。该终端设备10包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。终端设备10能够将目标应用程序产生的实时数据上传给服务器20。

服务器20能为终端设备10提供后台支持,例如服务器20可以是目标应用程序的后台服务器。服务器20具有接收和统计分析数据的功能,用以实时接收终端设备10上传的数据,并对上述数据进行统计分析。服务器20可以是独立的服务器设备,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云计算、云函数、云存储、网络服务、云通信、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。在一些实施例中,在服务器20对数据进行分析处理过程中,会将数据存放在缓存空间中,以实现下述数据处理方法。

本申请实施例描述的系统架构以及业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着方案实施环境的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

图2是本申请一个示例性实施例提供的数据处理方法的流程图。该方法的执行主体是具有存储和运算功能的计算机设备。如图2所示,该方法可以包括以下几个步骤(210-230):

步骤210,确定存储空间中待访问的目标数据,存储空间包括缓存空间和非缓存空间,缓存空间包括热数据集合和留存冷数据集合。

请参考图3,其示出各个存储空间之间关系的示意图。缓存空间用于存储数据统计分析过程中需要访问的数据。在一些实施例中,缓存空间是一个大小固定的数据存储空间,缓存空间中的数据读取速度较快,缓存空间用于在数据处理过程中暂时存储原始数据或中间数据,在数据处理过程结束后,缓存空间中的数据将被丢弃或存储在非缓存空间中。在一些实施例中,在缓存空间中,每一个数据只存储一次,对于每个数据来说,其在缓存空间中只有一个存储位置,不会占用多余的存储位置。在一些实施例中,在进行流式运算的情况下,缓存空间是通过Flink框架创建的大小固定的存储空间。非缓存空间能够长期存储数据,非缓存空间中数据的存储速度较慢。

待访问的目标数据是数据统计过程中需要使用的原始数据或中间数据。在一些实施例中,在服务器对终端设备上传的数据进行统计分析的过程中,当计算节点需要访问一些数据时,这些数据即为待访问的目标数据。

缓存空间中包括热数据集合和冷数据集合。热数据集合是缓存空间中用于存储访问频率较高数据的缓存区域。在一些实施例中,热数据集合中存储的数据称为热数据。留存冷数集合是指缓存空间用于存储除热数据以外其他数据的缓存区域。在一些实施例中,随着数据访问过程的进行,热数据集合中存储的数据会发生变化。在一些实施例中,热数据集合中的数据可以与留存冷数据集合中的数据进行置换,以保证热数据集合中存储的数据始终是最近一段访问过程中,访问频率最高的数据。

在一些实施例中,热数据集合和留存冷数集合使用数据栈结构存储数据,非缓存空间使用链表结构存储数据。可选地,非缓存空间也可以称为非留存冷数据集合。在一些实施例中,留存冷数据集合和非留存冷数据集合统称为冷数据集合,冷数据集合中存储的数据称为冷数据。

在一些实施例中,热数据集合的容量小于留存冷数据集合的容量。热数据集合的容量和留存冷数据集合的容量根据在数据处理过程中需要访问的数据特性来决定,例如,在进行数据统计分析过程中,需要经常访问的数据在总数据中所占的比重较大,则相应增大热数据集合的容量。关于热数据集合的容量和冷数据集合的容量可以根据实际情况进行设定,在此不进行限定。

步骤220,更新目标数据的第一频率参数和目标数据的第二频率参数,目标数据的第一频率参数用于表示在目标数据最近两次访问间隔内被访问的不重复数据的个数,目标数据的第二频率参数用于表示在最近n次访问中目标数据的被访问次数,n为正整数。

请参考图4,其示出了第一频率参数的示意图,目标数据的第一频率参数在一定程度上可以反映目标数据在最近的数据访问过程中出现的频繁程度。目标数据的第一频率参数的数值越大,表示目标数据最近两次访问的间隔中,访问的其他数据越多,即目标数据最近两次访问之间的间隔较长,也就说明目标数据的访问的频率较低;反之,目标数据的第一频率参数的数值越小,表示目标数据最近两次访问的间隔中,访问的其他数据越少,即目标数据最近两次访问之间的间隔较短,也就说明目标数据的访问的频率较高。可选地,第一频率参数可以称为IRR(Inter Reference Recency,相互参照新近度)。

请参考图5,其示出了第二频率参数的示意图,目标数据的第二频率参数越大,表示目标数据在最近n次访问中被访问的次数越多,即目标数据在最近一段数据访问过程中出现的频率较大;反之,目标数据的第二频率参数越小,表示目标数据在最近n次访问中被访问的次数越少,即目标数据在最近一段数据访问过程中出现的频率较小。在一些实施例中,在对目标应用程序产生的数据进行实时统计分析的过程中,可以先计算根据经验计算目标应用程序产生数据量的平均值,并使得n的数据等于计算得到的平均值。n可以根据实际应用场景进行设定,示例性地n为10或15等,在此不对n的取值进行限定。可选地,第二频率参数可以称为Freq。

在存储空间中,出于节省存储空间、便于数据访问的目的,一个的数据在存储空间中只有一个存储位置,因此第一频率参数只记录不重复数据出现的次数。

更新目标数据的第一频率参数和目标数据的第二频率参数是指分别对目标数据的第一频率参数和第二频率参数进行更新操作,获得目标数据更新后的第一频率参数和第二频率参数。

在一些实施例中,更新目标数据的第一频率参数和目标数据的第二频率参数,包括:将目标数据的第三频率参数赋值给目标数据的第一频率参数,目标数据的第三频率参数用于表示目标数据最近一次访问后,被访问的不重复数据的个数;将目标数据的第二频率参数的当前数值加1,得到更新后的目标数据的第二频率参数。可选地,第三频率参数可以称为Recency。

目标数据的第三频率参数用于记录目标数据最近一次访问后,访问的不重复数据的个数,在更新目标数据的第一频率参数之后,更新目标数据的第三频率参数,将目标数据的第三频率参数赋值为0。请参考图6,其示出目标数据更新频率参数的过程,其中频率参数包括第一频率参数、第二频率参数和第三频率参数。在确定当前访问目标数据为数据1的情况下,在数据1确定被访问前,数据1的第一频率参数的数值为5,第二频率参数的数值为2,第三频率参数的数值为1,在确定该目标数据为下一个待访问数据后,该目标数据更新后的第一频率参数的当前数值为1,第二频率参数的当前数值为3,第三频率参数的当前数值为0。

步骤230,在目标数据属于留存冷数据集合的情况下,若目标数据的第一频率参数小于或等于第一阈值,且目标数据的第二频率参数大于或等于第二阈值,则将目标数据从留存冷数据集合转移至热数据集合中。

在一些实施例中,第一阈值是通过存储空间中所有数据的按照第一频率参数从小到大进行排序的前(Top)x%确定的,x为正整数,例如存储空间中,各个数据的第一频率参数按照从小到大的排列顺序排列为(1,2,2,3,4,5,5,5,7,8),x=20%,则第一阈值为2。在一些实施例中,第二阈值根据数值n的百分比确定,例如n=100,y=5%,则第二阈值的数值为100*5%=5。在一些实施例中,第一阈值和第二阈值可以是根据经验设定的固定数值。

在目标数据属于留存冷数据集合的情况下,说明缓存空间中命中了待访问的目标数据,因此,不需要对缓存空间中的数据进行移出处理,只需要确定是否在缓存空间中进行热数据集合和留存冷数据集合间的数据替换。

若目标数据的第一频率参数小于或等于第一阈值,且目标数据的第二频率参数大于或等于第二阈值,则说明目标数据在最近一段的访问过程中访问频率较高,需要将目标数据转移至热数据集合中存储;若目标数据的第一频率参数大于或等于第一阈值,或目标数据的第二频率参数小于或等于第二阈值,则说明目标数据不满足存储在热数据集合中的条件,不需要将目标数据转移至热数据集合中存储,也即,该目标数据仍然在留存冷数据库集合中存储。

综上所述,通过确定存储空间中待访问的目标数据,更新目标数据的第一频率参数和第二频率参数,将第一频率参数和第二频率参数分别满足第一阈值个第二阈值的目标数据转移至热数据集合中存储,实现了随着数据访问过程的进行,及时更新热数据集合的目的,另外,通过第一阈值和第二阈值同时对目标数据的频率参数进行限定,提高了将目标数据移入热数据集合的门限,保证了热数据集合中存储的数据是在最近一段访问过程中访问最频繁的数据,并减少了留存冷数据集合和热数据集合间数据置换的次数。

下面将通过以下两个实施例对目标数据从留存冷数据集合移入热数据集合的过程进行介绍。

在一些实施例中,将目标数据从留存冷数据集合转移至热数据集合中,包括:确定热数据集合中各个热数据的第一频率参数,热数据的第一频率参数用于表示在热数据最近两次访问间隔内被访问的不重复数据的个数;从热数据集合中,选择第一频率参数符合第一条件的热数据,作为热数据;将目标数据从留存冷数据集合中移除,并添加至热数据集合中;以及,将目标热数据从热数据集合中移除,并添加至留存冷数据集合中。

某个热数据的第一频率参数,用于表示在该热数据最近两次访问间隔内被访问的不重复数据的个数。在待访问的目标数据在留存冷数据集合的情况下,热数据集合中各个热数据对应的第一频率参数不变。

在一些实施例中,选择第一频率参数符合第一条件的热数据,作为目标热数据,包括:在热数据集合中选择第一频率参数最大的数据,将该热数据最为目标热数据。在一些实施例中,通过对热数据集合中各个热数据的第一频率参数进行比较,选择第一频率参数最大的热数据,将其作为目标热数据。

通过此方法可以确保热数据集合中至少存在一个满足第一条件的热数据,作为目标热数据。

在一些实施例中,选择第一频率参数符合第一条件的热数据,作为目标热数据,包括:在热数据集合使用数据栈存储热数据的情况下,将热数据集合的数据栈底端存储的a个热数据,a为正整数,作为候选目标热数据,在候选目标热数据中任选一个作为目标热数据,可选地,将热数据集合最低端存储的热数据作为目标热数据。热数据集合的数据栈将写入热数据集合的热数据从栈顶写入数据栈内,因此,热数据集合的数据栈的底端存储的热数据的第一频率参数较大。

通过此方法可以较快地找到满足第一条件的热数据,降低目标数据的访问时延。

在一些实施例中,选择第一频率参数符合第一条件的热数据,作为目标热数据,包括:将目标数据的第一频率参数和热数据集合中的任意一个热数据的第一频率参数进行比较,将第一个第一频率参数小于或等于目标数据第一频率参数的热数据作为目标热数据;可选地,在热数据集合按照第一频率参数的大小顺序存储热数据的情况下,通过二分法确定第一频率参数大于或等于目标数据第一频率参数的热数据,将该热数据作为目标热数据。

通过此方法可以维护热数据集合中存储被访问频率最高的数据的状态。

在一些实施例中,缓存空间中的热数据集合和留存冷数据集合都采用数据栈的方式存储数据,并且热数据集合的数据栈的底部存储的热数据的第一频率参数最大,在进行将目标数据从留存冷数据集合中移除,并添加至热数据集合中,以及,将目标热数据从热数据集合中移除,并添加至留存冷数据集合中的操作时,需要将目标数据移入热数据集合的数据栈的顶端,将目标热数据从热数据集合的数据栈的底端移出,并将目标热数据移入留存冷数据集合的数据栈的顶端,完成将目标数据从留存冷数据集合转移至热数据集合的过程。

在一些实施例中,将目标数据从留存冷数据集合转移至热数据集合中,包括:确定热数据集合中各个热数据的第二频率参数,热数据的第二频率参数用于表示在最近n次访问中热数据的被访问次数;从热数据集合中,选择第二频率参数符合第二条件的热数据,作为目标热数据;将目标数据从留存冷数据集合中移除,并添加至热数据集合中;以及,将目标热数据从热数据集合中移除,并添加至留存冷数据集合中。

某个热数据的第二频率参数越大,表示该热数据在最近n次访问中被访问的次数越多,即该热数据在最近一段数据访问过程中出现的频率较大;反之,某个热数据的第二频率参数越小,表示该热数据在最近n次访问中被访问的次数越少,即该热数据在最近一段数据访问过程中出现的频率较小。

在一些实施例中,选择第二频率参数符合第二条件的热数据,作为目标热数据,包括:在热数据集合中选择第二频率参数最小的数据,将该热数据最为目标热数据。

在一些实施例中,选择第二频率参数符合第一条件的热数据,作为目标热数据,包括:将目标数据的第二频率参数和热数据集合中的任意一个热数据的第二频率参数进行比较,将通过比较得到的第一个第二频率参数小于或等于目标数据第二频率参数的热数据作为目标热数据;可选地,在热数据集合按照第二频率参数的大小顺序存储热数据的情况下,通过二分法确定第二频率参数小于或等于目标数据第二频率参数的热数据,将该热数据作为目标热数据。

在一些实施例中,在热数据集合中的某个热数据是在当前目标数据访问前的第n个被访问的目标数据的情况下,将该热数据的第三频率参数减1。例如,n=6,当前目标数据为数据7,数据2为热数据,在当前目标数据成为待访问数据前,按照时间先后顺序访问的目标数据为(2,2,1,5,2,4),数据2对应的第二频率参数的数值为3,在目标数据7成为待访问数据时,按照时间先后顺序访问的n(n=6)个目标数据变为(2,1,5,2,4,7),此时,数据2对应的第二频率参数的数值变为2。

在一些实施例中,在确定存储空间中的待访问数据之后,需要对热数据集合中的各个热数据的第三频率参数分别进行更新,热数据的第三频率参数用于表征热数据最近一次访问后,被访问的不重复数据的个数,可选地,第三频率参数可以称为Recency。在更新热数据的第三频率参数时,需要对热数据的第三频率参数的当前数值加1。

在数据统计分析过程中,存在一种情况,若某个数据最近n次访问过程中访问频率较大,则该数据接下来被访问的概率增大。因此,通过从热数据集合中移出第二频率参数最小的目标热数据,能够保持热数据集合中的存储的热数据为最近n次访问过程中,访问频率最大的数据,能够增加热数据集合对目标数据的命中率。

在另一些实施例中,在目标数据处于热数据集合的情况下,更新目标数据的第一频率参数、第二频率参数和第三频率参数,更新方法请参考上一个实施例中目标数据的第一频率参数、第二频率参数和的第三频率参数更新方法,在此不进行赘述。在此情况下,继续将目标数据存储在热数据集合中,可选地,在热数据集合通过数据栈结构存储热数据的情况下,将目标数据转移至热数据集合的数据栈顶端。

在一些实施例中,在确定访问的目标数据之后,需要对存储空间中所有数据的第一频率参数、第二频率参数和第三频率参数进行更新,更新方法请参考上述热数据第一频率参数、第二频率参数和第三频率参数的更新方法。

通过对目标数据的第一频率参数和第二频率参数进行更新,及时调整目标数据在缓存空间的存储位置,有利于提高缓存空间的数据命中率。

下面通过两个实施例对在目标数据不在缓存空间的情况下的数据处理方法进行介绍说明。

在一些实施例中,确定存储空间中待访问的目标数据之后,还包括:在目标数据属于非缓存空间的情况下,从留存冷数据集合中包含的留存数据中,确定需要移出的目标留存数据;将目标数据从非缓存空间中移除,并添加至留存冷数据集合中;以及,将目标留存数据从留存数据集合中移除,并添加至非缓存空间中。

非缓存空间是指存储空间中除缓存空间外其他能够存储数据的空间。缓存空间中的数据读取速度高于非缓存空间中数据的读取速度。在一些实时例中,在目标数据属于非缓存空间的情况下,出于使得目标数据能够被访问或者降低目标数据访问时延的目的,需要将目标数据从非缓存空间移入缓存空间。在一些实施例中,在目标数据处于非缓存空间的情况下,需要将缓存空间中的某个数据进行移出缓存空间,将该数据存储在非缓存空间中,将目标数据写入缓存空间中。在另一些实施例中,在某个目标数据第一次被访问的情况下,即目标数据未储存在存储空间中的任何位置,首先需要创建并初始化该目标数据第一频率参数、第二频率参数和第三频率参数,将该目标数据的第一频率参数的当前数值和第二频率参数的当前数值赋值为-1或m(m接近无穷大或者m超过存储空间的容量),将该目标数据的第三频率参数的数值赋值为0,然后将缓存空间中的某个数据进行移出缓存空间,将该数据存储在非缓存空间中,将目标数据写入缓存空间中。

确定存储空间中待访问的目标数据之后,需要更新目标数据的第一频率参数、第二频率参数和第三频率参数,关于目标数据的第一频率参数、第二频率参数和第三频率参数的更新方法,请参考上述实施例,在此不进行赘述。

在目标数据属于非缓存空间的情况下,从留存冷数据集合中包含的留存数据中,确定需要移出的目标留存数据,也即,在对缓存空间中存储的数据进行淘汰时,有选择性地首先淘汰留存冷数据集合中的数据,而不是首先淘汰热数据集合中的数据。这是因为经过上述步骤220,步骤230不断对热数据集合维护和更新,使得热数据集合中存储的热数据是最近一段数据访问过程中被访问频率最高的一组数据,在数据周期性出现或者数据统计分析过程中,热数据集合中的热数据在再次被访问的概率更高。首先从留存冷数据集合中选择需要移出的目标留存数据,而不改变热数据集合中的数据,有助于提高缓存空间对待访问数据的命中率,减少将缓存空间中存储的数据移出缓存空间的次数。

在一些实施例中,从留存冷数据集合中包含的留存数据中,确定需要移出的目标留存数据,包括:确定留存冷数据集合中各个留存冷数据的第二频率参数,留存冷数据的第二频率参数用于表示在最近n次访问中留存冷数据的被访问次数;从留存冷数据集合中,选择第二频率参数符合第三条件的留存数据,作为目标留存数据。

在一些实施例中,选择第二频率参数符合第三条件的留存数据,作为目标留存数据,包括:从留存冷数据集合中,选择第二频率参数最小的目标留存数据。

确定留存冷数据集合中各个留存冷数据的第二频率参数的方法请参考上述确定热数据集合中各个热数据的第二频率参数的方法,在此不进行赘述。

在一些实施例中,从留存冷数据集合中包含的留存数据中,确定需要移出的目标留存数据,包括:确定留存冷数据集合中各个留存冷数据的第三频率参数,留存冷数据的第三频率参数用于表示留存冷数据最近一次访问后,被访问的不重复数据的个数;从留存冷数据集合中,选择第三频率参数符合第四条件的留存数据,作为目标留存数据。

在一些实施例中,从留存冷数据集合中,选择第三频率参数符合第四条件的留存数据,作为目标留存数据,包括:从留存冷数据集合中,选择第三频率参数小于目标数据的第一频率参数的目标留存数据。

在一些实施例中,确定留存冷数据集合中各个留存冷数据的第三频率参数,包括:留存冷数据集合中各个留存冷数据的第三频率参数的当前数值分别加1。

因为留存冷数据的第三频率参数用于表示留存冷数据最近一次访问后,被访问的不重复数据的个数,所以在确定存储空间中当前待访问的目标数据之后,相当于留存冷数据最近一次访问后,访问的不重复数据的个数增加了一个。在一些实施例中,若在某个留存冷数据最近一次被访问后,当前目标数据第一次被访问,则需要将该留存冷数据集合中的第三频率参数的当前数值加1。在另一些实施例中,若在某个留存冷数据最近一次被访问后,当前目标数据不是第一次被访问,则该留存冷数据的第三频率参数不变。

在一些实施例中,确定存储空间中待访问的目标数据之后,首先确定留存冷数据集合中各个留存冷数据的第三频率参数,并将各个留存冷数据的第三频率参数和目标数据的第一频率参数进行比较,确定出一个第三频率参数小于或等于目标数据的第一频率参数的留存冷数据作为目标留存数据;对目标留存数据和目标数据的存储位置进行置换,可选地,将目标数据的写入目标留存数据的存储位置,将目标留存数据写入目标数据的存储位置;可选地,留存冷数据集合采用数据栈的结构,非缓存空间采用链表式结构,将目标数据移入留存冷数据集合的数据栈的顶端,将目标留存数据从数据栈的底端移出,并将目标留存数据存储在非缓存空间的链表中。

上述将目标数据从非缓存空间中移除,并添加至留存冷数据集合中;将目标留存数据从留存数据集合中移除,并添加至非缓存空间中的过程在实际操作过程中可以同时执行,也可以先后执行,在此不进行限定。

在一些实施例中,缓存空间是通过流式数据统计系统创建并初始化的,缓存空间用于读取和解析消息系统中的日志数据;对缓存空间中的目标数据进行访问是通过哈希键值进行的,哈希键值用于提高确定目标数据存储位置的速度;缓存空间中同时存储了目标数据和其对应的哈希键值。

在一些实施例中,在将目标数据从留存冷数据集合转移至热数据集合中之后,还包括:

使用流式数据统计系统中的聚合算子在缓存空间中读取目标数据;对目标数据进行统计分析,得到统计分析结果;将统计分析结果写入数据库中,并通过报表的形式展现。

在一些实施例中,上述数据处理方法可以应用在流式框架下进行的数据分析过程中,在进行数据处理前,使用Flink读取并解析Kafaka日志数据,在Flink中创建并初始化大小固定的缓存空间,通过Flink解析Kafaka日志中的每条数据,每一条数据拥有唯一一个键值,使用MD5(Message Digest Algorithm 5,消息摘要算法第五版)函数将数据对应的键值转换成哈希键值,并将数据对应的哈希值存入缓存中,哈希键值用于在访问目标数据时提高找到目标数据的速度,降低速度延时。在缓存空间中存储的数据超过缓存减容量的情况下,使用上述数据处理方法,对缓存空间中的数据进行转移,将目标数据存储在缓存空间中,并通过目标数据的哈希键值访问目标数据。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图7,其示出了本申请一个实施例提供的数据处理装置的框图。该装置具有实现上述数据处理方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是计算机设备,也可以设置在计算机设备中。该装置700可以包括:第一确定模块710、参数更新模块720和第一转移模块730。

第一确定模块710,用于确定存储空间中待访问的目标数据,所述存储空间包括缓存空间和非缓存空间,所述缓存空间包括热数据集合和留存冷数据集合。

参数更新模块720,用于更新所述目标数据的第一频率参数和所述目标数据的第二频率参数,所述目标数据的第一频率参数用于表示在所述目标数据最近两次访问间隔内被访问的不重复数据的个数,所述目标数据的第二频率参数用于表示在最近n次访问中所述目标数据的被访问次数,n为正整数。

第一转移模块730,用于在所述目标数据属于所述留存冷数据集合的情况下,若所述目标数据的第一频率参数小于或等于第一阈值,且所述目标数据的第二频率参数大于或等于第二阈值,则将所述目标数据从所述留存冷数据集合转移至所述热数据集合中。

在一些实施例中,所述第一转移模块730,用于:

确定所述热数据集合中各个热数据的第一频率参数,所述热数据的第一频率参数用于表示在所述热数据最近两次访问间隔内被访问的不重复数据的个数;从所述热数据集合中,选择所述第一频率参数符合第一条件的热数据,作为目标热数据;将所述目标数据从所述留存冷数据集合中移除,并添加至所述热数据集合中;以及,将所述目标热数据从所述热数据集合中移除,并添加至所述留存冷数据集合中。

在一些实施例中,所述第一转移模块730,用于:

确定所述热数据集合中各个热数据的第二频率参数,所述热数据的第二频率参数用于表示在最近n次访问中所述热数据的被访问次数;从所述热数据集合中,选择所述第二频率参数符合第二条件的热数据,作为目标热数据;将所述目标数据从所述留存冷数据集合中移除,并添加至所述热数据集合中;以及,将所述目标热数据从所述热数据集合中移除,并添加至所述留存冷数据集合中。

在一些实施例中,所述参数更新模块720,用于:

将所述目标数据的第三频率参数赋值给所述目标数据的第一频率参数,所述目标数据的第三频率参数用于表示所述目标数据最近一次访问后,被访问的不重复数据的个数;将所述目标数据的第二频率参数的当前数值加1,得到更新后的所述目标数据的第二频率参数。

在一些实施例中,如图8所示,所述装置700还包括:第二确定模块740和第二转移模块750。

第二确定模块740,用于在所述目标数据属于所述非缓存空间的情况下,从所述留存冷数据集合中包含的留存数据中,确定需要移出的目标留存数据;

第二转移模块750,用于将所述目标数据从所述非缓存空间中移除,并添加至所述留存冷数据集合中;以及,将所述目标留存数据从所述留存数据集合中移除,并添加至所述非缓存空间中。

在一些实施例中,所述第二转移模块750,用于:

确定所述留存冷数据集合中各个留存冷数据的第二频率参数,所述留存冷数据的第二频率参数用于表示在最近n次访问中所述留存冷数据的被访问次数;从所述留存冷数据集合中,选择所述第二频率参数符合第三条件的留存数据,作为所述目标留存数据。

在一些实施例中,所述第二转移模块750,用于:

确定所述留存冷数据集合中各个留存冷数据的第三频率参数,所述留存冷数据的第三频率参数用于表示所述留存冷数据最近一次访问后,被访问的不重复数据的个数;从所述留存冷数据集合中,选择所述第三频率参数符合第四条件的留存数据,小于所述目标数据的第一频率参数的作为所述目标留存数据。

在一些实施例中,如图8所示,所述装置700还包括,统计记录模块760,用于:

使用流式数据统计系统中的聚合算子在缓存空间中读取所述目标数据,对所述目标数据进行统计分析;将所述统计分析获得的最终结果写入数据库中,并通过报表的形式展现。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参考图9,其示出了本申请一个实施例提供的计算机设备的结构示意图。该计算机设备可以是任何具备数据计算、处理和存储功能的电子设备,如手机、平板电脑、PC(Personal Computer,个人计算机)或服务器等。该计算机设备用于实施上述实施例中提供的数据处理方法。具体来讲:

该计算机设备900包括处理单元(如CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)和FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)等)901、包括RAM(Random-Access Memory,随机存储器)902和ROM(Read-Only Memory,只读存储器)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。该计算机设备900还包括帮助服务器内的各个器件之间传输信息的基本输入/输出系统(Input Output System,I/O系统)909,和用于存储操作系统913、应用程序914和其他程序模块915的大容量存储设备907。

该基本输入/输出系统909包括有用于显示信息的显示器909和用于用户输入信息的诸如鼠标、键盘之类的输入设备909。其中,该显示器909和输入设备909都通过连接到系统总线905的输入输出控制器910连接到中央处理单元901。该基本输入/输出系统909还可以包括输入输出控制器910以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器910还提供输出到显示屏、打印机或其他类型的输出设备。

该大容量存储设备907通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。该大容量存储设备907及其相关联的计算机可读介质为计算机设备900提供非易失性存储。也就是说,该大容量存储设备907可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。

不失一般性,该计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦写可编程只读存储器)、闪存或其他固态存储其技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知该计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备907可以统称为存储器。

根据本申请实施例,该计算机设备900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备900可以通过连接在该系统总线905上的网络接口单元911连接到网络912,或者说,也可以使用网络接口单元911来连接到其他类型的网络或远程计算机系统(未示出)。

所述存储器还包括至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述数据处理方法。

本申请实施例还提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述数据处理方法。

本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中,处理器从计算机可读存储介质读取并执行计算机指令,以实现上述数据处理方法。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同切换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 数据仓库内数据处理方法、装置、计算机设备和存储介质
  • 一种数据处理方法、数据处理装置、计算机设备及可读存储介质
  • 财报数据处理方法、装置、计算机设备和存储介质
  • 数据访问请求的处理方法、装置和设备及存储介质
  • 一种数据处理方法、装置、设备及存储介质
  • 数据加密处理方法、数据解密处理方法、装置、电子设备及可读存储介质
  • 存储设备数据位置的处理方法、装置、设备及存储介质
技术分类

06120115760081