CN112883124A - 数据处理方法、装置、计算机设备及存储介质 - Google Patents
数据处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112883124A CN112883124A CN202110286980.6A CN202110286980A CN112883124A CN 112883124 A CN112883124 A CN 112883124A CN 202110286980 A CN202110286980 A CN 202110286980A CN 112883124 A CN112883124 A CN 112883124A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- processed
- databases
- target
- 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.)
- Granted
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及计算机数据存储技术领域,提供一种数据处理方法、装置、计算机设备及存储介质,所述方法应用于计算机设备,计算机设备中存在多个数据库,每一数据库对应一个聚类阈值,聚类阈值用于表征对该数据库中的数据进行访问操作的频度,所述方法包括:获取待处理数据及待处理数据的访问次数,其中,待处理数据预先存储于多个数据库中的第一目标数据库;根据预设权重系数、待处理数据的访问次数及每一数据库对应的聚类阈值,从多个数据库中确定第二目标数据库;将待处理数据从第一目标数据库迁移至第二目标数据库。本发明实施例能够通过减少压缩算法处理的数据量,避免由于压缩算法成为瓶颈而导致的写入性能不理想的问题。
Description
技术领域
本发明涉及计算机数据存储技术领域,具体而言,涉及一种数据处理方法、装置、计算机设备及存储介质。
背景技术
目前,各种数据库支持的数据量越来越大,为了避免大量数据占用的存储空间随着数据量的增大而急剧膨胀,通常会对数据库中的数据进行压缩。在数据库高并发地进行数据更新时,对于数据的压缩处理容易成为整个数据库系统的瓶颈,影响写入性能,更严重时会导致磁盘数据膨胀,影响可用性。
发明内容
本发明的目的在于提供了一种数据处理方法、装置、计算机设备及存储介质,其能够通过减少压缩算法处理的数据量,避免由于压缩算法成为瓶颈而导致的写入性能不理想的问题。
为了实现上述目的,本发明采用的技术方案如下:
第一方面,本发明提供一种数据处理方法,应用于计算机设备,所述计算机设备中存在多个数据库,每一所述数据库对应一个聚类阈值,所述聚类阈值用于表征对该数据库中的数据进行访问操作的频度,所述方法包括:获取待处理数据及所述待处理数据的访问次数,其中,所述待处理数据预先存储于所述多个数据库中的第一目标数据库;根据预设权重系数、所述待处理数据的访问次数及每一所述数据库对应的聚类阈值,从所述多个数据库中确定第二目标数据库;将所述待处理数据从所述第一目标数据库迁移至所述第二目标数据库。
第二方面,本发明提供一种数据处理装置,应用于计算机设备,所述计算机设备中存在多个数据库,每一所述数据库对应一个聚类阈值,所述聚类阈值用于表征对该数据库中的数据进行访问操作的频度,所述装置包括:获取模块,用于获取待处理数据及所述待处理数据的访问次数,其中,所述待处理数据预先存储于所述多个数据库中的第一目标数据库;确定模块,用于根据预设权重系数、所述待处理数据的访问次数及每一所述数据库对应的聚类阈值,从所述多个数据库中确定第二目标数据库;迁移模块,用于将所述待处理数据从所述第一目标数据库迁移至所述第二目标数据库。
第三方面,本发明提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述的数据处理方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的数据处理方法。
相对于现有技术,本发明通过为每一数据库设置一个表征对该数据库中的数据进行访问操作的频度的聚类阈值,将数据按照访问操作的频度分散于多个数据库中,从而有效地减少了数据高并发更新时需要压缩的数据量,有效地避免由于压缩算法成为瓶颈而导致的写入性能不理想的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的一种数据处理方法的流程图。
图2示出了本发明实施例提供的另一种数据处理方法的流程图。
图3示出了本发明实施例提供的另一种数据处理方法的流程图。
图4示出了本发明实施例提供的另一种数据处理方法的流程图。
图5示出了本发明实施例提供的另一种数据处理方法的流程图。
图6示出了本发明实施例提供的数据处理装置的方框示意图。
图7示出了本发明实施例提供的高并发更新写入levelDB场景下数据分配模块、数据采集模块、数据动态调整模块及levelDB的处理示意图。
图8示出了本发明实施例提供高并发插入levelDB场景下数据分配模块、数据采集模块、数据动态调整模块及levelDB的处理示意图。
图9示出了本发明实施例提供的计算机设备的方框示意图。
图标:10-计算机设备;11-处理器;12-存储器;13-总线;14-通信接口;100-数据处理装置;110-获取模块;120-确定模块;130-迁移模块;140-备份模块;150-读取模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
当今的数据库技术中,以levelDB为例,levelDB因其支持的数据量大同时性能好而得以广泛应用,levelDB是google开源key-value存储引擎库,支持的数据量大,目前能够支持十亿级别的数据量,同时在这个数据量级别下还有着非常高的性能,与其底层采用的压缩算法是分不开的,然而当levelDB高并发地进行数据处理时,其底层的压缩算法便会成为SST文件合并的瓶颈,影响写入性能,更严重时会导致磁盘数据膨胀,影响可用性。
针对上述问题,现有的一种处理方式为:采用多个数据库,每一数据库对应一个消息队列。写入数据时,采用哈希算法在多个消息队列之间进行分配,将数据分散存储于多个数据库,该方法在一定程度上解决了大压力下的写入性能,但是在面对高并发的数据更新操作时,写入性能并不理想。
发明人经过仔细研究发现,对于levelDB而言,由于levelDB中的数据通常是key-value数据对的形式,而高并发进行数据处理通常包括新数据的插入和已有数据的更新,在面对新数据高并发处理场景时,由于利用多个消息队列将新数据分散于多个数据库,实现了数据分流,在此场景下这种分流方式具有一定的效用。
但是对key进行Hash,在面对已有数据对更新时很容易被Hash到相同几个消息队列中,此种场景下,该方法便彻底失去所期望的功能,导致写入性能大受影响,写入性能不理想。
有鉴于此,本发明实施例提供了一种数据处理方法、装置、计算机设备及存储介质,其通过为每一数据库设置一个表征对该数据库中的数据进行访问操作的频度的聚类阈值,将数据按照访问操作的频度分散于多个数据库中,通过将访问操作的频度接近的数据存储至同一个数据库中,从而避免了操作频度相差过大,导致了数据高并发更新时压缩的数据中包括大量的未改变的数据,从而有效地减少了数据高并发更新时需要压缩的数据量,有效地避免由于压缩算法成为瓶颈而导致的写入性能不理想的问题,下面将对其进行详细描述。
请参考图1,图1示出了本发明实施例提供的一种数据处理方法的流程图,该方法包括以下步骤:
步骤S100,获取待处理数据及待处理数据的访问次数,其中,待处理数据预先存储于多个数据库中的第一目标数据库。
在本实施例中,待处理数据可以是对所述第一目标数据库中的数据进行访问的数据,访问包括插入新数据、更新已有数据、读已有数据或者删除已有数据等。获取待处理数据可以是按照预设采集周期进行获取,即将该预设采集周期内访问的数据作为待处理数据,同时记录待处理数据的访问次数。
在本实施例中,第一目标数据库可以是多个数据库中的一个或者多个,以levelDB为例,一共有3个数据库:数据库1、数据库2和数据库3,t时间内进行访问操作为:插入数据a;更新数据b的值为1;更新数据a的值为10;更新数据b的值为2;更新数据a的值为20;插入数据a时,根据a的key值进行hash,得到a应该存储于数据库1中,而数据b预先存储于数据库2中,则第一目标数据库包括数据库1和数据库2。
步骤S110,根据预设权重系数、待处理数据的访问次数及每一数据库对应的聚类阈值,从多个数据库中确定第二目标数据库。
在本实施例中,多个数据库中每一数据库对应一个聚类阈值,聚类阈值用于表征对该数据库中的数据进行访问操作的频度。根据待处理数据的访问特点,通过设定不同的预设权重系数及每一数据库对应的聚类阈值可以将待处理数据按照聚类阈值分散至多个数据库,而不会集中于同一个数据库。
在本实施例中,预设权重系数用于确定操作类型的权重,在不同的应用场景下,预设权重系数设置的值也不一样,例如,在一种应用场景中,预设权重系数包括读操作权重系数和更新操作权重系数,分别设置为0.1和0.9,在另一种应用场景中,预设权重系数包括读操作权重系数和更新操作权重系数,分别设置为0.4和0.6。
在本实施例中,待处理数据的访问次数可以根据访问操作类型进行统计,例如,对于同一数据,分别统计读操作次数和更新操作次数。
在本实施例中,第二目标数据库是根据预设权重系数、待处理数据的访问次数及每一数据库对应的聚类阈值,对待处理数据进行分析后,待处理数据应该被存储的数据库,例如,待处理数据a原本存储于数据库1,经过分析之后,待处理数据a应该存储于数据库2,此时,数据库1为第一目标数据库,数据库2为第二目标数据库。
步骤S120,将待处理数据从第一目标数据库迁移至第二目标数据库。
本发明实施例提供的上述方法,通过为每一数据库设置一个表征对该数据库中的数据进行访问操作的频度的聚类阈值,根据预设权重系数、所述待处理数据的访问次数及每一所述数据库对应的聚类阈值,可以将待处理数据按照访问操作的频度分散于多个数据库中,通过将访问操作的频度接近的数据存储至同一个数据库中,从而避免了操作频度相差过大,导致了数据高并发更新时压缩的数据中包括大量的未改变的数据,从而有效地减少了数据高并发更新时需要压缩的数据量,有效地避免由于压缩算法成为瓶颈而导致的写入性能不理想的问题。
在图1的基础上,本发明实施例还给出了一种从多个数据库中确定第二目标数据库的具体实现方式,请参照图2,图2示出了本发明实施例提供的另一种数据处理方法的流程图,步骤S110包括以下子步骤:
子步骤S1101,根据预设权重系数及每一待处理数据的访问次数,计算每一待处理数据的访问权重。
在本实施例中,待处理数据包括多个,对于同一个待处理数据可以进行多次不同的访问操作,例如,待处理数据包括a、b、c、d四个,对a进行了10次更新访问操作和5次读访问操作,对c进行了1次插入访问操作、5次更新访问操作及10次读访问操作。
需要说明的是,作为一种实施方式,预设权重系数可以预先设置为固定值,此时,在每次对待处理数据进行处理时均不会改变,作为另一种实施方式,预设权重系数也可以通过设置变化,例如在本周内采用一个值,在下周内采用另一个值,或者在A场景下采用a值,在B场景下采用b值等。
作为一种具体场景的具体实施方式,预设权重系数可以包括更新操作权重系数及读操作权重系数,对应地,访问次数包括更新次数及读次数,计算每一待处理数据的访问权重的方式可以是:
首先,根据更新操作权重系数及每一待处理数据的更新次数,计算每一待处理数据的更新权重。
在本实施例中,对于每一待处理数据,其更新权重=更新操作权重系数*更新次数。
其次,根据读操作权重系数及每一待处理数据的读次数,计算每一待处理数据的读权重。
在本实施例中,对于每一待处理数据,其读权重=读操作权重*读次数。
最后,根据每一待处理数据的更新权重及每一待处理数据的读权重,得到每一待处理数据的访问权重。
在本实施例中,对于每一待处理数据,其访问权重=更新权重+读权重。
子步骤S1102,根据多个访问权重及每一数据库对应的聚类阈值对多个待处理数据进行聚类分析,从多个数据库中确定第二目标数据库,其中,第二目标数据库包括每一待处理数据应迁移至的数据库。
在本实施例中,聚类阈值也称为聚类中心值,每一数据库的聚类阈值用于表征该数据库中的数据的访问操作的频度较为接近。
在本实施例中,聚类分析就是发现数据的访问操作的频度之间的关系,将数据进行分组,组内的相似性越大,组间的差别越大,则聚类效果越好,作为一种具体实施方式,聚类分析可以、但不限于采用K-means算法、均值漂移聚类算法或者空间聚类算法等。
在本实施例中,对多个待处理数据进行遍历,判断其当前所在的数据库是否为其对应的应迁移至的第二目标数据库,若是,则无需进行迁移,否则,将该待处理数据从当前所在的数据库迁移至对应的第二目标数据库。
需要说明的是,为了尽量减少聚类分析和迁移对数据访问性能的影响,作为一种具体实施方式,可以按照预设处理周期,周期性地获取待处理数据极其访问次数,并对待处理数据进行一次聚类分析,例如,预设处理周期设置为5分钟。作为一种具体实施方式,除了获取待处理数据极其访问次数,还可以记录待处理数据当前所处的数据库或者数据库中的位置等信息,以便于在迁移的时候按照该信息即可对待处理数据进行迁移。
还需要说明的是,若当前周期内需要迁移的待处理数据过多,在当前周期内不能全部迁移完毕,下一个周期到来时,仍然会对获取新的待处理数据并进行聚类分析,此时可以将聚类分析的结果和上个周期未迁移的结果进行合并,以免上一个周期分析的结果相关的迁移得不到处理,造成资源的浪费。
本发明实施例提供的上述方法,通过为不同数据库设置不同的聚类阈值,保证了大批量业务场景下的写入性能,同时避免数据库文件来不及合并导致的数据膨胀;通过将数据分散到不同数据库,可以达到数据初次写入的负载均衡,进一步提升写入性能;计算待处理数据中每一数据的访问权重,再根据多个待处理数据的访问权重及每一数据库对应的聚类阈值对多个待处理数据进行聚类分析,以便确定每一待处理数据应该迁移的数据库,通过如此的动态调整,可以使待处理数据处于与其访问频度最匹配的数据库中,进一步优化了写入性能。
在本实施例中,为了提高数据库的可靠性,以免数据库发生故障时不影响对其中数据的访问,本发明实施例还提供了一种对数据库进行备份的方法,请参照图3,图3示出了本发明实施例提供的另一种数据处理方法的流程图,该方法包括以下步骤:
步骤S200,将预设时间内写入每一数据库的数据备份至对应的备份数据库。
在本实施例中,每一数据库均对应一个备份数据库,作为一种具体实施方式,为了提高备份效率,在预设时间内写入每一数据库的数据,会以增量备份的形式备份至对应的备份数据库。由此,可以在数据库出现故障时,任然可以从备份数据库中访问需要访问的数据。
本发明实施例提供的上述方法,通过为每一数据库设置对应的备份数据库,保证了数据库访问的可靠性,避免数据库异常损坏导致其中的数据无法正常得以访问的问题,以预设时间对数据库进行备份,使得每次备份的数据量不会过大,提高备份效率。
在图3的基础上,本发明实施例还提供了一种备份数据至备份数据库的具体实现方式,请参照图4,图4示出了本发明实施例提供的另一种数据处理方法的流程图,步骤S200包括以下子步骤:
子步骤S2001,将多个数据库中的任一数据库确定为待备份数据库。
在本实施例中,多个数据库中每一数据库采用的备份方法都是一样的,为了便于描述,本实施例以多个数据库中的任一数据库作为待备份数据库进行描述。
子步骤S2002,将待备份数据库对应的消息队列确定为目标消息队列、并将待备份数据库对应的备份数据库确定为目标备份数据库。
在本实施例中,每一数据库对应一个消息队列,目标消息队列是与待备份数据库对应的消息队列,负责记录预设时间内写入待备份数据库的写入操作,此处的写入操作包括插入、更新和删除中的至少一种或者多种。
子步骤S2003,将预设时间内写入待备份数据库的写入操作记录至目标消息队列中。
子步骤S2004,定时从目标消息队列中取出写入操作,并对目标备份数据库执行写入操作,以将预设时间内写入待备份数据库的数据备份至目标备份数据库。
在本实施例中,备份时,消息队列中的数据的多少,即消息队列在定长时间内可以容纳的数据量,此处的定时的时长也就是时间间隔,该时间间隔的设置取决于用户容忍的最大数据丢失量,时间间隔设置越大,发生异常时丢失的数据也就越多。
需要说明的是,在本实施例中,为了保证备份时备份数据量不会太大,且备份性能比较高,可以采用增量备份的方式,增量备份时,每隔预设时间间隔,目标消息队列就取出并执行其中的写入操作,将待备份数据库的数据备份至目标备份数据库,例如,预设时间间隔可以为5秒,即每5秒,目标消息队列就取出并执行其中的写入操作,将待备份数据库的数据备份至目标备份数据库。
本发明实施例提供的上述方法,通过为每一数据库设置独立的消息队列,使多个数据库的备份可以不受干扰地并发进行,提高了数据库备份的并发性,进而提高了数据库备份的效率。
在本实施例中,由于数据会根据其访问操作的频度在不同数据库之间迁移,为了可以正确、高效的读取数据库中的数据,本发明实施例还提供了一种读取数据的方法,请参照图5,图5示出了本发明实施例提供的另一种数据处理方法的流程图,该方法包括以下步骤:
步骤S300,接收待读数据,其中,待读数据包括目标key值。
在本实施例中,每一数据包括唯一表征该数据的key值,目标key值用于唯一表征待读数据。
步骤S310,根据预设哈希函数及目标key值,从多个数据库中确定第一待读数据库。
在本实施例中,当待读数据首次写入数据库时,会利用预设哈希函数对目标key值进行哈希,得到哈希值,再根据哈希值确定该待读数据写入的数据库,也就是第一待读数据库,并将该待读数据写入第一待读数据库。但是,随着对写入待读数据的动态调整,待读数据可能会从第一待读数据库迁移至其他数据库。
步骤S320,若待读数据未存在于第一待读数据库中,则按照多个数据库中除第一待读数据库之外的第二待读数据库的聚类阈值从高至低的顺序,依次从第二待读数据库中查找待读数据,并将找到的待读数据读出。
在本实施例中,若待读数据未存在于第一待读数据库中,则意味着待读数据被迁移至其他数据库,即除第一待读数据库之外的第二待读数据库,此时,为了尽快地找到待读数据,按照第二待读数据库的聚类阈值从高至低的顺序依次查找待读数据,再将找到的待读数据读出。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种数据处理装置100的实现方式。请参照图6,图6示出了本发明实施例提供的数据处理装置100的方框示意图。需要说明的是,本实施例所提供的数据处理装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
数据处理装置100包括获取模块110、确定模块120、迁移模块130、备份模块140和读取模块150。
获取模块110,用于获取待处理数据及待处理数据的访问次数,其中,待处理数据预先存储于多个数据库中的第一目标数据库。
确定模块120,用于根据预设权重系数、待处理数据的访问次数及每一数据库对应的聚类阈值,从多个数据库中确定第二目标数据库。
作为一种具体实施方式,待处理数据包括多个,确定模块120具体用于:根据预设权重系数及每一待处理数据的访问次数,计算每一待处理数据的访问权重;根据多个访问权重及每一数据库对应的聚类阈值对多个待处理数据进行聚类分析,从多个数据库中确定第二目标数据库,其中,第二目标数据库包括每一待处理数据应迁移至的数据库。
作为一种具体实施方式,预设权重系数包括更新操作权重系数及读操作权重系数,访问次数包括更新次数及读次数,确定模块120在根据预设权重系数及每一待处理数据的访问次数,计算每一待处理数据的访问权重时,具体用于:根据更新操作权重系数及每一待处理数据的更新次数,计算每一待处理数据的更新权重;根据读操作权重系数及每一待处理数据的读次数,计算每一待处理数据的读权重;根据每一待处理数据的更新权重及每一待处理数据的读权重,得到每一待处理数据的访问权重。
迁移模块130,用于将待处理数据从第一目标数据库迁移至第二目标数据库。
备份模块140,用于将预设时间内写入每一数据库的数据备份至对应的备份数据库。
作为一种具体实施方式,每一数据库均对应一个消息队列,备份模块140具体用于:将多个数据库中的任一数据库确定为待备份数据库;将待备份数据库对应的消息队列确定为目标消息队列、并将待备份数据库对应的备份数据库确定为目标备份数据库;将预设时间内写入待备份数据库的写入操作记录至目标消息队列中;定时从目标消息队列中取出写入操作,并对目标备份数据库执行写入操作,以将预设时间内写入待备份数据库的数据备份至目标备份数据库。
读取模块150,用于:接收待读数据,其中,待读数据包括目标key值;根据预设哈希函数及目标key值,从多个数据库中确定第一待读数据库;若待读数据未存在于第一待读数据库中,则按照多个数据库中除第一待读数据库之外的第二待读数据库的聚类阈值从高至低的顺序,依次从第二待读数据库中查找待读数据,并将找到的待读数据读出。
上述只是数据处理装置100的一种具体划分方式,事实上,根据实际需要还可以对数据处理装置100进行其他方式的划分,例如,以levelDB为例,可以将数据处理装置100划分为:配置加载模块、数据分配模块、数据采集模块、levelDB模块、数据动态调整模块、数据读取模块、数据库备份模块。
配置加载模块用于:设置采集时间周期T和聚类参数。聚类参数可以包括聚类中心个数k、聚类中心值{Threshold1-Thresholdk},分别对应k个数据库。T用来确定数据采集间隔。Thresholdi用来确定第i个聚类中心值,k用来确定数据库的个数以及聚类中心个数。
数据分配模块用于:分配数据写入到哪个数据库中,通过对数据的key值进行哈希,得到哈希值,再将该数据写入到该哈希值对应的数据库中。
数据采集模块用于:统计数据对(key-value)信息,记录数据对的key值、相关DML项(包括更新和读取)的次数及位置分布location。
数据动态调整模块用于:
(1)对采集到的数据进行加权计算,构造样本集{x1,x2,...,xm};
(2)对样本集进行k-means聚类,并加入到上次聚类集中,结果为{c1,c2,...,ck};
(3)对类ci中的key逐个遍历,判断其location是否为本类对应的数据库中,不是则进行迁移,即插入到i对应的新数据库中,并从原数据库中删除。
数据读取模块用于:
(1)计算key值对应的哈希值;
(2)从哈希值对应的数据库进行数据读取,成功则返回;
(3)从聚类中心值最高的数据库到哈希对应的数据库,遍历寻找。
数据库备份模块用于:
(1)在服务启动时,根据聚类中心个数k,初始化k条消息队列,分别对应k个数据库;
(2)当有数据写入(插入、更新、删除)到数据库(DBi)中时,同时将操作记录写入到DBi对应的消息队列中;
(3)后台线程定时从消息队列中取出操作记录更新到和DBi数据库对应DBi_back中,实现数据的增量备份;
(4)当DBi对应的数据库文件损坏导致数据丢失时,即可用备份的数据库数据进行恢复;
(5)备份数据库的库目录设置成隐藏模式(如/var/lib/.DBi_back)。
(6)当服务启动时,发现DBi目录不存在或者打开失败等其他异常时,则将备库数据拷贝到主库位置进行工作。
请参照图7,图7是高并发更新写入levelDB场景下数据分配模块、数据采集模块、数据动态调整模块及levelDB的处理示意图。如图7所示:
(1)配置聚类中心个数为2,例如,聚类中心值设置为[0,100],更新操作和读取操作的权重分别设置为[0.9,0.1],数据采样间隔5分钟;
(2)大批量写入不重复的数据对(key,value);
(3)数据分配模块按照对key值Hash,将数据对插入DB1还是DB2,数据采集单元记录该时间段内的数据信息;
(4)在数据采集每过5分钟,则将采集数据提供给数据动态调整单元,数据动态调整单元将对采集到的数据进行聚类。
(5)对插入的部分数据进行批量更新操作,数据动态调整单元对采集数据进行聚类分析产生数据集,将属于不同聚类中心的key进行迁移。
请参照图8,图8是高并发插入levelDB场景下数据分配模块、数据采集模块、数据动态调整模块及levelDB的处理示意图。如图8所示:
(1)配置聚类中心个数为2,例如,聚类中心值设置为[0,100],更新操作和读取操作的权重分别设置为[0.9,0.1],数据采样间隔5分钟;
(2)大批量写入新数据对(key,value);
(3)数据分配单元按照对key值Hash,将数据对插入DB1还是DB2;
(4)数据采集单元记录该时间段内的数据信息;
(5)在数据采集每过5分钟时间段,由于都是新插入数据,采集单元将不会进行数据统计;
(6)数据分配单元无数据源处理,将不会触发。
本发明实施例可以自动区分上述两种具体场景,并在两种具体场景下进行不同的处理,以使数据处理的效率达到最高。
本发明实施例还提供了一种可以执行上述数据处理方法的计算机设备10的方框示意图,请参照图9,图9示出了本发明实施例提供的计算机设备的方框示意图,计算机设备10包括处理器11、存储器12、总线13、通信接口14。处理器11、存储器12通过总线13连接,处理器11通过通信接口14与外部设备通信。
处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器12用于存储程序,例如本发明实施例中的数据处理装置100,数据处理装置100包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,处理器11在接收到执行指令后,执行所述程序以实现本发明实施例中的数据处理方法。
存储器12可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory)。可选地,存储器12可以是内置于处理器11中的存储装置,也可以是独立于处理器11的存储装置。
总线13可以是ISA总线、PCI总线或EISA总线等。图9仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的数据处理方法。
综上所述,本发明实施例提供了一种数据处理方法,应用于计算机设备,计算机设备中存在多个数据库,每一数据库对应一个聚类阈值,聚类阈值用于表征对该数据库中的数据进行访问操作的频度,所述方法包括:获取待处理数据及待处理数据的访问次数,其中,待处理数据预先存储于多个数据库中的第一目标数据库;根据预设权重系数、待处理数据的访问次数及每一数据库对应的聚类阈值,从多个数据库中确定第二目标数据库;将待处理数据从第一目标数据库迁移至第二目标数据库。相对于现有技术,本发明实施例通过为每一数据库设置一个表征对该数据库中的数据进行访问操作的频度的聚类阈值,将数据按照访问操作的频度分散于多个数据库中,从而有效地减少了数据高并发更新时需要压缩的数据量,有效地避免由于压缩算法成为瓶颈而导致的写入性能不理想的问题。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,应用于计算机设备,所述计算机设备中存在多个数据库,每一所述数据库对应一个聚类阈值,所述聚类阈值用于表征对该数据库中的数据进行访问操作的频度,所述方法包括:
获取待处理数据及所述待处理数据的访问次数,其中,所述待处理数据预先存储于所述多个数据库中的第一目标数据库;
根据预设权重系数、所述待处理数据的访问次数及每一所述数据库对应的聚类阈值,从所述多个数据库中确定第二目标数据库;
将所述待处理数据从所述第一目标数据库迁移至所述第二目标数据库。
2.如权利要求1所述的数据处理方法,其特征在于,所述待处理数据包括多个,所述根据预设权重系数、所述待处理数据的访问次数及每一所述数据库对应的聚类阈值,从所述多个数据库中确定第二目标数据库的步骤包括:
根据所述预设权重系数及每一所述待处理数据的访问次数,计算每一所述待处理数据的访问权重;
根据所述多个访问权重及每一所述数据库对应的聚类阈值对所述多个待处理数据进行聚类分析,从所述多个数据库中确定第二目标数据库,其中,所述第二目标数据库包括每一所述待处理数据应迁移至的数据库。
3.如权利要求2所述的数据处理方法,其特征在于,所述预设权重系数包括更新操作权重系数及读操作权重系数,所述访问次数包括更新次数及读次数,所述根据所述预设权重系数及每一所述待处理数据的访问次数,计算每一所述待处理数据的访问权重的步骤包括:
根据所述更新操作权重系数及每一所述待处理数据的更新次数,计算每一所述待处理数据的更新权重;
根据所述读操作权重系数及每一所述待处理数据的读次数,计算每一所述待处理数据的读权重;
根据每一所述待处理数据的更新权重及每一所述待处理数据的读权重,得到每一所述待处理数据的访问权重。
4.如权利要求1所述的数据处理方法,其特征在于,每一所述数据库对应一个备份数据库,所述方法还包括:
将预设时间内写入每一所述数据库的数据预设时间至对应的所述备份数据库。
5.如权利要求4所述的数据处理方法,其特征在于,每一所述数据库均对应一个消息队列,所述将预设时间内写入每一所述数据库的数据备份至对应的所述备份数据库的步骤包括:
将多个所述数据库中的任一数据库确定为待备份数据库;
将所述待备份数据库对应的消息队列确定为目标消息队列、并将所述待备份数据库对应的备份数据库确定为目标备份数据库;
将所述预设时间内写入所述待备份数据库的写入操作记录至所述目标消息队列中;
定时从所述目标消息队列中取出所述写入操作,并对所述目标备份数据库执行所述写入操作,以将所述预设时间内写入所述待备份数据库的数据备份至所述目标备份数据库。
6.如权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
接收待读数据,其中,所述待读数据包括目标key值;
根据预设哈希函数及所述目标key值,从所述多个数据库中确定第一待读数据库;
若所述待读数据未存在于所述第一待读数据库中,则按照所述多个数据库中除所述第一待读数据库之外的第二待读数据库的聚类阈值从高至低的顺序,依次从所述第二待读数据库中查找所述待读数据,并将找到的所述待读数据读出。
7.如权利要求1-6中任一项所述的数据处理方法,其特征在于,所述多个数据库均属于levelDB数据库。
8.一种数据处理装置,其特征在于,应用于计算机设备,所述计算机设备中存在多个数据库,每一所述数据库对应一个聚类阈值,所述聚类阈值用于表征对该数据库中的数据进行访问操作的频度,所述装置包括:
获取模块,用于获取待处理数据及所述待处理数据的访问次数,其中,所述待处理数据预先存储于所述多个数据库中的第一目标数据库;
确定模块,用于根据预设权重系数、所述待处理数据的访问次数及每一所述数据库对应的聚类阈值,从所述多个数据库中确定第二目标数据库;
迁移模块,用于将所述待处理数据从所述第一目标数据库迁移至所述第二目标数据库。
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的数据处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110286980.6A CN112883124B (zh) | 2021-03-17 | 2021-03-17 | 数据处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110286980.6A CN112883124B (zh) | 2021-03-17 | 2021-03-17 | 数据处理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112883124A true CN112883124A (zh) | 2021-06-01 |
CN112883124B CN112883124B (zh) | 2022-12-02 |
Family
ID=76042734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110286980.6A Active CN112883124B (zh) | 2021-03-17 | 2021-03-17 | 数据处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112883124B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115515131A (zh) * | 2022-11-21 | 2022-12-23 | 苏州大凯纸业有限公司 | 一种瓦楞纸板加工平台数据无线通信密钥管理方法 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130117223A1 (en) * | 2011-11-09 | 2013-05-09 | Hitachi, Ltd. | Information processing system and method of controlling the same |
US20150178305A1 (en) * | 2013-12-23 | 2015-06-25 | Ingo Mueller | Adaptive dictionary compression/decompression for column-store databases |
WO2016165441A1 (zh) * | 2015-09-06 | 2016-10-20 | 中兴通讯股份有限公司 | 迁移策略调整方法、容量变更建议方法及装置 |
CN108319654A (zh) * | 2017-12-29 | 2018-07-24 | 中国银联股份有限公司 | 计算系统、冷热数据分离方法及装置、计算机可读存储介质 |
US10108645B1 (en) * | 2015-12-30 | 2018-10-23 | EMC IP Holding Company LLC | Database monitoring for online migration optimization |
CN109756230A (zh) * | 2019-01-03 | 2019-05-14 | Oppo广东移动通信有限公司 | 数据压缩存储方法、数据压缩方法、装置、设备及介质 |
CN110175206A (zh) * | 2019-05-24 | 2019-08-27 | 江西尚通科技发展股份有限公司 | 用于多数据库分离的智能分析业务方法、系统及介质 |
CN110175163A (zh) * | 2019-05-24 | 2019-08-27 | 江西尚通科技发展股份有限公司 | 基于业务功能智能解析的多库分离方法、系统及介质 |
CN110674167A (zh) * | 2019-08-20 | 2020-01-10 | 广州亚美信息科技有限公司 | 数据库操作方法、装置、计算机设备和存储介质 |
US20200073978A1 (en) * | 2018-08-31 | 2020-03-05 | International Business Machines Corporation | Processing event messages for changed data objects to determine changed data objects to backup |
CN111309732A (zh) * | 2020-02-19 | 2020-06-19 | 杭州朗和科技有限公司 | 数据处理方法、装置、介质和计算设备 |
CN111708755A (zh) * | 2020-05-20 | 2020-09-25 | 北京奇艺世纪科技有限公司 | 数据迁移方法、装置、系统、电子设备以及可读存储介质 |
CN111753016A (zh) * | 2020-06-28 | 2020-10-09 | 深圳前海微众银行股份有限公司 | 数据处理方法、装置、系统及计算机可读存储介质 |
CN112035472A (zh) * | 2020-08-28 | 2020-12-04 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112100293A (zh) * | 2020-09-23 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 数据处理方法、数据访问方法、装置及计算机设备 |
CN112395212A (zh) * | 2020-11-05 | 2021-02-23 | 华中科技大学 | 减少键值分离存储系统的垃圾回收和写放大的方法及系统 |
-
2021
- 2021-03-17 CN CN202110286980.6A patent/CN112883124B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130117223A1 (en) * | 2011-11-09 | 2013-05-09 | Hitachi, Ltd. | Information processing system and method of controlling the same |
US20150178305A1 (en) * | 2013-12-23 | 2015-06-25 | Ingo Mueller | Adaptive dictionary compression/decompression for column-store databases |
WO2016165441A1 (zh) * | 2015-09-06 | 2016-10-20 | 中兴通讯股份有限公司 | 迁移策略调整方法、容量变更建议方法及装置 |
US10108645B1 (en) * | 2015-12-30 | 2018-10-23 | EMC IP Holding Company LLC | Database monitoring for online migration optimization |
CN108319654A (zh) * | 2017-12-29 | 2018-07-24 | 中国银联股份有限公司 | 计算系统、冷热数据分离方法及装置、计算机可读存储介质 |
US20200073978A1 (en) * | 2018-08-31 | 2020-03-05 | International Business Machines Corporation | Processing event messages for changed data objects to determine changed data objects to backup |
CN109756230A (zh) * | 2019-01-03 | 2019-05-14 | Oppo广东移动通信有限公司 | 数据压缩存储方法、数据压缩方法、装置、设备及介质 |
CN110175206A (zh) * | 2019-05-24 | 2019-08-27 | 江西尚通科技发展股份有限公司 | 用于多数据库分离的智能分析业务方法、系统及介质 |
CN110175163A (zh) * | 2019-05-24 | 2019-08-27 | 江西尚通科技发展股份有限公司 | 基于业务功能智能解析的多库分离方法、系统及介质 |
CN110674167A (zh) * | 2019-08-20 | 2020-01-10 | 广州亚美信息科技有限公司 | 数据库操作方法、装置、计算机设备和存储介质 |
CN111309732A (zh) * | 2020-02-19 | 2020-06-19 | 杭州朗和科技有限公司 | 数据处理方法、装置、介质和计算设备 |
CN111708755A (zh) * | 2020-05-20 | 2020-09-25 | 北京奇艺世纪科技有限公司 | 数据迁移方法、装置、系统、电子设备以及可读存储介质 |
CN111753016A (zh) * | 2020-06-28 | 2020-10-09 | 深圳前海微众银行股份有限公司 | 数据处理方法、装置、系统及计算机可读存储介质 |
CN112035472A (zh) * | 2020-08-28 | 2020-12-04 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112100293A (zh) * | 2020-09-23 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 数据处理方法、数据访问方法、装置及计算机设备 |
CN112395212A (zh) * | 2020-11-05 | 2021-02-23 | 华中科技大学 | 减少键值分离存储系统的垃圾回收和写放大的方法及系统 |
Non-Patent Citations (5)
Title |
---|
PAOLO BELLAVISTA 等: ""Differentiated Service/Data Migration for Edge Services Leveraging Container Characteristics"", 《HTTPS://IEEEXPLORE.IEEE.ORG/DOCUMENT/8850058》 * |
刘敬玲 等: ""数据中心负载均衡方法研究综述"", 《软件学报》 * |
吕海燕 等: ""基于热点数据块的动态副本调整策略"", 《计算机测量与控制》 * |
周云霞等: "基于数据库用户行为分析的改进FP-Growth算法", 《科学技术与工程》 * |
孟嘉豪: ""一种面向键值对存储系统的高效数据迁移机制的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115515131A (zh) * | 2022-11-21 | 2022-12-23 | 苏州大凯纸业有限公司 | 一种瓦楞纸板加工平台数据无线通信密钥管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112883124B (zh) | 2022-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10885018B2 (en) | Containerization for elastic and scalable databases | |
US7801932B2 (en) | Undo hints to speed up segment extension and tuning of undo retention | |
CN110413685B (zh) | 数据库服务切换方法、装置、可读存储介质和计算机设备 | |
US8396840B1 (en) | System and method for targeted consistency improvement in a distributed storage system | |
KR101766790B1 (ko) | 메인 메모리 데이터 베이스를 관리 하기 위한 방법 및 컴퓨팅 장치 | |
CN111857592A (zh) | 基于对象存储系统的数据存储方法及装置、电子设备 | |
CN111708738A (zh) | 实现hadoop文件系统hdfs与对象存储s3数据互访方法及系统 | |
CN109189759B (zh) | Kv存储系统中的数据读取方法、数据查询方法、装置及设备 | |
CN112883124B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN106844491B (zh) | 一种临时数据的写入、读取方法及写入、读取装置 | |
CN113253932B (zh) | 一种分布式存储系统的读写控制方法和系统 | |
US11392510B2 (en) | Management method of cache files in storage space and recording device for storing cache files | |
CN114721594A (zh) | 一种分布式存储方法、装置、设备及机器可读存储介质 | |
CN109947730A (zh) | 元数据恢复方法、装置、分布式文件系统及可读存储介质 | |
CN112463073A (zh) | 一种对象存储分布式配额方法、系统、设备和存储介质 | |
CN112882659B (zh) | 一种信息获得方法、装置、电子设备及存储介质 | |
CN111427851A (zh) | 一种hdfs跨外部存储系统多层级存储效率优化的方法和设备 | |
CN111880735A (zh) | 一种存储系统中数据迁移方法、装置、设备及存储介质 | |
CN112130770B (zh) | 一种维护数据的保存方法、系统、设备以及介质 | |
CN111831206B (zh) | 存储空间切换方法及后端监控系统 | |
CN116055464B (zh) | 下载保存路径选择方法、装置及介质 | |
JPS593567A (ja) | ツリ−構造のバツフア数設定方式 | |
CN116541399A (zh) | 数据库分区表管理方法及装置 | |
CN116186033A (zh) | 数据归档方法、系统、设备及存储介质 | |
CN116909814A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |