CN107609038A - 数据清理方法和装置 - Google Patents

数据清理方法和装置 Download PDF

Info

Publication number
CN107609038A
CN107609038A CN201710693659.3A CN201710693659A CN107609038A CN 107609038 A CN107609038 A CN 107609038A CN 201710693659 A CN201710693659 A CN 201710693659A CN 107609038 A CN107609038 A CN 107609038A
Authority
CN
China
Prior art keywords
data
time
file
scrubbing
data scrubbing
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
Application number
CN201710693659.3A
Other languages
English (en)
Other versions
CN107609038B (zh
Inventor
毕杰山
钟超强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Huawei Cloud Computing Technology Co ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710693659.3A priority Critical patent/CN107609038B/zh
Publication of CN107609038A publication Critical patent/CN107609038A/zh
Application granted granted Critical
Publication of CN107609038B publication Critical patent/CN107609038B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据清理方法和装置,属于数据处理技术领域,所述方法包括:获取数据清理时间,所述数据清理时间为历史接收到数据清理请求时记录的时间,所述数据清理请求用于清理所述分布式数据库中满足清理条件的数据;获取所述分布式数据库中不满足所述清理条件的数据,以及满足所述清理条件但数据存储时间晚于所述数据清理时间的数据;在所述分布式数据库中合并获取到的所述数据。解决了现有技术中数据清理的性能低下以及可能会影响服务性能的问题,达到了可以提高数据清理的性能的效果。

Description

数据清理方法和装置
技术领域
本申请涉及数据处理技术领域,特别涉及一种数据清理方法和装置。
背景技术
HBase(Hadoop Database,Hadoop数据库)具有分布式、高可靠、高性能、基于KeyValue存储等特点,因此越来越多的企业和用户使用HBase来存构建数据表。
在HBase中存储数据之后,用户可以删除其中的某些数据。因此为了释放HBase的存储空间,可以清理HBase中的数据。相关技术提供的一种数据清理方法包括:为分布式存储的各数据分区关联一个Map,读取数据分区中的各条数据,根据删除条件生成满足删除条件的数据所对应的删除标记,将删除标记输出至Resucer中,此后在Resucer阶段汇总所有的删除标记,并合并不具备删除标记的数据。
由上述方案可知,上述数据清理方法需要先读取所有数据,数据清理的性能低下。同时,由于数据清理的性能低下,因此数据清理持续的时间较长,影响服务性能。
发明内容
为了解决相关技术中电源的输入电压的范围较窄的问题,本申请实施例提供了一种数据清理方法和装置。
第一方面,提供了一种数据清理方法,该方法用于清理分布式数据库中的数据,该方法包括:
获取数据清理时间,所述数据清理时间为历史接收到数据清理请求时记录的时间,所述数据清理请求用于清理所述分布式数据库中满足清理条件的数据;
获取所述分布式数据库中不满足所述清理条件的数据,以及满足所述清理条件但数据存储时间晚于所述数据清理时间的数据;
在所述分布式数据库中合并获取到的所述数据。
通过获取数据清理时间,数据清理时间为历史接收到数据清理请求时记录的时间,数据清理请求用于清理分布式数据库中满足清理条件的数据;进而仅获取不满足清理条件的数据,以及满足清理条件但数据存储时间晚于数据清理时间的数据,合并获取到的数据;解决了现有技术中数据清理的性能低下以及可能会影响服务性能的问题,达到了可以提高数据清理的性能的效果。
在第一方面的第一种可能的实现方式中,所述分布式数据库包括n个数据文件,n为大于等于2的整数,所述清理条件包括清理全表的数据;
所述获取所述分布式数据库中不满足所述清理条件的数据,以及满足所述清理条件但数据存储时间晚于所述数据清理时间的数据,包括:
对于所述n个文件中的每个文件,获取所述文件中的各条数据所对应的最大时间戳以及最小时间戳;
若所述最大时间戳早于所述数据清理时间,则跳过所述文件;
若所述最大时间戳晚于所述数据清理时间且所述最小时间戳早于所述数据清理时间,则遍历所述文件中的各条数据,读取时间戳晚于所述数据清理时间的数据;
若所述最小时间戳晚于所述数据清理时间,则读取所述文件中的各条数据。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取数据清理时间之前,所述方法还包括:
接收所述数据清理请求;
在所述全表所对应的属性描述文件中,将接收到所述数据清理请求的时间记录为所述数据清理时间;
所述获取数据清理时间,包括:
从所述属性描述文件中读取所述数据清理时间。
在第一方面的第三种可能的实现方式,所述分布式数据库包括n个数据文件,n为大于等于2的整数,所述清理条件包括清理全表中预设标签的数据;
所述获取所述分布式数据库中不满足所述清理条件的数据,以及满足所述清理条件但数据存储时间晚于所述数据清理时间的数据,包括:
对于所述n个文件中的每个文件,获取所述文件中的各条数据所对应的最大时间戳以及最小时间戳;
若所述最大时间戳早于所述数据清理时间,则读取所述文件中除所述预设标签之外的其他标签的数据;
若所述最大时间戳晚于所述数据清理时间且所述最小时间戳早于所述数据清理时间,则遍历所述文件中的各条数据,读取时间戳早于所述数据清理时间的各条数据中除所述预设标签之外的其他标签的数据,且读取时间戳晚于所述数据清理时间的数据;
若所述最小时间戳晚于所述数据清理时间,则读取所述文件中的各条数据。
结合第三种可能的实现方式,在第四种可能的实现方式中,所述获取数据清理时间之前,所述方法还包括:
接收所述数据清理请求,所述数据清理请求用于请求清理预设标签的数据;
在所述预设标签所对应的属性描述文件中,将接收到所述数据清理请求的时间记录为所述数据清理时间;
所述获取数据清理时间,包括:
从所述属性描述文件中读取所述数据清理时间。
结合第一方面或者第一方面的上述各种可能的实现方式,在第五种可能的实现方式中,所述获取数据清理时间之前,还包括:
接收数据获取请求;
在接收到所述数据获取请求之后,获取所述数据清理时间。
结合第一方面或者第一方面的上述各种可能的实现方式,在第六种可能的实现方式中,所述在所述分布式数据库中合并获取到的所述数据,包括:
在满足数据合并条件时,在所述分布式数据库中合并获取到的所述数据;所述数据合并条件包括:获取到的所述数据所属的文件的总个数达到预设个数,或者,接收到数据合并请求。
第二方面,提供了一种数据清理装置,该装置包括至少一个单元,该至少一个单元用于实现上述第一方面所提供的数据清理方法。
附图说明
图1是本申请一个实施例提供的一个Table中包含的各个Region的示意图;
图2是本申请一个实施例提供的数据清理方法的方法流程图;
图3是本申请一个实施例提供的数据清理方法的方法流程图;
图4是本申请一个实施例提供的合并文件时的示意图;
图5是本申请一个实施例提供的数据清理方法的方法流程图;
图6和图7是本申请一个实施例提供的数据清理装置的示意图。
具体实施方式
本文所提及的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
在本文提及的“模块”通常是指存储在存储器中的能够实现某些功能的程序或指令;在本文中提及的“单元”通常是指按照逻辑划分的功能性结构,该“单元”可以由纯硬件实现,或者,软硬件的结合实现。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下述各个实施例提供的数据清理方法用于清理分布式数据库中的数据,分布式数据库是指在多个文件中分布式存储数据的数据库。该分布式数据库可以为Hbase(HadoopDatabase,Hadoop数据库)、Mongo数据库(Mongo Database,MongoDB)、Volt数据库(VoltDatabase,VoltDB)、和ScaleBase等,以下除特殊说明外,均以分布式数据库为Hbase数据库来举例说明。
通常情况下,在分布式数据库中,数据均采用KeyValue(键值)的存储方式进行存储,也即将所要存储的数据存储在Value部分,然后构建Key用于查询对应的Value。比如,在网上交易系统中使用分布式存储系统来存储数据,则Key和Value可以为:
Key:用户编码+交易时间
Value:交易的详细信息。
实际实现时,数据以KeyValue的存储方式存储时,通常按照Key的字典顺序排序进而保证同一用户的数据相邻存储。比如,Key为“abc”,“a”,“bdf”,“cdf”,“defg”的各个元素字典排序后的结果为:“a”,“abc”,“bdf”,“cdf”,“defg”。
通常情况下,一个KeyValue代表一个独立的列,KeyValue中包含Key、ColumnFamily、Qualifier、Value、Type、Timestamp等关键信息:
Key:用户数据RowKey,被用来识别和查找对应的数据记录。Key值相同的多个KeyValue可以认为是属于同一行的记录。
ColumnFamily:一个ColumnFamily包含一个或多个列(KeyValue),每一个ColumnFamily在底层存储上,都是独立的路径。可以理解成不同的ColumnFamily在物理存储上是隔离的。
Qualifier:一个Qualifier代表着某一个ColumnFamily下的某个KeyValue的列名。
Value:存放列中对应的数据。
Type(类型):表示这条记录是一个新增操作还是删除操作。
Timestamp(时间戳):这条记录产生的时间戳。
比如,请参考表1,其示出了存储的一种可能的表。
表1
其中,表1中ID(Identity,身份)的列在KeyValue中并不存在,本实施例仅以描述方便增加了该列。
基于表1,假设1498203273这一时间点,删除了R001的I:NAME一列,则会在表中将会增加一条记录,增加记录之后的表格更新为表2。
Key ColumnFamily Qualifier Value Type Timestamp ID
R001 I NAME Wang ADD 1498201273 1
ROO1 I NAME DELETE 1498203273 7
R001 I AGE 20 ADD 1498201273 2
R001 Z ADDR GuangDong ADD 1498201273 3
R002 I NAME Li ADD 1498201393 4
R002 I AGE 30 ADD 1498201393 5
R002 Z ADDR ShanDong ADD 1498201393 6
表2
正常的数据读取流程中,同一行中,对于相同的列(相同的ColumnFamily以及相同的Qualifier),只有时间戳最新的数据才会被读取出来。比如,结合表2,由于ID为7的KeyValue的Timestamp比起ID为1的KeyValue的Timestamp更新,因此,ID为1的这个KeyValue将会被覆盖,正常的读取流程中将不会被读取到,相当于ID为1的KeyValue已经被删除掉。
假设,在1498215273这一时间点,又被写入了一条新的KeyValue,写入之后的表格为表3。
表3
结合表3,新写入的这个KeyValue(ID为8对应的KeyValue)在读取时将会被读取到。
并且,为了便于理解,下述先对Hbase数据库中所涉及的相关概念做简单介绍。
Table(表):一个Table用来存放一类用户数据,例如,使用一个名为UserInfo的Table来存储用户基础信息;使用一个名为Transactions的Table来存储用户的交易记录明细信息。
一个Table中可能包含海量的数据,为了实现分布存储,当前一种比较常见的方式是将一个Table按照记录的Key值的字典顺序切割生成多个子表来进行管理和维护,这个子表就是Region。我们可以这样定义Region(子表):一个Region是指一些连续行的集合(也即子表是一个具有起始Key和结束Key的Key值区间)。通常情况下,一个Table由一个或多个Region构成。比如,请参考图1,其示出了一个Table中的M个Region。其中,图1中Region-1中的Key-A代表着在字典顺序上一个无穷小的值,而Region-M中的Key-Y则代表着在字典顺序上一个无穷大的值。
可选地,Region是分布式存储以及负载均衡的最小单元,Region在增大到一定程度后,会自动分裂成多个Region。
Flush(冲刷):分布式数据库在写数据时,数据会同时写入WAL(Write-AheadLoggin,预写日志系统)和Region的内存中。WAL固化到磁盘用来保证数据的可靠性,Region内存中的数据的数据量在达到预设数据量或者在接收到触发请求时,Region内存中的数据会Flush到磁盘上,形成HFile,同时在其元数据中记录了包含的数据的时间戳范围。
Compaction(合并):分布式数据库持续写数据时,由于Flush的原因,磁盘上会存在大量的HFile,影响到读数据的性能。所以在HFile的个数达到预设个数或者接收到触发请求时会执行Compaction流程,将多个HFile合并成一个HFile。实际实现时,Compaction分为两种类型,一种为Minor Compaction,一种为Major Compaction。Minor Compaction的合并范围较小,合并时不会执行清理数据的操作,而Major Compaction往往是针对所有文件的合并,合并时会清理已经过期的数据或者超出预设版本数的数据,下述实施例中均以采用Major Compaction进行合并来举例说明。
请参考图2,其示出了本申请一个实施例提供的数据清理方法的方法流程图,如图2所述,该数据清理方法可以包括如下步骤:
步骤201,获取数据清理时间,数据清理时间为历史接收到数据清理请求时记录的时间,数据清理请求用于清理分布式数据库中满足清理条件的数据。
步骤202,获取分布式数据库中不满足清理条件的数据,以及满足清理条件但数据存储时间晚于数据清理时间的数据。
步骤203,在分布式数据库中合并获取到的数据。
综上所述,本实施例提供的数据清理方法,通过获取数据清理时间,数据清理时间为历史接收到数据清理请求时记录的时间,数据清理请求用于清理分布式数据库中满足清理条件的数据;进而仅获取不满足清理条件的数据,以及满足清理条件但数据存储时间晚于数据清理时间的数据,合并获取到的数据;解决了现有技术中数据清理的性能低下以及可能会影响服务性能的问题,达到了可以提高数据清理的性能的效果。
在上述实施例中,清理条件可以包括清理全表中的数据,或者,清理预设标签的数据,且基于清理条件的不同,上述步骤202的具体实现也会有所不同,因此,下述将在不同实施例中分别对上述两种情况做详细说明。
请参考图3,其示出了本申请一个实施例提供的数据清理方法的方法流程图,本实施例以清理条件包括清理全表中的数据来举例说明。如图3所述,该数据清理方法可以包括如下步骤:
步骤301,接收数据清理请求,该数据清理请求用于请求清理全表中的数据。
全表包括当前已经存储的KeyValue的全部内容。
比如,请参考表4,其示出了已经存储的一种可能的数据。
表4
结合表4,在接收到数据清理请求时,即为清理表4的全部内容。并且,假设上述数据均存储在HFile1中,则结合表4可知,HFile1中数据的最小时间戳为1498200000,最大时间戳为1498200100。
步骤302,记录接收到该数据清理请求的时间为数据清理时间。
在接收到数据清理请求时,服务器可以记录当前的时间,比如,记录的时间戳为1498211111,将记录的时间作为数据清理时间。
可选地,该数据清理时间可以记录在全表的属性描述文件中,该属性描述文件存储在HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)目录中。实际实现时,每个表设置有一个独立的属性描述文件。当然,属性描述文件中除了数据清理时间之外还可以包括其他内容,在此不再赘述。
可选地,属性描述文件中通常以KeyValue的形式存在,比如,通常以如下形式存在:
Property Key:explicitExpirationTs
Property Value:1498211111
上述仅以在属性描述文件中存储数据清理时间为例,可选地,服务器还可以在其他文件只能怪存储该数据清理时间,对此并不做限定。
步骤303,获取数据清理时间。
可选地,若步骤302中在属性描述文件中存储有该数据清理时间,则服务器可以从该属性描述文件中读取存储的数据清理时间。
可选地,服务器可以在接收到获取已经存储的文件的获取请求时,获取该数据清理时间;或者,在预定时间到达时获取该数据清理时间。其中,预定时间可以为预先设置的某一时刻,如每天24:00;也可以为每隔预定时间间隔的时间,如为每隔12小时的时间。
步骤304,获取分布式数据库中不满足清理条件的数据,以及满足清理条件但数据存储时间晚于数据清理时间的数据。
通常情况下,在步骤302和步骤303之间会间隔一定时间段,在该时间段内服务器还可能会生成其他文件,比如,在1498219999时刻又新产生了如下文件HFile2,并包含了表5所示的数据:
表5
结合表5可知,HFile2中的最小时间戳MinTS为1498210000,最大时间戳MaxTS为1498219900。
可选地,服务器在时间点1498229999又新产生了如下文件HFile3,并包含了表6所示的数据:
Key ColumnFamily Qualifier Value Type Timestamp
R201 I NAME Wang1 ADD 1498220000
R201 I AGE 20 ADD 1498220000
R201 Z ADDR GuangDong ADD 1498220000
R202 I NAME Li2 ADD 1498220001
R202 I AGE 32 ADD 1498220001
R202 Z ADDR ShanDong ADD 1498220001
.... ... ... ... ... .....
R299 I NAME Zhong ADD 1498220299
R299 I AGE 30 ADD 1498220299
R299 Z ADDR GuangDong ADD 1498220299
表6
HFile3中的最小时间戳MinTS为1498220000,最大时间戳MaxTS为1498220299。
因此,本步骤可以包括:
(1)、对于n个文件中的每个文件,获取文件中的各条数据所对应的最大时间戳以及最小时间戳。
对于每个HFile文件,服务器获取该文件的最大时间戳和最小时间戳。比如,结合上述举例,对于HFile1,服务器获取得到的最大时间戳为1498200100,最小时间戳为1498200000;对于HFile2,服务器获取得到的最大时间戳为1498200100,最小时间戳为1498200000;对于HFile2,服务器获取得到的最大时间戳为1498200100,最小时间戳为1498200000。
此后,服务器可以比较数据清理时间和获取到的每个HFile文件的最大时间戳和最小时间戳之间的大小关系,根据比较结果适应性的执行下述对应的步骤。
(2)、若最大时间戳早于数据清理时间,则跳过文件。
若文件的最大时间戳早于数据清理时间,则由于数据清理请求清理全表数据,因此,在接收到数据清理请求时会清理该文件中的全部数据,也即该文件中的数据已经失效,此时,服务器可以跳过该文件。
比如,仍然以上述所说的3个HFile为例,由于HFile1的最大时间戳1498200100早于数据清理时间1498211111,因此服务器跳过该HFile1。
(3)、若最大时间戳晚于数据清理时间且最小时间戳早于数据清理时间,则遍历文件中的各条数据,读取时间戳晚于数据清理时间的数据。
若最大时间戳晚于数据清理时间且最小时间戳早于数据清理时间,则说明该文件中的部分数据已经失效,而部分数据仍然有效,此时服务器可以遍历该文件中的各条数据,比较每条数据的时间戳是否晚于数据清理时间,若是则读取该条数据,反之,跳过该条数据并继续遍历下一条数据。
比如,仍然以上述所说的3个HFile为例,由于HFile2的最大时间戳1498219900晚于数据清理时间1498211111,而最小时间戳1498210000早于数据清理时间1498211111,因此,服务器可以遍历HFile2中的各条KeyValue,并读取时间戳晚于1498211111的KeyValue。
(4)、若最小时间戳晚于数据清理时间,则读取文件中的各条数据。
若最小时间戳晚于数据清理时间,则说明该HFile中的数据均是在数据清理之后存储的,也即该HFile中没有过期的数据,因此,服务器可以读取文件中的各条数据。
步骤305,在分布式数据库中合并获取到的数据。
可选地,服务器在获取到数据之后,可以自动合并获取到的数据。然而,为了降低处理复杂度,服务器可以在满足数据合并条件时,在分布式数据库中合并获取到的数据。其中,数据合并条件包括:获取到的数据所属的文件的总个数达到预设个数,或者,接收到数据合并请求。
以数据合并条件包括获取到的数据所属的文件的总个数达到预设个数为例,在获取到数据之后,服务器可以统计数据所属的文件的总个数,然后在总个数达到预设个数时执行Major Compaction。
以HBase中的HFile包括上述所说的HFile1、HFile2和HFile3为例,则请参考图4,其示出了一种可能的合并示意图。其中,图4仅以合并后为一个HFile来示意性说明,实际实现时,还可以合并为多个HFile文件,只是说合并后的HFile中仅包括步骤304中读取到的数据,对其合并后的HFile的个数并不做限定。
综上所述,本实施例提供的数据清理方法,通过获取数据清理时间,数据清理时间为历史接收到数据清理请求时记录的时间,数据清理请求用于清理分布式数据库中满足清理条件的数据;进而仅获取不满足清理条件的数据,以及满足清理条件但数据存储时间晚于数据清理时间的数据,合并获取到的数据;解决了现有技术中数据清理的性能低下以及可能会影响服务性能的问题,达到了可以提高数据清理的性能的效果。
请参考图5,其示出了本申请一个实施例提供的数据清理方法的方法流程图,本实施例以清理条件包括清理预设标签的数据来举例说明。如图3所述,该数据清理方法可以包括如下步骤:
步骤501,接收数据清理请求,数据清理请求用于请求清理预设标签的数据。
其中,该预设标签可以为一个,也可以为至少两个。
在接收到数据清理请求时,已经存储有数据。比如,请参考表7,其示出了已经存储的一种可能的数据。
表7
结合表7,若需要清理NAME列的数据,则该数据清理请求中携带有“NAME”;若需要清理NAME列和AGE列的数据,则该数据清理请求中携带有“NAME&AGE”。
步骤502,记录接收到该数据清理请求的时间为数据清理时间。
步骤302中在全表的属性描述文件中存储该数据清理时间,而在本步骤中,由于只删除部分标签所对应的数据,因此,服务器可以在预设标签所对应的属性描述文件中存储该数据清理时间。与全表的属性描述文件类似的是,预设标签所对应的属性描述文件可以以KeyValue的形式存储,比如,通常以如下形式存储:
Property Key:explicitExpirationColumnAndTS
Property Value:{COLUMNS:[I:NAME],TS:1498211111}
可选地,上述仅以预设标签为一个来举例,实际实现时,在预设标签为至少两个时,上述举例中的COLUMNS中可以相应的包括至少两个预设标签。并且,如上述举例所述,在表示所需删除的预设标签时通过列所属的ColumnFamily以及列名同时表示,进而明确限定得到所需删除的数据,在此不再赘述。
步骤503,获取数据清理时间。
步骤502和步骤503与上述实施例中的步骤302和步骤303类似,在此不再赘述。
步骤504,获取分布式数据库中不满足清理条件的数据,以及满足清理条件但数据存储时间晚于数据清理时间的数据。
与上述实施例类似,在步骤502和步骤503之间会间隔一定时间段,在该时间段内服务器还可能会生成其他文件,比如,在1498219999时刻又新产生了如下文件HFile2,并包含了表8所示的数据:
Key ColumnFamily Qualifier Value Type Timestamp
R101 I NAME Wang1 ADD 1498210000
R101 I AGE 20 ADD 1498210000
R101 Z ADDR GuangDong ADD 1498210000
R102 I NAME Li2 ADD 1498220000
R102 I AGE 32 ADD 1498220000
R102 Z ADDR ShanDong ADD 1498220000
.... ... ... ... ... .....
R199 I NAME Zhong ADD 1498219900
R199 I AGE 30 ADD 1498219900
R199 Z ADDR GuangDong ADD 1498219900
表8
结合表8可知,HFile2中的最小时间戳MinTS为1498210000,最大时间戳MaxTS为149821990。
可选地,服务器在时间点1498229999又新产生了如下文件HFile3,并包含了表9所示的数据:
Key ColumnFamily Qualifier Value Type Timestamp
R201 I NAME Wang1 ADD 1498220000
R201 I AGE 20 ADD 1498220000
R201 Z ADDR GuangDong ADD 1498220000
R202 I NAME Li2 ADD 1498220001
R202 I AGE 32 ADD 1498220001
R202 Z ADDR ShanDong ADD 1498220001
.... ... ... ... ... .....
R299 I NAME Zhong ADD 1498220299
R299 I AGE 30 ADD 1498220299
R299 Z ADDR GuangDong ADD 1498220299
表9
HFile3中的最小时间戳MinTS为1498220000,最大时间戳MaxTS为1498220299。
因此,本步骤可以包括:
(1)、对于n个文件中的每个文件,获取文件中的各条数据所对应的最大时间戳以及最小时间戳。
本步骤与上述实施例中的实现类似,在此不再赘述。
(2)、若最大时间戳早于数据清理时间,则读取文件中除预设标签之外的其他标签的数据。
若最大时间戳在于数据清理时间,则说明该文件中的预设标签的数据已经在数据清理时间所对应的时刻清理,也即文件中预设标签的数据已经失效,因此此时,服务器可以读取该文件中除预设标签之外的其他标签的数据。
(3)、若最大时间戳晚于数据清理时间且最小时间戳早于数据清理时间,则遍历文件中的各条数据,读取时间戳早于数据清理时间的各条数据中除预设标签之外的其他标签的数据,且读取时间戳晚于数据清理时间的数据。
若最大时间戳晚于数据清理时间且最小时间戳早于数据清理时间,则说明该文件中部分数据中的预设标签的数据已经失效,因此服务器可以遍历文件中的各条数据,读取时间戳晚于数据清理时间的各条数据,并且仅读取时间戳早于数据清理时间的各条数据中除预设标签之外的其他标签的数据。可选地,实际读取过程中,服务器可以仅判断每个预设标签的列的数据的时间戳与数据清理时间的大小关系,若早于则丢弃,而若晚于则读取,并且对于除预设标签之外的其他标签的数据,服务器可以直接读取。
(4)、若最小时间戳晚于数据清理时间,则读取文件中的各条数据。
若文件的最小时间戳晚于数据清理时间,则说明该文件中的数据均未失效,此时服务器可以读取文件中的各条数据。
步骤505,在分布式数据库中合并获取到的数据。
可选地,本步骤与上述实施例中的步骤305的实现类似,在此不再赘述。
综上所述,本实施例提供的数据清理方法,通过获取数据清理时间,数据清理时间为历史接收到数据清理请求时记录的时间,数据清理请求用于清理分布式数据库中满足清理条件的数据;进而仅获取不满足清理条件的数据,以及满足清理条件但数据存储时间晚于数据清理时间的数据,合并获取到的数据;解决了现有技术中数据清理的性能低下以及可能会影响服务性能的问题,达到了可以提高数据清理的性能的效果。
图6所示为本发明实施例提供的数据清理装置的示意图。数据清理装置600可以是计算机设备,该计算机设备可以是上述的服务器(例如图2所示的服务器220),数据清理装置600包括至少一个处理器601,通信总线602,存储器603以及至少一个通信接口604。
处理器601可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线602可包括一通路,在上述组件之间传送信息。所述通信接口604,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器603可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器603用于存储执行本发明方案的程序代码,并由处理器601来控制执行。所述处理器601用于执行所述存储器603中存储的程序代码。
在具体实现中,作为一种实施例,处理器601可以包括一个或多个CPU,例如图6中的CPU0和CPU1。
在具体实现中,作为一种实施例,数据清理装置600可以包括多个处理器,例如图6中的处理器601和处理器608。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,数据清理装置600还可以包括输出设备605和输入设备606。输出设备605和处理器601通信,可以以多种方式来显示信息。例如,输出设备605可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emittingdiode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备606和处理器601通信,可以以多种方式接受用户的输入。例如,输入设备606可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的数据清理装置600可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,数据清理装置600可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图6中类似结构的设备。本发明实施例不限定数据清理装置600的类型。
数据清理装置的存储器中存储了一个或多个软件模块。数据清理装置可以通过处理器以及存储器中的程序代码来实现软件模块,实现上述实施例所说的数据清理方法。
请惨图7,其示出了本申请一个实施例提供的数据清理装置的示意图,如图7所示,该数据清理装置可以包括:获取单元710和合并单元720。
获取单元710,用于获取数据清理时间,所述数据清理时间为历史接收到数据清理请求时记录的时间,所述数据清理请求用于清理所述分布式数据库中满足清理条件的数据;
所述获取单元710,还用于获取所述分布式数据库中不满足所述清理条件的数据,以及满足所述清理条件但数据存储时间晚于所述数据清理时间的数据;
合并单元720,用于在所述分布式数据库中合并获取到的所述数据。
综上所述,本实施例提供的数据清理装置,通过获取数据清理时间,数据清理时间为历史接收到数据清理请求时记录的时间,数据清理请求用于清理分布式数据库中满足清理条件的数据;进而仅获取不满足清理条件的数据,以及满足清理条件但数据存储时间晚于数据清理时间的数据,合并获取到的数据;解决了现有技术中数据清理的性能低下以及可能会影响服务性能的问题,达到了可以提高数据清理的性能的效果。
可选地,所述分布式数据库包括n个数据文件,n为大于等于2的整数,所述清理条件包括清理全表的数据;
所述获取单元710,还用于:
对于所述n个文件中的每个文件,获取所述文件中的各条数据所对应的最大时间戳以及最小时间戳;
若所述最大时间戳早于所述数据清理时间,则跳过所述文件;
若所述最大时间戳晚于所述数据清理时间且所述最小时间戳早于所述数据清理时间,则遍历所述文件中的各条数据,读取时间戳晚于所述数据清理时间的数据;
若所述最小时间戳晚于所述数据清理时间,则读取所述文件中的各条数据。
可选地,所述装置还包括:
接收单元,用于在所述获取单元获取数据清理时间之前,接收所述数据清理请求;
记录单元,用于在所述全表所对应的属性描述文件中,将接收到所述数据清理请求的时间记录为所述数据清理时间;
所述获取单元710,还用于:
从所述属性描述文件中读取所述数据清理时间。
可选地,所述分布式数据库包括n个数据文件,n为大于等于2的整数,所述清理条件包括清理全表中预设标签的数据;
所述获取单元710,还用于:
对于所述n个文件中的每个文件,获取所述文件中的各条数据所对应的最大时间戳以及最小时间戳;
若所述最大时间戳早于所述数据清理时间,则读取所述文件中除所述预设标签之外的其他标签的数据;
若所述最大时间戳晚于所述数据清理时间且所述最小时间戳早于所述数据清理时间,则遍历所述文件中的各条数据,读取时间戳早于所述数据清理时间的各条数据中除所述预设标签之外的其他标签的数据,且读取时间戳晚于所述数据清理时间的数据;
若所述最小时间戳晚于所述数据清理时间,则读取所述文件中的各条数据。
可选地,所述装置还包括:
接收单元,用于在所述获取单元获取所述数据清理时间之前,接收所述数据清理请求,所述数据清理请求用于请求清理预设标签的数据;
记录单元,用于在所述预设标签所对应的属性描述文件中,将接收到所述数据清理请求的时间记录为所述数据清理时间;
所述获取单元710,还用于从所述属性描述文件中读取所述数据清理时间。
可选地,所述获取单元710,还用于:
接收数据获取请求;
在接收到所述数据获取请求之后,获取所述数据清理时间。
可选地,所述合并单元720,还用于:
在满足数据合并条件时,在所述分布式数据库中合并获取到的所述数据;所述数据合并条件包括:获取到的所述数据所属的文件的总个数达到预设个数,或者,接收到数据合并请求。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
本领域普通技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (14)

