[发明专利]一种非关系型数据库数据更新方法和装置有效
申请号: | 201210187686.0 | 申请日: | 2012-06-08 |
公开(公告)号: | CN103473239A | 公开(公告)日: | 2013-12-25 |
发明(设计)人: | 钟艳春;刘锦标;江红英 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海波拓知识产权代理有限公司 31264 | 代理人: | 杨波 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 关系 数据库 数据 更新 方法 装置 | ||
技术领域
本发明涉及网络技术领域,特别涉及一种非关系型数据库数据更新方法和装置。
背景技术
关系型数据库中的表都具有固定的数据结构,每个元组(数据库表中的每一条记录)的字段组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组的所有字段分配相应的数据。例如,某数据库表中包括姓名、年龄、籍贯三个字段,那么该表中的每条记录都需要包括姓名、年龄、籍贯三个字段,即使其中某个元组的某个字段的内容为空,系统也要为其分配一个默认值,如0。这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是导致关系型数据库性能瓶颈的一个关键因素,使得关系型数据库不能满足对数据库高并发读写的需求,对海量数据的高效率存储和访问的需求,对数据库的高可扩展性和高可用性的需求。
为了解决上述问题,非关系数据库(NoSQL)应运而生。Google 的BigTable与Amazon的Dynamo是很成功的商业 NoSQL 系统。一些开源的NoSQL系统,如Membase,MongoDB,Cassandra,BeansDB,Redis等,也得到了广泛认同。
非关系型数据库,它以键值对存储,结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,不局限于固定的结构,可以减少一些时间和空间的开销。KV(Key-Value,键值)存储,是NoSQL存储的一种方式,数据按照键值对的形式进行组织、索引和存储。KV存储非常适合不涉及过多数据关系和业务关系的业务数据,同时能有效减少读写磁盘的次数,比关系型数据库存储拥有更好的读写性能。
键值存储机制采用键值对形式存储,值可以是任意不定长数据,使用主键可作简单查询和复杂查询(如列表查询、范围查询等),同时定期进行更新数据和历史数据的合并(该合并操作可以包括添加、删除、修改等操作)以处理过期数据。如图1所示,更新数据和历史数据采用0、1目录管理,对于更新数据设置0、1两个目录,对历史数据也设置0、1两个目录,假设当前的更新数据目录和历史数据目录都为0目录,在进行更新数据和历史数据的合并时,将更新数据的0目录和历史数据的0目录合并,并将合并后的数据存储在历史数据的1目录中,同时在合并过程中,新的更新数据写入到更新数据的1目录中。在下一次进行更新数据和历史数据的合并时,将更新数据的1目录和历史数据的1目录合并到历史数据的0目录中,依此类推。
然而,发明人发现,现有技术至少存在如下问题:
现有的数据更新方法中,每次更新数据和历史数据的合并,都要将所有的历史数据与更新数据进行合并,即没有发生变化的历史数据也要合并并迁移到另一个目录中,效率较低,大大增加了系统的开销。
发明内容
本发明的目的在于提供一种非关系型数据库数据更新方法和装置,以提高非关系型数据库历史数据更新的效率,为此,本发明实施例采用如下技术方案:
一种非关系型数据库数据更新方法,包括:
接收更新指令,并记录所述更新指令中携带的更新数据,所述更新数据包括主键和对应的更新操作内容;
当预设的第一触发事件发生时,查找各更新数据中的主键所属的数据文件;
根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件。
一种非关系型数据库数据更新装置,包括:
记录模块,用于接收更新指令,并记录所述更新指令中携带的更新数据,所述更新数据包括主键和对应的更新操作内容;
查找模块,用于当预设的第一触发事件发生时,查找各更新数据中的主键所属的数据文件;
更新模块,用于根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件。
本发明的上述实施例,接收更新指令,并记录更新指令中携带的更新数据,更新数据包括主键和对应的更新操作内容,当预设的第一触发事件发生时,查找记录的各更新数据中的主键所属的数据文件,根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件,从而,可以提高非关系型数据库历史数据更新的效率。
附图说明
图1为现有技术中更新数据和历史数据的存储方式示意图;
图2为本发明实施例提供的非关系型数据库数据更新方法中SSTable的结构示意图;
图3为本发明实施例提供的非关系型数据库数据更新方法的流程示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210187686.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种网页存证方法及系统
- 下一篇:键值分组方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置