一种Append-Only数据库上删除和修改数据的方法及系统与流程

文档序号:17773654发布日期:2019-05-28 19:45阅读:866来源:国知局
一种Append-Only数据库上删除和修改数据的方法及系统与流程

本发明实施例涉及数据库技术领域,尤其涉及一种append-only数据库上删除和修改数据的方法及系统。



背景技术:

append-only是一种存储表示形式,它只允许将新行附加到表中,但不允许更新或删除现有行。这允许在磁盘上更紧凑的存储,因为每行不需要存储mvcc,这意味着在查询数据库时,每个事务都会看到一个数据快照,它可以保护事务不会查看可能由同一数据行上的其他并发更新引起的不一致数据。这为每个数据库会话提供了事务隔离。

mvcc通过避开传统数据库系统的显式锁定方法,最小化锁争用,以便在多用户环境中实现合理的性能。

使用mvcc并发控制模型而不是锁定的主要优点是在获取的mvcc锁中查询数据、读取数据与为写入数据而获取的锁不冲突,因此读操作永远不会阻塞写操作,写操作永远不会阻止读操作。这种特性使得append-only非常适合批量的数据写入,高压缩比,逻辑备份支持增量备份,因此每次记录备份到的偏移量即可。加上每次备份全量的bitmap删除标记。

append-only数据库的主要特性是为了提高大量数据写入和查询的性能,应用场景主要是针对需要高速读取大量数据的场景。

然而实际生产环境中经常会遇到某些特殊情况,需要直接在这种数据库中修改或删除数据,因此,亟需一种append-only数据库上修改或删除数据的方法。



技术实现要素:

针对上述问题,本发明实施例提供一种append-only数据库上删除和修改数据的方法及系统。

第一方面,本发明实施例提供一种append-only数据库上删除数据的方法,包括:

为每一待插入数据增加时间字段和标识字段,对于任一待插入数据,所述任一带插入数据的时间字段标识所述任一待插入数据写入到append-only数据库上的时间,所述任一待插入数据的标识字段标识所述任一待插入数据在append-only数据库上的唯一标志码;

获取删除记录表,所述删除记录表中包括所有待删除数据的时间字段和标识字段;

根据所述删除记录表中的时间字段和标识字段,对append-only数据库中的所有待删除数据进行删除。

第二方面,本发明实施例提供一种append-only数据库上修改数据的方法,包括:

为每一待插入数据增加时间字段和标识字段,对于任一待插入数据,所述任一带插入数据的时间字段标识所述任一待插入数据写入到append-only数据库上的时间,所述任一待插入数据的标识字段标识所述任一待插入数据在append-only数据库上的唯一标志码;

读取append-only数据库中待修改数据;

对所述待修改数据进行修改,并更新所述待修改数据的时间字段。

第三方面,本发明实施例提供一种append-only数据库上删除数据的系统,包括:

字段模块,用于为每一待插入数据增加时间字段和标识字段,对于任一待插入数据,所述任一带插入数据的时间字段标识所述任一待插入数据写入到append-only数据库上的时间,所述任一待插入数据的标识字段标识所述任一待插入数据在append-only数据库上的唯一标志码;

记录模块,用于获取删除记录表,所述删除记录表中包括所有待删除数据的时间字段和标识字段;

删除模块,用于根据所述删除记录表中的时间字段和标识字段,对append-only数据库中的所有待删除数据进行删除。

第四方面,本发明实施例提供一种append-only数据库上修改数据的系统,包括:

字段模块,用于为每一待插入数据增加时间字段和标识字段,对于任一待插入数据,所述任一带插入数据的时间字段标识所述任一待插入数据写入到append-only数据库上的时间,所述任一待插入数据的标识字段标识所述任一待插入数据在append-only数据库上的唯一标志码;

读取模块,用于读取append-only数据库中待修改数据;

修改模块,用于对所述待修改数据进行修改,并更新所述待修改数据的时间字段。

第五方面,本发明实施例提供一种电子设备,包括:

至少一个处理器、至少一个存储器、通信接口和总线;其中,