1.一种数据清理方法,其特征在于,用于清理分布式数据库中的数据,所述方法包括:
获取数据清理时间,所述数据清理时间为历史接收到数据清理请求时记录的时间,所述数据清理请求用于清理所述分布式数据库中满足清理条件的数据;
获取所述分布式数据库中不满足所述清理条件的数据,以及满足所述清理条件但数据存储时间晚于所述数据清理时间的数据;
在所述分布式数据库中合并获取到的所述数据。
2.根据权利要求1所述的方法,其特征在于,所述分布式数据库包括n个数据文件,n为大于等于2的整数,所述清理条件包括清理全表的数据;
所述获取所述分布式数据库中不满足所述清理条件的数据,以及满足所述清理条件但数据存储时间晚于所述数据清理时间的数据,包括:
对于所述n个文件中的每个文件,获取所述文件中的各条数据所对应的最大时间戳以及最小时间戳;
若所述最大时间戳早于所述数据清理时间,则跳过所述文件;
若所述最大时间戳晚于所述数据清理时间且所述最小时间戳早于所述数据清理时间,则遍历所述文件中的各条数据,读取时间戳晚于所述数据清理时间的数据;
若所述最小时间戳晚于所述数据清理时间,则读取所述文件中的各条数据。
3.根据权利要求2所述的方法,其特征在于,所述获取数据清理时间之前,所述方法还包括:
接收所述数据清理请求;
在所述全表所对应的属性描述文件中,将接收到所述数据清理请求的时间记录为所述数据清理时间;
所述获取数据清理时间,包括:
从所述属性描述文件中读取所述数据清理时间。
4.根据权利要求1所述的方法,其特征在于,所述分布式数据库包括n个数据文件,n为大于等于2的整数,所述清理条件包括清理全表中预设标签的数据;
所述获取所述分布式数据库中不满足所述清理条件的数据,以及满足所述清理条件但数据存储时间晚于所述数据清理时间的数据,包括:
对于所述n个文件中的每个文件,获取所述文件中的各条数据所对应的最大时间戳以及最小时间戳;
若所述最大时间戳早于所述数据清理时间,则读取所述文件中除所述预设标签之外的其他标签的数据;
若所述最大时间戳晚于所述数据清理时间且所述最小时间戳早于所述数据清理时间,则遍历所述文件中的各条数据,读取时间戳早于所述数据清理时间的各条数据中除所述预设标签之外的其他标签的数据,且读取时间戳晚于所述数据清理时间的数据;
若所述最小时间戳晚于所述数据清理时间,则读取所述文件中的各条数据。
5.根据权利要求4所述的方法,其特征在于,所述获取数据清理时间之前,所述方法还包括:
接收所述数据清理请求,所述数据清理请求用于请求清理预设标签的数据;
在所述预设标签所对应的属性描述文件中,将接收到所述数据清理请求的时间记录为所述数据清理时间;
所述获取数据清理时间,包括:
从所述属性描述文件中读取所述数据清理时间。
6.根据权利要求1至5任一所述的方法,其特征在于,所述获取数据清理时间之前,还包括:
接收数据获取请求;
在接收到所述数据获取请求之后,获取所述数据清理时间。
7.根据权利要求1至5任一所述的方法,其特征在于,所述在所述分布式数据库中合并获取到的所述数据,包括:
在满足数据合并条件时,在所述分布式数据库中合并获取到的所述数据;所述数据合并条件包括:获取到的所述数据所属的文件的总个数达到预设个数,或者,接收到数据合并请求。
8.一种数据清理装置,其特征在于,用于清理分布式数据库中的数据,所述装置包括:
获取单元,用于获取数据清理时间,所述数据清理时间为历史接收到数据清理请求时记录的时间,所述数据清理请求用于清理所述分布式数据库中满足清理条件的数据;
所述获取单元,还用于获取所述分布式数据库中不满足所述清理条件的数据,以及满足所述清理条件但数据存储时间晚于所述数据清理时间的数据;
合并单元,用于在所述分布式数据库中合并获取到的所述数据。
9.根据权利要求8所述的装置,其特征在于,所述分布式数据库包括n个数据文件,n为大于等于2的整数,所述清理条件包括清理全表的数据;
所述获取单元,还用于:
对于所述n个文件中的每个文件,获取所述文件中的各条数据所对应的最大时间戳以及最小时间戳;
若所述最大时间戳早于所述数据清理时间,则跳过所述文件;
若所述最大时间戳晚于所述数据清理时间且所述最小时间戳早于所述数据清理时间,则遍历所述文件中的各条数据,读取时间戳晚于所述数据清理时间的数据;
若所述最小时间戳晚于所述数据清理时间,则读取所述文件中的各条数据。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
接收单元,用于在所述获取单元获取数据清理时间之前,接收所述数据清理请求;
记录单元,用于在所述全表所对应的属性描述文件中,将接收到所述数据清理请求的时间记录为所述数据清理时间;
所述获取单元,还用于:
从所述属性描述文件中读取所述数据清理时间。
11.根据权利要求8所述的装置,其特征在于,所述分布式数据库包括n个数据文件,n为大于等于2的整数,所述清理条件包括清理全表中预设标签的数据;
所述获取单元,还用于:
对于所述n个文件中的每个文件,获取所述文件中的各条数据所对应的最大时间戳以及最小时间戳;
若所述最大时间戳早于所述数据清理时间,则读取所述文件中除所述预设标签之外的其他标签的数据;
若所述最大时间戳晚于所述数据清理时间且所述最小时间戳早于所述数据清理时间,则遍历所述文件中的各条数据,读取时间戳早于所述数据清理时间的各条数据中除所述预设标签之外的其他标签的数据,且读取时间戳晚于所述数据清理时间的数据;
若所述最小时间戳晚于所述数据清理时间,则读取所述文件中的各条数据。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
接收单元,用于在所述获取单元获取所述数据清理时间之前,接收所述数据清理请求,所述数据清理请求用于请求清理预设标签的数据;
记录单元,用于在所述预设标签所对应的属性描述文件中,将接收到所述数据清理请求的时间记录为所述数据清理时间;
所述获取单元,还用于从所述属性描述文件中读取所述数据清理时间。
13.根据权利要求8至12任一所述的装置,其特征在于,所述获取单元,还用于:
接收数据获取请求;
在接收到所述数据获取请求之后,获取所述数据清理时间。
14.根据权利要求8至12任一所述的装置,其特征在于,所述合并单元,还用于:
在满足数据合并条件时,在所述分布式数据库中合并获取到的所述数据;所述数据合并条件包括:获取到的所述数据所属的文件的总个数达到预设个数,或者,接收到数据合并请求。
CN201710693659.3A 2017-08-14 2017-08-14 数据清理方法和装置 Active CN107609038B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710693659.3A CN107609038B (zh) 2017-08-14 2017-08-14 数据清理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710693659.3A CN107609038B (zh) 2017-08-14 2017-08-14 数据清理方法和装置

