CN110674086A - 数据合并方法、装置、电子设备及存储介质 - Google Patents
数据合并方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110674086A CN110674086A CN201910936874.0A CN201910936874A CN110674086A CN 110674086 A CN110674086 A CN 110674086A CN 201910936874 A CN201910936874 A CN 201910936874A CN 110674086 A CN110674086 A CN 110674086A
- Authority
- CN
- China
- Prior art keywords
- data blocks
- data
- access frequency
- data block
- preset
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- 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
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据合并方法、装置、电子设备及存储介质。该方法包括:获取数据文件包含的多个数据块,并分别获取多个数据块中的每个数据块的访问频率;基于每个数据块的访问频率从该多个数据块中确定多个目标数据块,将该多个目标数据块进行合并。本申请通过每个数据块的访问频率选取符合条件的数据块进行合并,从而降低系统的资源消耗,提升系统性能。
Description
技术领域
本申请涉及数据库技术领域,更具体地,涉及一种数据合并方法、装置、电子设备及存储介质。
背景技术
近年来,写密集型应用程序越来越普遍。写密集型应用程序的特点是中央处理器消耗很少,任务的大部分时间在等待写操作完成,故写密集型应用程序的工作负载主要是写操作开销,如何有效地处理这种工作负载是数据库系统领域深入研究方向之一。为了处理这种工作负载,日志即数据的架构应运而生。然而,通过日志即数据的架构虽能够减少写操作开销,但随着而来的一个问题是读操作变得困难。
发明内容
本申请实施例提出了一种数据合并方法、装置、电子设备及存储介质,以解决合并操作资源消耗大的问题。
第一方面,本申请实施例提供了一种数据合并方法,该方法包括:获取数据文件包含的多个数据块,并分别获取多个数据块中的每个数据块的访问频率;基于每个数据块的访问频率从多个数据块中确定多个目标数据块;将多个目标数据块进行合并。
第二方面,本申请实施例提供了一种数据合并装置,该装置包括:频率获取模块,用于获取数据文件包含的多个数据块,并分别获取多个数据块中的每个数据块的访问频率;数据块确定模块,用于基于每个数据块的访问频率从多个数据块中确定多个目标数据块;数据块合并模块,用于将多个目标数据块进行合并。
第三方面,本申请实施例提供了一种电子设备,包括:存储器;一个或多个处理器,与存储器耦接;一个或多个程序,其中,一个或多个程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于执行上述方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,该计算机可读取存储介质中存储有程序代码,该程序代码可被处理器调用执行如上述第一方面所述的方法。
本申请实施例提供了一种数据合并方法、装置、电子设备及存储介质。获取数据文件包含的多个数据块,并分别获取多个数据块中的每个数据块的访问频率;基于每个数据块的访问频率从该多个数据块中确定多个目标数据块,将该多个目标数据块进行合并。通过每个数据块的访问频率选取符合条件的数据块进行合并,从而降低系统的资源消耗,提升系统性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了一种适用于本申请实施例的应用环境示意图;
图2示出了本申请实施例提供的一数据合并方法的流程示意图;
图3示出了本申请实施例提供的一数据合并的示意图;
图4示出了本申请实施例提供的另一数据合并方法的流程示意图;
图5示出了本申请实施例提供的另一数据合并的示意图;
图6示出了本申请的图4所示的实施例提供的数据合并的方法的步骤S230的流程示意图;
图7示出了本申请实施例提供的又一数据合并的示意图;
图8示出了本申请实施例提供的再一数据合并的示意图;
图9示出了本申请实施例提供的又一数据合并方法的流程示意图;
图10示出了本申请实施例提供的数据合并装置的结构框图;
图11示出了本申请实施例的用于执行根据本申请实施例的数据合并方法的电子设备的结构框图;
图12示出了本申请实施例的用于保存或者携带实现根据本申请实施例的数据合并方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
近年来,写密集型应用程序越来越普遍。写密集型应用程序的特点是中央处理器消耗很少,任务的大部分时间在等待写操作完成,故写密集型应用程序的工作负载主要是写操作开销,如何有效地处理这种工作负载是数据库系统领域深入研究方向之一。为了处理这种工作负载,日志即数据的架构应运而生。然而,通过日志即数据的架构虽能够减少写操作开销,但随着而来的一个问题是读操作变得困难,特别是范围扫描变得困难。
目前,可采用合并的方式解决范围扫描的问题,通过合并数据块重新生成有序日志文件,但是,合并操作相当消耗资源,同时不能进行其他并发操作,由于合并操作需要对整个数据文件进行排序,因此会影响系统的正常操作,可能造成系统不可用。
为了解决上述问题,发明人提出了本申请实施例中的数据合并方法、装置、电子设备及存储介质,通过每个数据块的访问频率选取符合条件的数据块进行合并,从而降低系统的资源消耗,提升系统性能。
为便于更好的理解本申请实施例提供的数据合并方法、装置、电子设备及存储介质,下面先对适用于本申请实施例的应用环境进行描述。
请参阅图1,图1示出了一种适用于本申请实施例的应用环境示意图。本申请实施例提供的数据合并方法可以应用于如图1所示的数据库系统10。数据库系统10包括内存模块110、合并日志模块120、索引模块130、数据块使用频率追踪模块140以及数据文件150,数据文件150中包括多个数据块160。
其中,内存模块110可以缓存新到来的查询请求。如果是写入操作时,那么数据首先可以在内存模块110聚集,然后批量写入数据文件150。索引模块130可以用于维护数据文件上的索引。合并日志模块120可以记录合并过程中的步骤,同时,正常操作可以无需记录日志。数据库使用频率追踪模块140可以记录数据块160的被访问的频率。
上述的应用环境仅为方便理解所作的示例,可以理解的是,本申请实施例不仅局限于上述应用环境。
下面将通过具体实施例对本申请实施例提供的数据合并方法、装置、电子设备及存储介质进行详细说明。
请参阅图2,图2示出了本申请实施例提供的一数据合并方法的流程示意图。在具体的实施例中,数据合并方法可应用于如图10所示的数据合并装置200以及如图11所示的电子设备300。下面将针对图2所示的流程进行详细的阐述。上述的数据合并方法具体地可以包括以下步骤:
步骤S110:获取数据文件包含的多个数据块,并分别获取多个数据块中的每个数据块的访问频率。
数据库系统中的数据文件,都被切分成多个数据块,每个数据块都有连续的一段数据文件内容,数据块是数据存储的基本单位。读数据时,可以获取该数据块的块信息例如数据块所在地址或数据节点、数据块的大小、数据块所属的文件等等信息,并从相应的数据节点读取数据块,从而获取该数据文件包含的多个数据块。
在一些实施方式中,还可以分别获取多个数据块中的每个数据块的访问频率。其中,可以通过记录预设时间段内(例如1秒钟内)每个数据块被访问的次数,从而得到该预设时间段内每个数据块的访问频率,进一步地,也可以通过在每个页面维护计数器,每次读写都将计数器增加1,这样子可以追踪数据块的访问频率。可以理解的是,每个数据块的访问频率所对应的时间段可以是一样的,例如,获取访问频率的时间段可以是17:00:00-17:00:01之间,则可以分别获取该多个数据块中的每个数据块在17:00:00-17:00:01之间的访问频率。
步骤S120:基于每个数据块的访问频率从多个数据块中确定多个目标数据块。
在一些实施方式中,可以基于每个数据块的访问频率从多个数据块中确定多个目标数据块。具体地,作为一种实施方式,可以将访问频率相同的多个数据块作为多个目标数据块,其中,目标数据块可以指能够进行合并的数据块,即候选合并数据块。例如,如下述表1所示的多个数据块及其访问频率:
表1
数据块 | a | b | c | d | e | f | g | h |
访问频率 | 100 | 20 | 5 | 50 | 100 | 10 | 120 | 25 |
其中,数据块a与数据块e的访问频率相同,则可以将数据块a与数据块e作为目标数据块。作为另一种实施方式,也可以将访问频率之间的差值在设定的差值范围内的数据块作为多个目标数据块。例如,请再次参阅表1,若设定的差值为5,则可以从表1中得到数据块c与数据块f的访问频率的差值在5之内,则可以将数据块c与数据块f作为目标数据块,数据块b与数据块h的访问频率的差值也在5之内,则可以将数据块b与数据块h也作为目标数据块,同样地,数据块a与数据块e的访问频率的差值也在5之内,则可以将数据块a与数据块e也作为目标数据块。作为一种实施方式,也可以将访问频率大于预设访问频率的多个数据块作为多个目标数据块,例如,上述表1所示的多个数据块及其访问频率,若预设访问频率为80,可以从表1中得到数据块a、数据块e以及数据块g的访问频率大于80,则可以将数据块a、数据块e以及数据块g确定目标数据块。上述目标数据块的确定方式仅为示例,在此不做限定。
步骤S130:将多个目标数据块进行合并。
在一些实施方式中,可以将访问频率满足一定条件的多个目标数据块进行合并,进而可以得到新的数据块。其中,将多个目标数据块进行合并可以是将多个目标数据块头尾相连,合并生成新数据块。例如,如图3所示的数据合并的示意图,数据块a与数据块e为目标数据块,则可以将数据块a的尾部与数据块e的头部相连,进而生成新数据块。作为另一种实施方式,将多个目标数据块进行合并时,可以先查询该多个数据块中是否存在重复的数据,当存在重复的数据时,可以将重复的数据删除至仅保留一个数据或一组数据,再对目标数据块进行合并。
上述实施例提供的数据合并方法,获取数据文件包含的多个数据块,并分别获取多个数据块中的每个数据块的访问频率;基于每个数据块的访问频率从该多个数据块中确定多个目标数据块,将该多个目标数据块进行合并。通过每个数据块的访问频率选取符合条件的数据块进行合并,从而降低系统的资源消耗,提升系统性能。
请参阅图4,图4示出了本申请实施例提供的另一数据合并方法的流程示意图,该方法包括:
步骤S210:获取数据文件包含的多个数据块,并分别获取多个数据块中的每个数据块的访问频率。
其中,步骤S210的具体描述请参阅步骤S110,在此不再赘述。
步骤S220:分别判断每个数据块的访问频率是否大于预设访问频率,获得判断结果。
数据块的访问频率可以显示出数据块是热点数据块还是非热点数据块,可以通过设定预设访问频率,访问频率在其之上的数据块即为热点数据块,于是,可以分别判断每个数据块的访问频率是否大于预设访问频率,进而获得判断结果。
在一些实施方式中,数据块在不同时段内的访问频率可能是不同的,因此可以根据获取的数据块的访问频率的时段设置不同的预设访问频率。例如,用户在19点-23点之间使用各种电子产品较为频繁,此时数据块的访问频率较高,故可以设置预设访问频率为100,即当获取的每个数据块的访问频率对应的时段在19点-23点之间时,对应的预设访问频率为100;进一步地,用户可能在0点-6点之间较少使用各种电子产品,此时数据块的访问频率较低,故可以设置预设访问频率为80,即当获取的每个数据块的访问频率对应的时段在0点-6点之间时,对应的预设访问频率为80。
在一些实施方式中,可以基于预设访问规则、数据文件的总访问频率以及多个数据块的数量,计算得到预设访问频率。具体地,可以通过获取一定时间内数据文件被访问的次数得到该数据文件的总访问频率,以及获取多个数据块的数量,其中,预设访问规则可以指数据文件中数据块被访问的分布情况。进一步地,可以基于公式fi=(PA×ft)/(PB×n)计算得到预设访问频率,其中,fi为预设访问频率,ft为总访问频率,n为多个数据块的数量,PA、PB则表示预设访问规则,即预设PA%的访问集中在PB%的数据块,比如8/2原则,即表示80%的访问集中在20%的数据块。例如,总访问频率ft为200,多个数据块的数量n为8个,预设访问规则为8/2原则,则可以通过上述公式计算得到预设访问频率fi为100。
步骤S230:基于判断结果从多个数据块中确定多个目标数据块,其中,多个目标数据块的访问频率大于预设访问频率。
通过上述判断每个数据块的访问频率是否大于预设访问频率,可以确定每个数据块是否为热点数据块。在一些实施方式中,热点数据块可以理解为访问频率较高或访问次数较多的数据块,将热点数据块作为目标数据块进行合并,可以减少热点数据块被多次访问时的消耗的资源。于是,可以将访问频率大于预设访问频率的数据块确定为目标数据块。例如,如上述表1所示的多个数据块以及多个数据块的访问频率,预设访问频率若为90,则可以从表中得到数据块a、数据块e以及数据块g的访问频率大于90,故可以确定数据块a、数据块e以及数据块g为目标数据块,如图5所示,可以将数据块a、数据块e以及数据块g合并得到一个新数据块。
请参阅图6,图6示出了本申请的图4所示的实施例提供的数据合并的方法的步骤S230的流程示意图。下面将针对图6所示的流程进行详细的阐述,该方法具体可以包括以下步骤:
步骤S231:基于判断结果从多个数据块中获取多个第一数据块,其中,多个第一数据块的访问频率大于预设访问频率
在一些实施方式中,可以将访问频率大于预设访问频率的数据块确定为第一数据块,即可以基于判断结果从多个数据块中获取多个第一数据块。例如,如上述表1所示的多个数据块以及多个数据块的访问频率,预设访问频率若为90,则可以从表中得到数据块a、数据块e以及数据块g的访问频率大于90,故可以确定数据块a、数据块e以及数据块g为第一数据块。
步骤S232:计算多个第一数据块中的每两个第一数据块的访问频率的差值,获得第一计算结果。
在一些实施方式中,获取多个第一数据块后,可以计算多个第一数据块中的每两个第一数据块的访问频率的差值,得到第一计算结果。例如,如上述表1所示的多个数据块以及多个数据块的访问频率,预设访问频率若为90,则可以从表中得到数据块a、数据块e以及数据块g的访问频率大于90,故可以确定数据块a、数据块e以及数据块g为第一数据块。计算数据块a与数据块e的访问频率的差值为0,数据块e与数据块g的访问频率的差值为20,数据块a与数据块g的访问频率的差值为20。
步骤S233:基于第一计算结果从多个第一数据块中确定多个目标数据块,其中,多个目标数据块中的每两个目标数据块的访问频率的差值小于预设差值。
在一些实施方式中,可以基于第一计算结果从多个第一数据块中确定多个目标数据块,其中,多个目标数据块中的每两个目标数据块的访问频率的差值小于预设差值,预设差值可以由系统设定的,也可以是由管理员设定的,在此不做限定。
具体地,可以分别将每两个第一数据块的访问频率的差值与预设差值进行比较,当有两个第一数据块的访问频率的差值小于预设差值时,则可以将该两个第一数据块确定为目标数据块。例如,如上述表1所示的多个数据块以及多个数据块的访问频率,预设访问频率若为90,则可以从表中得到数据块a、数据块e以及数据块g的访问频率大于90,故可以确定数据块a、数据块e以及数据块g为第一数据块。计算数据块a与数据块e的访问频率的差值为0,数据块e与数据块g的访问频率的差值为20,数据块a与数据块g的访问频率的差值为20。其中,预设差值为25时,可以看出数据块a与数据块e的访问频率的差值,数据块e与数据块g的访问频率的差值,数据块a与数据块g的访问频率的差值均小于预设差值,故可以将数据块a、数据块e以及数据块g确定为目标数据块,如图7所示,可以将数据块a、数据块e以及数据块g合并得到一个新数据块。
在一些实施方式中,可以分别将每个数据块的访问频率与预设访问频率进行比较,判断每个数据块的访问频率是否大于预设访问频率,并获得判断结果,同样的,可以基于判断结果从多个数据块中获取多个第二数据块,其中,多个第二数据块中的部分第二数据块的访问频率大于预设访问频率,具体地,当数据块的访问频率大于预设访问频率时,可以将该数据块作为第二数据块。作为一种实施方式,其中,可能存在一种情况为某一数据块j的访问频率虽然小于预设访问频率,但其访问频率接近预设访问频率(例如数据块j的访问频率为79,预设访问频率为81),也可以将该数据块j作为一个第二数据块,即当数据块的访问频率小于预设访问频率时,可以判断该数据块的访问频率是否接近预设访问频率(例如可以判断该数据块的访问频率与预设访问频率的差值是否小于设定的差值),当该数据块的访问频率接近预设访问频率时,可以将该数据块作为一个第二数据块。
进一步地,基于上述判断结果获取到多个第二数据块后,可以计算多个第二数据块中的每两个第二数据块的访问频率的差值,获得第二计算结果。并基于第二计算结果从多个第二数据块中确定多个目标数据块,其中,多个目标数据块中的每两个目标数据块的访问频率的差值小于预设差值,且多个目标数据块中包括访问频率大于预设访问频率的第二数据块。例如,如表2所示的多个数据块以及多个数据块的访问频率:
表2
数据块 | a1 | b1 | c1 | d1 | e1 | f1 | g1 | h1 |
访问频率 | 90 | 20 | 5 | 79 | 10 | 82 | 60 | 25 |
其中,若预设访问频率为81,可以将访问频率大于81的数据块a1、数据块f1确定为两个第二数据块,还可以将访问频率接近81的数据块d1、数据块g1也确定为第二数据块,计算数据块a1、数据块d1、数据块f1以及数据块g1中的每两个数据块的访问频率的差值,其中数据块a1与数据块d1的访问频率的差值为11,数据块a1与数据块f1的访问频率的差值为8,数据块a1与数据块g1的访问频率的差值为30,数据块d1与数据块f1的访问频率的差值为3,数据块d1与数据块g1的访问频率的差值为19,数据块f1与数据块g1的访问频率的差值为22。且预设差值为15,于是可以将数据块a1、数据块d1以及数据块f1确定为目标数据块,如图8所示,可以将数据块a1、数据块d1以及数据块f1合并得到一个新数据块。
步骤S240:将多个目标数据块进行合并。
其中,步骤S240的具体描述请参阅步骤S130,在此不再赘述。
上述实施例提供的数据合并方法,获取数据文件包含的多个数据块,并分别获取多个数据块中的每个数据块的访问频率;分别判断每个数据块的访问频率是否大于预设访问频率,获得判断结果;基于判断结果从多个数据块中确定多个目标数据块,其中,多个目标数据块的访问频率大于预设访问频率;将多个目标数据块进行合并。从而通过将访问频率大于预设访问频率的数据块进行合并,以此减少需要合并的数据集,进一步降低系统的资源消耗。
请参阅图9,图9示出了本申请实施例提供的又一数据合并方法的流程示意图,该方法包括:
步骤S310:获取数据文件包含的多个数据块,并分别获取多个数据块中的每个数据块的访问频率。
步骤S320:基于每个数据块的访问频率从多个数据块中确定多个目标数据块。
其中,步骤S310-步骤S320的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S330:判断多个目标数据块的每个键值对是否有效。
数据的基本单位是数据块,同时数据的存储格式为键值对(key-value),key是键对象,value是值对象;一个键值对就是一条数据记录;存储格式用以描述数据记录中的key和value的属性。可以将具有相同存储模式的键值对的集合组成逻辑上的数据表格,可以对数据表格中的数据进行排序。其中,每个键值对只会存储在一个数据块中并且是完整的。
在一些实施方式中,在确定多个目标数据块时,可以判断多个目标数据块的每个键值对是否有效,以此确定是否可以将该多个目标数据块进行合并。作为一种实施方式,可以通过查询key值是否存在判断该key值对应键值对是否有效。作为另一种实施方式,由于,一个键值对只会存储在一个数据块中并且是完整的,即在已经进行更新后,一个key值指向一个数据块,故可以通过查询key值是否指向一个数据块判断该key值对应的键值对是否有效。上述键值对是否有效的判断方法仅为示例,具体判断方法在此不做限定。
步骤S340:当每个键值对有效,且多个目标数据块对应的数据项为最新版本时,将多个目标数据块对应的数据项进行合并生成新的数据块,并将新的数据块写入数据文件。
在一些实施方式中,当该多个目标数据块的每个键值对有效,即key值存在或key值指向一个数据块,进一步地,可以判断该多个目标数据块对应的数据项是否为最新版本,作为一种实施方式,可以通过查询数据块的最后修改时间或写入时间检查该数据块对应的数据项是否为最新版本。作为另一种实施方式,可以通过查询日志中的记录确定该数据块对应的数据项是否为最新版本,判断数据项是否为最新版本的方式在此不做限定。其中,数据项可以指数据块的块信息,例如所在地址或数据节点、数据块的大小、数据块所属的文件等信息,数据项也可以指数据块中存储的数据。
在一些实施方式中,当每个键值对有效,且多个目标数据块对应的数据项为最新版本时,可以将多个目标数据块对应的数据项进行合并生成新的数据块,并将新的数据块写入数据文件。作为一种实施方式,数据项指数据块中存储的数据时,可以获取多个目标数据块对应的多个数据,查询该多个数据中是否存在重复的数据,若存在,可以将重复的数据删除至仅保留一个数据,再将经过重复数据删除操作后的多个数据进行合并,进而生成新的数据块,并将新的数据块写入数据文件。
作为一种实施方式,在对多个目标数据块对应的数据项进行合并之前,还可以对该多个目标数据块的key值进行比较,将多个目标数据块按照key值进行排序后,将多个目标数据块对应的数据项按照排序顺序进行合并,并生成新的数据块。
在一些实施方式中,当该多个目标数据块的每个键值对无效,即key值不存在或key值在更新后仍指向不同的数据块时,可以删除该key值,进而不对该key值对应的目标数据块进行合并操作。
步骤S350:将新的数据块对应的数据项插入队列,并插入数据项对应的索引。
在一些实施方式中,当多个目标数据块中的每个键值对有效,且多个目标数据块对应的数据项为最新版本时,可以将多个目标数据块对应的数据项进行合并生成新的数据块,并将新的数据块写入数据文件。同时,可以对新的数据块建立索引,具体地,可以将新的数据块对应的数据项插入队列,并插入数据项对应的索引。
上述实施例提供的数据合并方法,获取数据文件包含的多个数据块,并分别获取多个数据块中的每个数据块的访问频率;基于每个数据块的访问频率从多个数据块中确定多个目标数据块;判断多个目标数据块的每个键值对是否有效;当每个键值对有效,且多个目标数据块对应的数据项为最新版本时,将多个目标数据块对应的数据项进行合并生成新的数据块,并将新的数据块写入数据文件;将新的数据块对应的数据项插入队列,并插入数据项对应的索引。从而通过判断多个目标数据块的每个键值对是否有效,当每个键值对有效时,对目标数据块执行合并操作,进一步降低系统的资源消耗。
请参阅图10,图10示出了本申请实施例提供的数据合并装置200的结构框图。下面将针对图10所示的框图进行阐述,该数据合并装置200包括:频率获取模块210、数据块确定模块220以及数据块合并模块230,其中:
频率获取模块210,用于获取数据文件包含的多个数据块,并分别获取多个数据块中的每个数据块的访问频率。
数据块确定模块220,用于基于每个数据块的访问频率从多个数据块中确定多个目标数据块。
进一步地,数据块确定模块220还包括:第一判断子模块以及第一数据块确定子模块,其中:
第一判断子模块,用于分别判断每个数据块的访问频率是否大于预设访问频率,获得判断结果。
第一数据块确定子模块,用于基于判断结果从多个数据块中确定多个目标数据块,其中,多个目标数据块的访问频率大于预设访问频率。
进一步地,该第一数据块确定子模块还包括:数据块获取单元、差值计算单元以及数据块确定单元,其中:
数据块获取单元,用于基于判断结果从多个数据块中获取多个第一数据块,其中,多个第一数据块的访问频率大于预设访问频率。
差值计算单元,用于计算多个第一数据块中的每两个第一数据块的访问频率的差值,获得第一计算结果。
数据块确定单元,用于基于第一计算结果从多个第一数据块中确定多个目标数据块,其中,多个目标数据块中的每两个目标数据块的访问频率的差值小于预设差值。
进一步地,该数据块确定模块220还包括:第二判断子模块、数据块获取子模块、差值计算子模块以及第二数据块确定子模块,其中:
第二判断子模块,用于分别判断每个数据块的访问频率是否大于预设访问频率,获得判断结果。
数据块获取子模块,用于基于判断结果从多个数据块中获取多个第二数据块,其中,多个第二数据块中的部分第二数据块的访问频率大于预设访问频率。
差值计算子模块,用于计算多个第二数据块中的每两个第二数据块的访问频率的差值,获得第二计算结果。
第二数据块确定子模块,用于基于第二计算结果从多个第二数据块中确定多个目标数据块,其中,多个目标数据块中的每两个目标数据块的访问频率的差值小于预设差值,且多个目标数据块中包括访问频率大于预设访问频率的第二数据块。
进一步地,该数据块确定模块220还包括:数量获取子模块以及预设访问频率计算子模块,其中:
数量获取子模块,用于获取数据文件的总访问频率以及多个数据块的数量。
预设访问频率计算子模块,用于基于预设访问规则、总访问频率以及多个数据块的数量,计算得到预设访问频率。
进一步地,预设访问规则为预设PA%的访问集中在PB%的数据块中,该预设访问频率计算子模块还包括:预设访问频率计算单元,其中:
预设访问频率计算单元,用于基于fi=(PA×ft)/(PB×n)计算得到所述预设访问频率,其中,fi为预设访问频率,ft为总访问频率,n为多个数据块的数量。
数据块合并模块230,用于将多个目标数据块进行合并。
进一步地,数据块合并模块230还包括:有效判断子模块、数据块合并子模块以及索引插入子模块,其中:
有效判断子模块,用于判断多个目标数据块的每个键值对是否有效。
数据块合并子模块,用于当每个键值对有效,且多个目标数据块对应的数据项为最新版本时,将多个目标数据块对应的数据项进行合并生成新的数据块,并将新的数据块写入数据文件。
索引插入子模块,用于将新的数据块对应的数据项插入队列,并插入数据项对应的索引。
所属领域的技术人员可以清楚地了解到,本申请实施例提供的数据合并装置能够实现前述方法实施例中的各个过程,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参阅前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图11,其示出了本申请实施例提供的一种电子设备300的结构框图。该电子设备300可以是移动终端、服务器等能够运行应用程序的电子设备。本申请中的电子设备300可以包括一个或多个如下部件:处理器310、存储器320以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器320中并被配置为由一个或多个处理器310执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器310可以包括一个或者多个处理核。处理器310利用各种接口和线路连接整个电子设备310内的各个部分,通过运行或执行存储在存储器320内的指令、程序、代码集或指令集,以及调用存储在存储器320内的数据,执行电子设备310的各种功能和处理数据。可选地,处理器310可以采用数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑阵列(programmable logicarray,PLA)中的至少一种硬件形式来实现。处理器310可集成中央处理器(centralprocessing unit,CPU)、图像处理器(graphics processing unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器310中,单独通过一块通信芯片进行实现。
存储器320可以包括随机存储器(random access memory,RAM),也可以包括只读存储器(read-only memory,ROM)。存储器320可用于存储指令、程序、代码、代码集或指令集。存储器320可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备310在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参阅图12,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质400中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读取存储介质400可以是诸如闪存、电可擦除可编程只读存储器(electrically-erasable programmable read-only memory,EEPROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质400包括非易失性计算机可读介质(non-transitorycomputer-readable storagemedium)。计算机可读取存储介质400具有执行上述方法中的任何方法步骤的程序代码410的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码410可以例如以适当形式进行压缩。
综上所述,本申请实施例提供的数据合并方法、装置、电子设备及存储介质,获取数据文件包含的多个数据块,并分别获取多个数据块中的每个数据块的访问频率;基于每个数据块的访问频率从该多个数据块中确定多个目标数据块,将该多个目标数据块进行合并。通过每个数据块的访问频率选取符合条件的数据块进行合并,从而降低系统的资源消耗,提升系统性能。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据合并方法,其特征在于,所述方法包括:
获取数据文件包含的多个数据块,并分别获取所述多个数据块中的每个数据块的访问频率;
基于所述每个数据块的访问频率从所述多个数据块中确定多个目标数据块;
将所述多个目标数据块进行合并。
2.根据权利要求1所述的方法,其特征在于,所述基于所述每个数据块的访问频率从所述多个数据块中确定多个目标数据块,包括:
分别判断所述每个数据块的访问频率是否大于预设访问频率,获得判断结果;
基于所述判断结果从所述多个数据块中确定所述多个目标数据块,其中,所述多个目标数据块的访问频率大于所述预设访问频率。
3.根据权利要求2所述的方法,其特征在于,所述基于所述判断结果从所述多个数据块中确定所述多个目标数据块,包括:
基于所述判断结果从所述多个数据块中获取多个第一数据块,其中,所述多个第一数据块的访问频率大于所述预设访问频率;
计算所述多个第一数据块中的每两个第一数据块的访问频率的差值,获得第一计算结果;
基于所述第一计算结果从所述多个第一数据块中确定所述多个目标数据块,其中,所述多个目标数据块中的每两个目标数据块的访问频率的差值小于预设差值。
4.根据权利要求1所述的方法,其特征在于,所述基于所述每个数据块的访问频率从所述多个数据块中确定多个目标数据块,包括:
分别判断所述每个数据块的访问频率是否大于预设访问频率,获得判断结果;
基于所述判断结果从所述多个数据块中获取多个第二数据块,其中,所述多个第二数据块中的部分第二数据块的访问频率大于所述预设访问频率;
计算所述多个第二数据块中的每两个第二数据块的访问频率的差值,获得第二计算结果;
基于所述第二计算结果从所述多个第二数据块中确定所述多个目标数据块,其中,所述多个目标数据块中的每两个目标数据块的访问频率的差值小于预设差值,且所述多个目标数据块中包括访问频率大于预设访问频率的第二数据块。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述分别判断所述每个数据块的访问频率是否大于预设访问频率之前,还包括:
获取数据文件的总访问频率以及所述多个数据块的数量;
基于预设访问规则、所述总访问频率以及所述多个数据块的数量,计算得到预设访问频率。
6.根据权利要求5所述的方法,其特征在于,所述预设访问规则为预设PA%的访问集中在PB%的数据块中,所述基于预设访问规则、所述总访问频率以及所述多个数据块的数量,计算得到预设访问频率,包括:
基于fi=(PA×ft)/(PB×n)计算得到所述预设访问频率,其中,fi为预设访问频率,ft为总访问频率,n为多个数据块的数量。
7.根据权利要求1所述的方法,其特征在于,所述将所述多个目标数据块进行合并,包括:
判断所述多个目标数据块的每个键值对是否有效;
当所述每个键值对有效,且所述多个目标数据块对应的数据项为最新版本时,将所述多个目标数据块对应的数据项进行合并生成新的数据块,并将所述新的数据块写入所述数据文件;
将所述新的数据块对应的数据项插入队列,并插入所述数据项对应的索引。
8.一种数据合并装置,其特征在于,所述装置包括:
频率获取模块,用于获取数据文件包含的多个数据块,并分别获取所述多个数据块中的每个数据块的访问频率;
数据块确定模块,用于基于所述每个数据块的访问频率从所述多个数据块中确定多个目标数据块;
数据块合并模块,用于将所述多个目标数据块进行合并。
9.一种电子设备,其特征在于,包括:
存储器;
一个或多个处理器,与所述存储器耦接;
一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-7任一项所述的方法。
10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936874.0A CN110674086A (zh) | 2019-09-29 | 2019-09-29 | 数据合并方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936874.0A CN110674086A (zh) | 2019-09-29 | 2019-09-29 | 数据合并方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110674086A true CN110674086A (zh) | 2020-01-10 |
Family
ID=69080282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910936874.0A Pending CN110674086A (zh) | 2019-09-29 | 2019-09-29 | 数据合并方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110674086A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949652A (zh) * | 2020-06-22 | 2020-11-17 | 联想(北京)有限公司 | 一种数据指纹检测方法、装置及存储介质 |
CN117076387A (zh) * | 2023-08-22 | 2023-11-17 | 北京天华星航科技有限公司 | 基于磁带的海量小文件的快速归档恢复系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020255A (zh) * | 2012-12-21 | 2013-04-03 | 华为技术有限公司 | 分级存储方法和装置 |
CN104239230A (zh) * | 2014-08-28 | 2014-12-24 | 华为技术有限公司 | 一种数据块迁移方法及装置 |
CN104283956A (zh) * | 2014-09-30 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 强一致性分布式数据存储方法、装置及系统 |
CN105701209A (zh) * | 2016-01-13 | 2016-06-22 | 广西师范大学 | 一种提高大数据上并行连接性能的负载平衡方法 |
CN109144791A (zh) * | 2018-09-30 | 2019-01-04 | 北京金山云网络技术有限公司 | 数据转存方法、装置和数据管理服务器 |
-
2019
- 2019-09-29 CN CN201910936874.0A patent/CN110674086A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020255A (zh) * | 2012-12-21 | 2013-04-03 | 华为技术有限公司 | 分级存储方法和装置 |
CN104239230A (zh) * | 2014-08-28 | 2014-12-24 | 华为技术有限公司 | 一种数据块迁移方法及装置 |
CN104283956A (zh) * | 2014-09-30 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 强一致性分布式数据存储方法、装置及系统 |
CN105701209A (zh) * | 2016-01-13 | 2016-06-22 | 广西师范大学 | 一种提高大数据上并行连接性能的负载平衡方法 |
CN109144791A (zh) * | 2018-09-30 | 2019-01-04 | 北京金山云网络技术有限公司 | 数据转存方法、装置和数据管理服务器 |
Non-Patent Citations (1)
Title |
---|
黄朝光: "面向农业科学数据的分布式存储系统的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949652A (zh) * | 2020-06-22 | 2020-11-17 | 联想(北京)有限公司 | 一种数据指纹检测方法、装置及存储介质 |
CN117076387A (zh) * | 2023-08-22 | 2023-11-17 | 北京天华星航科技有限公司 | 基于磁带的海量小文件的快速归档恢复系统 |
CN117076387B (zh) * | 2023-08-22 | 2024-03-01 | 北京天华星航科技有限公司 | 基于磁带的海量小文件的快速归档恢复系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110674053B (zh) | Ssd数据存储节点管理方法、装置、计算机设备及存储介质 | |
US11650990B2 (en) | Method, medium, and system for joining data tables | |
CN110909025A (zh) | 数据库的查询方法、查询装置及终端 | |
US20210132987A1 (en) | Computer program for asynchronous data processing in a database management system | |
WO2021258512A1 (zh) | 数据的聚合处理装置、方法和存储介质 | |
CN105740405A (zh) | 存储数据的方法和装置 | |
CN110674086A (zh) | 数据合并方法、装置、电子设备及存储介质 | |
CN112559386A (zh) | 提升ssd性能的方法、装置、计算机设备及存储介质 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN111930305A (zh) | 数据的存储方法和装置、存储介质、电子装置 | |
CN111124314A (zh) | 映射表动态加载的ssd性能提升方法、装置、计算机设备及存储介质 | |
CN112269665B (zh) | 内存的处理方法和装置、电子设备和存储介质 | |
CN118250206A (zh) | 基于流量回放的高并发压测试方法及相关装置 | |
CN110286981A (zh) | 虚拟云桌面服务器的使用状态的显示方法及显示系统 | |
CN114374392A (zh) | 一种数据压缩存储方法、装置、终端设备及可读存储介质 | |
CN113986134B (zh) | 存储数据的方法、读取数据的方法和装置 | |
US10067678B1 (en) | Probabilistic eviction of partial aggregation results from constrained results storage | |
CN112070144B (zh) | 图像聚类方法、装置、电子设备以及存储介质 | |
He et al. | Research on key technologies of NBD storage service system based on load classification | |
CN114115696B (zh) | 内存重删方法、装置及存储介质 | |
CN108139980B (zh) | 用于合并存储器页的方法和存储器合并功能 | |
US20160232166A1 (en) | Method and Apparatus for Accessing File | |
CN113342270A (zh) | 卷卸载方法、装置和电子设备 | |
CN111580831A (zh) | 提高代码运行效率的方法、装置、计算机设备及存储介质 | |
CN105072047A (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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20200110 Assignee: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd. Assignor: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd. Contract record no.: X2021440000031 Denomination of invention: Data merging method, device, electronic equipment and storage medium License type: Common License Record date: 20210125 |
|
EE01 | Entry into force of recordation of patent licensing contract | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200110 |
|
RJ01 | Rejection of invention patent application after publication |