所述处理器、存储器、通信接口通过所述总线完成相互间的通信;

所述通信接口用于该测试设备与显示装置的通信设备之间的信息传输;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面和第二方面提供的一种append-only数据库上删除和修改数据方法。

第六方面,本发明实施例提供一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面和第二方面提供的一种append-only数据库上删除和修改数据方法。

本发明实施例提供的一种append-only数据库上删除和修改数据的方法及系统,在现有append-only数据库的情况下实现了修改删除数据的特殊需求,满足了用户的特定需求。如用户需高速存储大量日志数据,但在使用该数据过程中又需要随时能删除或修改其中的某些数据,使用此方法后能在不更换数据库的情况下满足需求。

附图说明

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

图1为本发明实施例一种append-only数据库上删除数据的方法的流程图;

图2为本发明实施例一种append-only数据库上修改数据的方法的流程图;

图3为本发明实施例一种append-only数据库上删除数据的系统的结构示意图;

图4为本发明实施例一种append-only数据库上修改数据的系统的结构示意图;

图5示例了一种电子设备的实体结构示意图。

具体实施方式

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

图1为本发明实施例一种append-only数据库上删除数据的方法的流程图,如图1所示,该方法包括:

s1,为每一待插入数据增加时间字段和标识字段,对于任一待插入数据,所述任一带插入数据的时间字段标识所述任一待插入数据写入到append-only数据库上的时间,所述任一待插入数据的标识字段标识所述任一待插入数据在append-only数据库上的唯一标志码;

s2,获取删除记录表,所述删除记录表中包括所有待删除数据的时间字段和标识字段;

s3,根据所述删除记录表中的时间字段和标识字段,对append-only数据库中的所有待删除数据进行删除。

首先对于每个待插入数据,对每个待插入数据中都要增加时间字段和标识字段,以其中一个待插入数据为例进行说明,时间字段表示该待插入数据写入到数据库中的时间,可精确到毫秒级别,标识字段标识该待插入数据在数据库中的唯一标志码,标识字段可以唯一确定数据库中的数据。

然后获取删除记录表,该删除记录表中记录了所有需要删除数据的时间字段和标识字段,然后再根据删除记录表中的时间字段和标识字段,对append-only数据库中所有待删除数据进行删除。

本发明实施例提供的一种append-only数据库上删除和修改数据的方法及系统,在现有append-only数据库的情况下实现了修改删除数据的特殊需求,满足了用户的特定需求。如用户需高速存储大量日志数据,但在使用该数据过程中又需要随时能删除或修改其中的某些数据,使用此方法后能在不更换数据库的情况下满足需求。

在上述实施例的基础上,优选地,所述根据所述删除记录表中的时间字段和标识字段,对append-only数据库中的所有待删除数据进行删除,具体包括:

根据所述删除记录表中的标识字段,确定所有待删除数据;

根据所述待删除数据的时间字段,确定所有待删除数据对应的最新值;

删除append-only数据库中所有待删除数据对应的最新值。

具体地,根据删除记录表中的标识字段,在数据库中进行查找,将找到的数据作为待删除数据,然后再根据待删除数据的时间字段,可以知道该数据的插入时间,比较该时间就知道该数据最新的值是哪一条,最后删除append-only数据库中所有待删除数据对应的最新值。

图2为本发明实施例一种append-only数据库上修改数据的方法的流程图,如图2所示,该方法包括:

s1,为每一待插入数据增加时间字段和标识字段,对于任一待插入数据,所述任一带插入数据的时间字段标识所述任一待插入数据写入到append-only数据库上的时间,所述任一待插入数据的标识字段标识所述任一待插入数据在append-only数据库上的唯一标志码;

s2,读取append-only数据库中待修改数据;

s3,对所述待修改数据进行修改,并更新所述待修改数据的时间字段。

同理地,当需要对数据库中的数据进行修改的时候,在每个待插入数据后面增加两个字段,分别为时间字段和标识字段,以其中一个待插入数据为例进行说明,时间字段表示该待插入数据写入到数据库中的时间,可精确到毫秒级别,标识字段标识该待插入数据在数据库中的唯一标志码,标识字段可以唯一确定数据库中的数据。