Publications (2)

Publication Number Publication Date
CN107609038A true CN107609038A (zh) 2018-01-19
CN107609038B CN107609038B (zh) 2020-08-07

Family

ID=61063929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710693659.3A Active CN107609038B (zh) 2017-08-14 2017-08-14 数据清理方法和装置

Country Status (1)

Country Link
CN (1) CN107609038B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111665773A (zh) * 2020-07-02 2020-09-15 长沙钛合电子设备有限公司 物联网系统及构建方法
CN113268483A (zh) * 2021-05-24 2021-08-17 北京金山云网络技术有限公司 请求处理方法和装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100057788A1 (en) * 2008-08-29 2010-03-04 International Business Machines Corporation Method, system, and computer program product for implementing back up history cleanup operations for a database management system
CN104317740A (zh) * 2014-11-13 2015-01-28 北京奇虎科技有限公司 基于沙箱技术的缓存目录/文件的清理方法和装置
CN105677685A (zh) * 2014-11-21 2016-06-15 中芯国际集成电路制造(天津)有限公司 数据库系统及于数据库系统中存储和查询数据的方法
CN106802928A (zh) * 2016-12-26 2017-06-06 厦门亿力吉奥信息科技有限公司 电网历史数据管理方法及其系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100057788A1 (en) * 2008-08-29 2010-03-04 International Business Machines Corporation Method, system, and computer program product for implementing back up history cleanup operations for a database management system
CN104317740A (zh) * 2014-11-13 2015-01-28 北京奇虎科技有限公司 基于沙箱技术的缓存目录/文件的清理方法和装置
CN105677685A (zh) * 2014-11-21 2016-06-15 中芯国际集成电路制造(天津)有限公司 数据库系统及于数据库系统中存储和查询数据的方法
CN106802928A (zh) * 2016-12-26 2017-06-06 厦门亿力吉奥信息科技有限公司 电网历史数据管理方法及其系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111665773A (zh) * 2020-07-02 2020-09-15 长沙钛合电子设备有限公司 物联网系统及构建方法
CN111665773B (zh) * 2020-07-02 2021-10-26 长沙钛合电子设备有限公司 物联网系统及构建方法
CN113268483A (zh) * 2021-05-24 2021-08-17 北京金山云网络技术有限公司 请求处理方法和装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN107609038B (zh) 2020-08-07