接着读取append-only数据库中待修改数据,对待修改数据进行修改,同时将待修改数据的修改时间来更新时间字段的值,将更新后时间字段的值重新写入到数据库中。

在上述实施例的基础上,优选地,还包括:

将所述待修改数据加入到视图表中,所述视图表中包括所述待修改数据的最新值、所述待修改数据的标识字段和所述待修改数据更新后的时间字段。

具体地,需要定制客户端,用户通过客户端修改数据时实际上是将需要修改的数据读取出来后修改,并带上新的时间字段和原来的标识字段插入到视图表中。

用户删除数据时将需要删除的数据的标识字段插入到删除记录表中。在视图表中查找两表的交集确定哪些数据是被删除的,用户在查询时将不显示改数据。

查询的时候用户实际访问的是视图表,该视图表根据标识字段和时间字段来确定某条数据的最新值,用户查询的时候某人查到最新的数据。

图3为本发明实施例一种append-only数据库上删除数据的系统的结构示意图,如图3所示,该系统包括:字段模块301、记录模块302和删除模块303,其中:

字段模块301用于为每一待插入数据增加时间字段和标识字段,对于任一待插入数据,所述任一带插入数据的时间字段标识所述任一待插入数据写入到append-only数据库上的时间,所述任一待插入数据的标识字段标识所述任一待插入数据在append-only数据库上的唯一标志码;

记录模块302用于获取删除记录表,所述删除记录表中包括所有待删除数据的时间字段和标识字段;

删除模块303用于根据所述删除记录表中的时间字段和标识字段,对append-only数据库中的所有待删除数据进行删除。

本系统的具体执行过程与上述方法实施例的具体执行过程相同,详情请参考上述方法实施例,本系统实施例在此不再赘述。

图4为本发明实施例一种append-only数据库上修改数据的系统的结构示意图,如图4所示,该系统包括标识模块401、读取模块402和修改模块402,其中:

标识模块401用于为每一待插入数据增加时间字段和标识字段,对于任一待插入数据,所述任一带插入数据的时间字段标识所述任一待插入数据写入到append-only数据库上的时间,所述任一待插入数据的标识字段标识所述任一待插入数据在append-only数据库上的唯一标志码;

读取模块402用于读取append-only数据库中待修改数据;

修改模块403用于对所述待修改数据进行修改,并更新所述待修改数据的时间字段。

本系统实施例的具体执行过程与上述方法实施例的具体执行过程相同,详情请参考上述方法实施例,本系统实施例在此不再赘述。

图5示例了一种电子设备的实体结构示意图,如图5所示,该服务器可以包括:处理器(processor)510、通信接口(communicationsinterface)520、存储器(memory)530和总线540,其中,处理器510,通信接口520,存储器530通过总线540完成相互间的通信。通信接口540可以用于服务器与智能电视之间的信息传输。处理器510可以调用存储器530中的逻辑指令,以执行如下方法:

为每一待插入数据增加时间字段和标识字段,对于任一待插入数据,所述任一带插入数据的时间字段标识所述任一待插入数据写入到append-only数据库上的时间,所述任一待插入数据的标识字段标识所述任一待插入数据在append-only数据库上的唯一标志码;

获取删除记录表,所述删除记录表中包括所有待删除数据的时间字段和标识字段;

根据所述删除记录表中的时间字段和标识字段,对append-only数据库中的所有待删除数据进行删除。

此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:

为每一待插入数据增加时间字段和标识字段,对于任一待插入数据,所述任一带插入数据的时间字段标识所述任一待插入数据写入到append-only数据库上的时间,所述任一待插入数据的标识字段标识所述任一待插入数据在append-only数据库上的唯一标志码;

获取删除记录表,所述删除记录表中包括所有待删除数据的时间字段和标识字段;

根据所述删除记录表中的时间字段和标识字段,对append-only数据库中的所有待删除数据进行删除。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1