Similar Documents

Publication Publication Date Title
US11403321B2 (en) System and method for improved performance in a multidimensional database environment
US10180992B2 (en) Atomic updating of graph database index structures
CN103246595B (zh) 应用程序管理方法、装置、服务器及终端设备
US11977532B2 (en) Log record identification using aggregated log indexes
EP3238106A1 (en) Compaction policy
CN102129425B (zh) 数据仓库中大对象集合表的访问方法及装置
CN111339073A (zh) 实时数据处理方法、装置、电子设备及可读存储介质
Lai et al. Towards a framework for large-scale multimedia data storage and processing on Hadoop platform
US20170255708A1 (en) Index structures for graph databases
US10289707B2 (en) Data skipping and compression through partitioning of data
CN103902653A (zh) 一种构建数据仓库表血缘关系图的方法和装置
US20180144061A1 (en) Edge store designs for graph databases
US9235613B2 (en) Flexible partitioning of data
CN109542892A (zh) 一种实时数据库的关系化实现方法、装置及系统
CN107016115B (zh) 数据导出方法、装置、计算机可读存储介质及电子设备
US11175993B2 (en) Managing data storage system
CN110914814A (zh) 分布式存储环境的认知文件和对象管理
US10235401B2 (en) Method and system for handling binary large objects
CN110807038A (zh) 一种基于Elasticsearch的CMDB信息全文检索方法
CN107609038A (zh) 数据清理方法和装置
CN100489855C (zh) 使用最少的日志条目将数据库更改记入日志的设备和方法
CN103809915B (zh) 一种磁盘文件的读写方法和装置
US10162597B1 (en) Identifying IO access pattern in unique database structures
US20180349443A1 (en) Edge store compression in graph databases
US9286348B2 (en) Dynamic search system

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220211

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221207

Address after: 518129 Huawei Headquarters Office Building 101, Wankecheng Community, Bantian Street, Longgang District, Shenzhen, Guangdong

Patentee after: Shenzhen Huawei Cloud Computing Technology Co.,Ltd.

Address before: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee before: Huawei Cloud Computing Technologies Co.,Ltd.