CN110147359A - 一种增量生成方法、装置以及一种数据更新方法、装置 - Google Patents

一种增量生成方法、装置以及一种数据更新方法、装置 Download PDF

Info

Publication number
CN110147359A
CN110147359A CN201711330795.2A CN201711330795A CN110147359A CN 110147359 A CN110147359 A CN 110147359A CN 201711330795 A CN201711330795 A CN 201711330795A CN 110147359 A CN110147359 A CN 110147359A
Authority
CN
China
Prior art keywords
value
key
original
special
change
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
Application number
CN201711330795.2A
Other languages
English (en)
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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201711330795.2A priority Critical patent/CN110147359A/zh
Publication of CN110147359A publication Critical patent/CN110147359A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (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

本发明公开了一种增量生成方法、装置以及一种数据更新方法、装置,涉及计算机技术领域。所述方法,包括:监控是否接收到外部系统对键值数据库的更改操作;如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。解决了现有的增量记录方法无法在具备key‑value存储形式的优势条件下记录增量,取得了在具备key‑value存储形式的优势条件下记录增量,避免占用内存较多,容易影响系统的有益效果。

Description

一种增量生成方法、装置以及一种数据更新方法、装置
技术领域
本发明涉及计算机技术领域,具体涉及一种增量生成方法、装置以及一种数据更新方法、装置。
背景技术
随着互联网web2.0(第二代互联网)网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS(Social Networking Services,社交网络服务)类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL(NoSQL=Not Only SQL)数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。键值数据库即是一种NoSQL数据库。
在键值数据库中,是采用key-value对的形式进行数据存储,而且key-value存储一般都是根据key获取value,保存的时候只要把key-value保存起来就行了。在NoSQL数据库中,数据在不断地更新,可实时获取最新的客户的所有的数据。但是却无法获取数据的实时变化量,即增量。而且,如果利用表格的方式记录增量,那么则需要针对同一数据同时建立两张表,一张用以记录数据,一张用以记录数据的增量,那么此时不具备key-value存储形式的优势,而且会导致占用内存较多,容易影响系统运行效率。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种增量生成方法、装置以及一种数据更新方法、装置。
依据本发明的一个方面,提供了一种增量生成方法,包括:
监控是否接收到外部系统对键值数据库的更改操作;
如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
可选地,所述监控是否接收到外部系统对键值数据库的更改操作的步骤之前,还包括:
在键值数据库中创建所述特殊key-特殊value对。
可选地,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中;
当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
可选地,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
可选地,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
判断所述特殊value中是否有所述原始key的记录;
如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
根据本发明的另一方面,提供了一种数据更新方法,其特征在于,包括:
接收外部系统的数据更新请求;
从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。
可选地,在接收外部系统的数据更新请求的步骤之前,还包括:
监控是否接收到外部系统对键值数据库的更改操作;
如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
可选地,所述监控是否接收到外部系统对键值数据库的更改操作的步骤之前,还包括:
在键值数据库中创建所述特殊key-特殊value对。
可选地,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中;
当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
可选地,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
可选地,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
判断所述特殊value中是否有所述原始key的记录;
如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
可选地,当所述数据更新请求中包括所述外部系统的当前版本编号时,所述从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新的步骤,包括:
查找版本编号在所述当前版本编号之后的原始key和原始value;
将所述当前版本编号之后的原始key和原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。
可选地,当所述数据更新请求中包括所述外部系统的当前版本编号时,所述从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新的步骤,包括:
在所述特殊value中,查找版本编号在所述当前版本编号之后的值;
将所述原始key和包括了当前版本编号之后的值的原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。
根据本发明的另一方面,提供了一种增量生成装置,包括:
更改操作监控模块,用于监控是否接收到外部系统对键值数据库的更改操作;
更改操作记录模块,用于如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
可选地,在所述更改操作监控模块之前,还包括:
特殊key-value创建模块,用于在键值数据库中创建所述特殊key-特殊value对。
可选地,所述更改操作记录模块,包括:
第一更改操作记录子模块,用于当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中;
第二更改操作记录子模块,用于当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
可选地,所述更改操作记录模块,还用于对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
可选地,所述更改操作记录模块,包括:
原始key记录判断子模块,用于判断所述特殊value中是否有所述原始key的记录;
原始value合并子模块,用于如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
根据本发明的另一方面,提供了一种数据更新装置,其特征在于,包括:
数据更新请求接收模块,用于接收外部系统的数据更新请求;
Key-value返回模块,用于从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。
可选地,在所述数据更新请求接收模块之前,还包括:
更改操作监控模块,用于监控是否接收到外部系统对键值数据库的更改操作;
更改操作记录模块,用于如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
可选地,在所述更改操作监控模块之前,还包括:
特殊key-value创建模块,用于在键值数据库中创建所述特殊key-特殊value对。
可选地,所述更改操作记录模块,包括:
第一更改操作记录子模块,用于当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中;
第二更改操作记录子模块,用于当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
可选地,所述更改操作记录模块,还用于对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
可选地,所述更改操作记录模块,包括:
原始key记录判断子模块,用于判断所述特殊value中是否有所述原始key的记录;
原始value合并子模块,用于如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
可选地,当所述数据更新请求中包括所述外部系统的当前版本编号时,所述Key-value返回模块,包括:
原始key-value查找子模块,用于查找版本编号在所述当前版本编号之后的原始key和原始value;
第一原始key-value返回子模块,用于将所述当前版本编号之后的原始key和原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。
可选地,当所述数据更新请求中包括所述外部系统的当前版本编号时,所述Key-value返回模块,包括:
Value值查找子模块,用于在所述特殊value中,查找版本编号在所述当前版本编号之后的值;
第二原始key-value返回子模块,用于将所述原始key和包括了当前版本编号之后的值的原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。
本发明实施例还公开了一种设备,包括:
存储器,加载有多条可执行指令;
处理器,执行所述多条可执行指令;所述多条可执行指令包括前述的增量生成方法或数据更新方法。
根据本发明的一种增量生成方法,可以监控是否接收到外部系统对键值数据库的更改操作;如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。由此解决了现有的增量记录方法无法在具备key-value存储形式的优势条件下记录增量,取得了在具备key-value存储形式的优势条件下记录增量,避免占用内存较多,容易影响系统的有益效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种增量生成方法的步骤流程图;
图2示出了根据本发明一个实施例的一种增量生成方法的步骤流程图;
图3示出了根据本发明一个实施例的一种数据更新方法的步骤流程图;
图4示出了根据本发明一个实施例的一种数据更新方法的步骤流程图;
图5示出了根据本发明一个实施例的一种增量生成装置的结构示意图;
图6示出了根据本发明一个实施例的一种增量生成装置的结构示意图;
图7示出了根据本发明一个实施例的一种数据更新装置的结构示意图;以及
图8示出了根据本发明一个实施例的一种数据更新装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
详细介绍本发明实施例提供的一种增量生成方法。
参照图1,示出了本发明实施例中一种增量生成方法的步骤流程图。
步骤110,监控是否接收到外部系统对键值数据库的更改操作。
随着互联网web2.0(第二代互联网)网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS(Social Networking Services,社交网络服务)类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL(NoSQL=Not Only SQL)数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。NoSQL指的是非关系型的数据库。
NoSQL数据库的四大分类:
(1)键值(Key-Value)存储数据库,这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据,可以通过键(key)从而获取与该键对应的值(value),即与该键对应的特定的数据。Key/value模型的优势在于简单、易部署。但是如果DBA(Database Administrator,数据库管理员)只对部分值进行查询或更新的时候,Key/value就显得效率低下了。举例如:Tokyo Cabinet/Tyrant,Redis,Voldemort,OracleBDB等。
(2)列存储数据库,这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra,HBase,Riak,等。
(3)文档型数据库,文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB,MongoDb,国内也有文档型数据库SequoiaDB,已经开源。
(4)图形(Graph)数据库,图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL(Structured Query Language,结构化查询语言)),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST(Representational State Transfer,表述性状态传递)式的数据接口或者查询API(Application Programming Interface,应用程序编程接口)。如:Neo4J,InfoGrid,Infinite Graph,等等。
在本发明实施例中,为了获取数值变化的增量,可以利用上述的键值存储数据库,也即键值数据库保存数据,而且本发明实施例中的键值数据库可以为任意一种键值数据库,对此本发明实施例不加以限定。
那么,对于键值数据库,则可以监控是否接收到外部系统对键值数据库的更改操作。其中的外部系统可以为除了当前的键值数据库所在系统之外的任何系统,也可以为除了当前的键值数据库之外的任何系统,对此本发明实施例不加以限定。外部系统对键值数据库的更改操作,可以包括针对key-value对的新增操作、针对key-value对的删除操作、针对key-value对的修改操作等等,对此本发明实施例不加以限定。
如果监控到键值数据库相对于初始状态有任何变化,而且该变化不是由于其自身原因导致的,那么则可以确定此时的键值数据库接收到更改操作。
步骤120,如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
如果接收到对键值数据库的更改操作,那么为了生成增量,则可以将更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。其中特殊key-特殊value的生成规则与键值数据库中任何其他key-value一样,但是在特殊key对应的特殊value中用以存放接收到的更改操作对应的原始key和相应的原始value。而如果未接收到外部系统对键值数据库的更改操作,则无需执行任何操作。
例如,如果当前接收到的更改操作是针对于键值数据库中的key_1-value_1对的更改,那么如果预设的特殊key为key_n,那么可以将key_1以及value_1作为与key_n的特殊value,记录到key_n对应的特殊value中。
在本发明实施例中,可以在本步骤之前,或者是本步骤之前的任一步骤之前根据需求设定特殊value以及与特殊value对应的特殊value,对此本发明实施例不加以限定。
在键值数据库的数据标中写入数据的过程需要执行写操作,下面是一种写操作的过程:
1.执行tree(显示磁盘目录结构命令)搜索以定位插入数据所在的位置;
2.锁定该位置的父节点;
3.创建新的叶子节点;
4.将叶子节点写入。这个写操作发生在内存中,并且返回一个number(标号),它决定了叶子节点写到硬盘的位置
5.修改父节点指向该叶子节点的引用。该父节点既持有指向内存的叶子节点的引用又持有磁盘的位置的number;
6.标记该父节点为dirty(意味着内存中的版本没有出现在磁盘中);
7.解锁该父节点。
从键值数据库的数据表中读取数据的读操作就简单很多了,搜索tree,定位到叶子节点,取出数据就行了。
上面所说的写操作在内存中并不会影响到读操作,因为,为了加快读操作,可以在启动时预加载硬盘数据文件的内容到内存,由于只有叶子节点存储数据,因此需要根据加载的叶子节点还原整棵B+tree(B+树)。毫无疑问这是一个耗时的操作,但是却是值得的。其中,B+树是应文件系统所需而出的一种B-树的变型树,B-树是一种平衡的多路查找树,在文件系统中有所应用。
可选地,在本发明实施例中,所述步骤120,进一步可以包括:
子步骤121,当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中。
而且如果更改操作为新增操作、或修改操作时,那么在本发明实施例中,可以将新增操作、或修改操作对应的原始key和相应的原始value,直接写入特殊key对应的特殊value中。其中的新增操作可以包括在键值数据库中新增一个或多个key-value对,修改操作可以包括对键值数据库中已有的key-value对中的value值进行修改,如果有特殊需求,也可以包括对key进行修改,对此本发明实施例不加以限定。
子步骤122,当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
其中的删除操作可以包括将key-value对删除,或者是将key对应的value删除,等等。那么如果接收到的更改操作为删除操作时,则可以将删除操作对应的原始key创建为空值的原始value,并将原始key和原始value写入特殊key对应的特殊value中。
例如,如果当前删除操作对应于key_2-value_2,那么则可以将key_2对应的value_2修改为空值,并可以将原始的key_2和value_2对应的值写入特殊key,即上述的key_n对应的特殊value_n中。
可选地,在本发明实施例中,所述步骤120进一步可以包括:对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
另外,在实际应用中,可能会对同一key-value对执行多次更改操作,而且多次更改操作中可能包含不同的更改操作,例如可以对同一key-value对分别依次执行两次修改操作、一次删除操作,而且两次修改操作的具体内容可以有所不同。那么在本发明实施例中,为了记录key-value对应的各次更改操作,同时记录各次更改操作对应的顺序,还可以对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
例如,对于原始key_1-value_1对分别依次执行两次修改操作、一次删除操作,那么会将修改操作以及删除操作并不会改变key_1,而会改变value_1的值。假设在第一修改操作之后,key_1对应的value值由value_1变为value_2,在第二次修改操作之后,key_1对应的value值由value_2变为value_3,那么对于该key_1,对应于上述更改操作在特殊的key对应的value中依次写入的原始key和原始value如下:key_1和value_1、key_1和value_2、key_1和value_3。那么在本发明实施例中,则可以按照上述的原始key和原始value的写入顺序加上版本编号,例如可以依次对上述写入的key_1和value_1的版本编号为001,key_1和value_2的版本编号为002,key_1和value_3的版本编号为003。那么后续如果读取到对于key_1的版本编号为003,那么则可知其对应的是对key_1对应的原始value值的第三次更改操作。
在本发明实施例中,可以根据需求在本步骤之前,或者是本步骤之前的任一步骤之前设定版本编号的具体格式以及规则,对此本发明实施例不加以限定。
在本发明实施例中,可以监控是否接收到外部系统对键值数据库的更改操作;如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。由此取得了在具备key-value存储形式的优势条件下记录增量,避免占用内存较多,容易影响系统的有益效果。
另外,在本发明实施例中,还可以当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中。当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。从而可以针对不同的更改操作利用相应的方式记录增量,提高增量的准确性。
实施例二
详细介绍本发明实施例提供的一种增量生成方法。
参照图2,示出了本发明实施例中一种增量生成方法的步骤流程图。
步骤210,在键值数据库中创建所述特殊key-特殊value对。
在本发明实施例中,为了记录更改操作对应的原始key和相应的原始value。则可以预先在键值数据库中创建特殊key-特殊value对。其中,可以将更改操作对应的原始key和相应的原始value记录在特殊key对应的特殊value中。在本发明实施例中,可以利用任何可用的创建key-value对的方法在键值数据库中创建特殊key-特殊value对,对此本发明实施例不加以限定,但是需要保证特殊key的具体取值区别与其他任何key值,而且如果创建多个特殊key-特殊value对,那么也需要保证各个特殊key之间互不完全一致。
步骤220,监控是否接收到外部系统对键值数据库的更改操作。
步骤230,如果接收到所述更改操作,则判断所述特殊value中是否有所述原始key的记录。
在本发明实施例中,在记录对key-value对的更改操作时,可以将针对同一key的更改操作记录进行合并。那么在接收到外部系统对键值数据库的更改操作时,则需要先判断用于记录更改操作对应的原始key和相应的原始value的特殊value中是否有当前接收到的更改操作对应的原始key的记录。
例如,如果当前接收到的更改操作对应的原始key和相应的原始value为key_1-value_1,那么则会判断在特殊value中是否key_1的记录。
步骤240,如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
如果有特殊value中有当前接收到的更改操作对应的原始key的记录,那么为了针对同一原始key在value中产生多条记录,可以将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对相应的值按照预设规则加上版本编号。其中,在本发明实施例中,可以根据需求在本步骤之前,或者是在本步骤之前的任一步骤之前设定预设规则的具体内容,对此本发明实施例不加以限定。
例如,同样对于上述的原始key_1-value_1对分别依次执行两次修改操作,那么修改操作以及删除操作并不会改变key_1,而会改变value_1的值。假设在第一修改操作之后,key_1对应的value值由value_1变为value_2,在第二次修改操作之后,key_1对应的value值由value_2变为value_3。那么假设当前接收到对于key_1的第二次更改操作,此时在特殊value中已经记录有第一次更改操作的原始key以及相应的原始value,即key_1和value_1,并且版本编号为001,那么则可以将当前接收到的第二次更改操作对应的原始key的原始value,即value_2合并至特殊value中已记录的key_1的value_1中,具体的可以将value_2与value_1加总并将加总之后的值作为新的value值与key_1对应,或者是可以利用value_2与value_1构成数组或序列的形式作为新的value值与key_1对应,等等,在本发明实施例中,可以根据需求在本步骤之前,或者是本步骤之前的任一步骤之前设定将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中的具体合并规则对此本发明实施例不加以限定。
在合并之后,为了标识当前在特殊value中记录的与原始key对应的原始value所对应的更改操作,可以按照预设规则对合并之后的原始value的值加上版本编号。例如,对于上述的第二次更改操作之后在特殊value中记录的合并之后的value值可以加上版本编号为002,以标识此时的value值对应的原始key,即key_1已经接收到两次更改操作。
在本发明实施例中,可以监控是否接收到外部系统对键值数据库的更改操作;如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。由此取得了在具备key-value存储形式的优势条件下记录增量,避免占用内存较多,容易影响系统的有益效果。
而且,在本发明实施例中,可以在监控是否接收到外部系统对键值数据库的更改操作之前,在键值数据库中创建所述特殊key-特殊value对。从而可以明确用于记录更改操作对应的原始key和相应的原始value的特殊value。
另外,在本发明实施例中,可以对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。或者是判断所述特殊value中是否有所述原始key的记录;如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。从而可以分别提高记录的原始key和原始value的准确性,同时对记录的原始value加上版本编号,那么方便获取各次记录的原始value的更改操作次序。
实施例三
详细介绍本发明实施例提供的一种数据更新方法。
参照图3,示出了本发明实施例中一种数据更新方法的步骤流程图。
步骤310,接收外部系统的数据更新请求。
在本发明实施例中,公开了一种对键值数据库中的数据更新的方法。那么首先需要接收外部系统所发送的数据更新请求。在本发明实施例中,外部系统可以利用任何可用方法或设备发送数据更新请求,而且键值数据库也可以利用任何可用方法或设备接收外部系统的数据更新请求,对此本发明实施例都不加以限定。
而且在实际应用中,在nosql中可能存在多个用以存储键值数据的数据表(table),而且各个数据表中存储的key-value对不同,那么在本发明实施例中,可以预先给各个数据表设置数据表标识,以唯一的表征各个数据表设。那么在数据更新请求还可以包括需要进行数据更新的数据表的标识,那么则可以在键值数据库中根据数据表的标识的标识确定需要获取原始key-原始value对的数据表,然后在该数据表的特殊key对应的特殊value中读取原始key和相应的原始value返回外部系统,对此本发明实施例不加以限定。
步骤320,从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。
在接收到数据更新请求之后,则可以从键值数据库中的特殊key的特殊value中,读取原始key和相应的原始value返回外部系统,以供外部系统进行更新。具体的可以根据特殊key在键值数据库查找与特殊key对应的特殊value,然后从特殊value中读取原始key和相应的原始value。具体的可以获取特殊value中所包含的全部原始key和相应的原始value,也可以获取特殊value中所包含的部分原始key和相应的原始value,对此本发明实施例不加以限定。
在本发明实施例中,在数据更新请求中可以包含对应需要获取的原始key,那么则可以根据接收到的数据更新请求中包含的原始key,从特殊value中获取与原始key对应的原始key和相应的原始value。而且如实施例一以及实施例二,在特殊value中可以记录对应同一原始key的不同版本编号的原始value值,那么在数据更新请求中还可以包含对应需要获取的原始key以及版本编号,进一步地则可以根据接收到的数据更新请求中包含的原始key以及版本编号,从特殊value中获取与原始key以及版本编号对应的原始key和相应的原始value。
本实施例中的步骤与前述的实施例一以及实施例二的类似步骤的具体过程也类似,在此不再赘述。
在本发明实施例中,可以接收外部系统的数据更新请求;从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。从而可以准确获取原始key和相应的原始value,并对外部系统的数据进行更新。
实施例四
详细介绍本发明实施例提供的一种数据更新方法。
参照图4,示出了本发明实施例中一种数据更新方法的步骤流程图。
步骤410,在键值数据库中创建所述特殊key-特殊value对。
步骤420,监控是否接收到外部系统对键值数据库的更改操作。
步骤430,如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
可选地,在本发明实施例中,所述步骤430进一步可以包括:
子步骤A431,当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中。
子步骤A432,当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
可选地,在本发明实施例中,所述步骤430进一步可以包括:对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
可选地,在本发明实施例中,所述步骤430进一步可以包括:
子步骤B431,判断所述特殊value中是否有所述原始key的记录。
子步骤B432,如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
其中的子步骤A431和子步骤A432,子步骤B431和子步骤B432是并列的关系,对于同一键值数据库,可以只需执行其中一组即可,当然如果有特殊需求也可以两组都执行。在本发明实施例中,可以根据需求设定具体执行的内容,对此本发明实施例不加以限定。
步骤440,接收外部系统的数据更新请求。
步骤450,从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。
可选地,在本发明实施例中,当所述数据更新请求中包括所述外部系统的当前版本编号时,所述步骤450进一步可以包括:
子步骤A451,查找版本编号在所述当前版本编号之后的原始key和原始value。
在本发明实施例中,如果在数据更新请求中包括外部系统的当前版本编号时,那么从特殊key的特殊value中,读取原始key和相应的原始value返回外部系统时,可以根据特殊value中记录的原始key和原始value的版本编号,在特殊value中查找版本编号在当前版本编号之后的原始key和原始value。
例如,如果在数据更新请求中包括外部系统的当前版本编号为001,那么则可以从特殊key的特殊value中,查找版本编号在当前版本编号之后的原始key和原始value,假设在001之后的版本编号为002,那么则可以从特殊key的特殊value中获取版本编号为002的原始key和原始value。
子步骤A452,将所述当前版本编号之后的原始key和原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。
在查找到当前版本编号之后的原始key和原始value之后,则可以将当前版本编号之后的原始key和原始value返回给外部系统,以供外部系统按版本编号顺序进行更新。外部系统在按版本编号顺序进行更新时,需要针对各个原始key值,将在外部系统中,对应于同一原始key值的value值按照获取的原始key和原始value的版本编号顺序对应进行更新。
可选地,在本发明实施例中,当所述数据更新请求中包括所述外部系统的当前版本编号时,所述步骤450进一步可以包括:
子步骤B451,在所述特殊value中,查找版本编号在所述当前版本编号之后的值。
另外,当数据更新请求中包括所述外部系统的当前版本编号时,在本发明实施例中,在从特殊key的特殊value中,读取原始key和相应的原始value返回外部系统时,还可以在特殊value中,查找版本编号在所述当前版本编号之后的值。
例如,如果当前版本编号为001,版本编号顺序依次为001,002,003,依次类推。那么可以在特殊value中,查找版本编号在当前版本编号之后的值,即先查找版本编号002,如果查找到版本编号002,则可以停止本次查找;而如果查找不到版本编号002,则可以进一步查找版本编号003,依次类推直至在特殊value中查找到版本编号在当前版本编号之后的值。
子步骤B452,将所述原始key和包括了当前版本编号之后的值的原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。
在特殊value中,查找到版本编号在当前版本编号之后的值之后,则可以将原始key和包括了当前版本编号之后的值的原始value返回给外部系统,以供外部系统按版本编号顺序进行更新。
例如,假设对于当前版本编号001,查找到在当前版本编号之后的版本编号002对应的value值为value_2,而且与value_2对应的原始value为value_1,那么则可以将value_1和包括了版本编号002的value_2返回给外部系统,以供外部系统按版本编号顺序进行更新。
在本发明实施例中,可以接收外部系统的数据更新请求;从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。从而可以准确获取原始key和相应的原始value,并对外部系统的数据进行更新。
而且,在本发明实施例中,还可以预先在键值数据库中创建所述特殊key-特殊value对,监控是否接收到外部系统对键值数据库的更改操作,如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。从而提高记录的原始key和相应的原始value的准确性。
另外,在本发明实施例中,还可以当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中;当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。或者是对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。或者是判断所述特殊value中是否有所述原始key的记录;如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。并且在当所述数据更新请求中包括所述外部系统的当前版本编号时,查找版本编号在所述当前版本编号之后的原始key和原始value;将所述当前版本编号之后的原始key和原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。在当所述数据更新请求中包括所述外部系统的当前版本编号时,在所述特殊value中,查找版本编号在所述当前版本编号之后的值;将所述原始key和包括了当前版本编号之后的值的原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。从而可以进一步提高获取的原始key和原始value的准确性,进而可以根据版本编号顺序对外部系统进行更新。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例五
详细介绍本发明实施例提供的一种增量生成装置。
参照图5,示出了本发明实施例中一种增量生成装置的结构示意图。
更改操作监控模块510,用于监控是否接收到外部系统对键值数据库的更改操作。
更改操作记录模块520,用于如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
可选地,在本发明实施例中,所述更改操作记录模块520,进一步可以包括:
第一更改操作记录子模块,用于当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中。
第二更改操作记录子模块,用于当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
可选地,在本发明实施例中,所述更改操作记录模块520,还用于对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
在本发明实施例中,可以监控是否接收到外部系统对键值数据库的更改操作;如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。由此取得了在具备key-value存储形式的优势条件下记录增量,避免占用内存较多,容易影响系统的有益效果。
另外,在本发明实施例中,还可以当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中。当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。从而可以针对不同的更改操作利用相应的方式记录增量,提高增量的准确性。
实施例六
详细介绍本发明实施例提供的一种增量生成装置。
参照图6,示出了本发明实施例中一种增量生成装置的结构示意图。
特殊key-value创建模块610,用于在键值数据库中创建所述特殊key-特殊value对。
更改操作监控模块620,用于监控是否接收到外部系统对键值数据库的更改操作。
更改操作记录模块630,用于如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
可选地,在本发明实施例中,所述更改操作记录模块630,进一步可以包括:
原始key记录判断子模块631,用于判断所述特殊value中是否有所述原始key的记录。
原始value合并子模块632,用于如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
在本发明实施例中,可以监控是否接收到外部系统对键值数据库的更改操作;如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。由此取得了在具备key-value存储形式的优势条件下记录增量,避免占用内存较多,容易影响系统的有益效果。
而且,在本发明实施例中,可以在监控是否接收到外部系统对键值数据库的更改操作之前,在键值数据库中创建所述特殊key-特殊value对。从而可以明确用于记录更改操作对应的原始key和相应的原始value的特殊value。
另外,在本发明实施例中,可以对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。或者是判断所述特殊value中是否有所述原始key的记录;如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。从而可以分别提高记录的原始key和原始value的准确性,同时对记录的原始value加上版本编号,那么方便获取各次记录的原始value的更改操作次序。
实施例七
详细介绍本发明实施例提供的一种数据更新装置。
参照图7,示出了本发明实施例中一种数据更新装置的结构示意图。
数据更新请求接收模块710,用于接收外部系统的数据更新请求。
Key-value返回模块720,用于从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。
在本发明实施例中,可以接收外部系统的数据更新请求;从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。从而可以准确获取原始key和相应的原始value,并对外部系统的数据进行更新。
实施例八
详细介绍本发明实施例提供的一种数据更新装置。
参照图8,示出了本发明实施例中一种数据更新装置的结构示意图。
特殊key-value创建模块810,用于在键值数据库中创建所述特殊key-特殊value对。
更改操作监控模块820,用于监控是否接收到外部系统对键值数据库的更改操作。
更改操作记录模块830,用于如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
可选地,在本发明实施例中,所述更改操作记录模块830,进一步可以包括:
第一更改操作记录子模块,用于当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中。
第二更改操作记录子模块,用于当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
可选地,在本发明实施例中,所述更改操作记录模块830,还用于对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
可选地,在本发明实施例中,所述更改操作记录模块830,进一步可以包括:
原始key记录判断子模块,用于判断所述特殊value中是否有所述原始key的记录。
原始value合并子模块,用于如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
数据更新请求接收模块840,用于接收外部系统的数据更新请求。
Key-value返回模块850,用于从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。
当所述数据更新请求中包括所述外部系统的当前版本编号时,所述Key-value返回模块850,包括:
原始key-value查找子模块,用于查找版本编号在所述当前版本编号之后的原始key和原始value。
第一原始key-value返回子模块,用于将所述当前版本编号之后的原始key和原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。
当所述数据更新请求中包括所述外部系统的当前版本编号时,所述Key-value返回模块850,包括:
Value值查找子模块,用于在所述特殊value中,查找版本编号在所述当前版本编号之后的值。
第二原始key-value返回子模块,用于将所述原始key和包括了当前版本编号之后的值的原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。
在本发明实施例中,可以接收外部系统的数据更新请求;从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。从而可以准确获取原始key和相应的原始value,并对外部系统的数据进行更新。
而且,在本发明实施例中,还可以预先在键值数据库中创建所述特殊key-特殊value对,监控是否接收到外部系统对键值数据库的更改操作,如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。从而提高记录的原始key和相应的原始value的准确性。
另外,在本发明实施例中,还可以当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中;当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。或者是对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。或者是判断所述特殊value中是否有所述原始key的记录;如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。并且在当所述数据更新请求中包括所述外部系统的当前版本编号时,查找版本编号在所述当前版本编号之后的原始key和原始value;将所述当前版本编号之后的原始key和原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。在当所述数据更新请求中包括所述外部系统的当前版本编号时,在所述特殊value中,查找版本编号在所述当前版本编号之后的值;将所述原始key和包括了当前版本编号之后的值的原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。从而可以进一步提高获取的原始key和原始value的准确性,进而可以根据版本编号顺序对外部系统进行更新。
本发明实施例还提供了一种设备包括:存储器,加载有多条可执行指令;
处理器,执行所述多条可执行指令;所述多条可执行指令包括前述的增量生成方法或数据更新方法。
该存储器可以为可读存储介质,如磁盘、硬盘等。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的增量生成设备以及数据更新设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本申请公开了A1、一种增量生成方法,包括:
监控是否接收到外部系统对键值数据库的更改操作;
如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
A2、如A1所述的方法,所述监控是否接收到外部系统对键值数据库的更改操作的步骤之前,还包括:
在键值数据库中创建所述特殊key-特殊value对。
A3、如A1所述的方法,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中;
当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
A4、如A1-A3其中之一所述的方法,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
A5、如A1-A3其中之一所述的方法,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
判断所述特殊value中是否有所述原始key的记录;
如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
本申请还公开了B6、一种数据更新方法,包括:
接收外部系统的数据更新请求;
从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。
B7、如B6所述的方法,在接收外部系统的数据更新请求的步骤之前,还包括:
监控是否接收到外部系统对键值数据库的更改操作;
如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
B8、如B7所述的方法,所述监控是否接收到外部系统对键值数据库的更改操作的步骤之前,还包括:
在键值数据库中创建所述特殊key-特殊value对。
B9、如B7所述的方法,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中;
当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
B10、如B7-B9其中之一所述的方法,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
B11、如B7-B9其中之一所述的方法,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
判断所述特殊value中是否有所述原始key的记录;
如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
B12、如B10所述的方法,当所述数据更新请求中包括所述外部系统的当前版本编号时,所述从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新的步骤,包括:
查找版本编号在所述当前版本编号之后的原始key和原始value;
将所述当前版本编号之后的原始key和原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。
B13、如B11所述的方法,当所述数据更新请求中包括所述外部系统的当前版本编号时,所述从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新的步骤,包括:
在所述特殊value中,查找版本编号在所述当前版本编号之后的值;
将所述原始key和包括了当前版本编号之后的值的原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。
本申请还公开了C14、一种增量生成装置,包括:
更改操作监控模块,用于监控是否接收到外部系统对键值数据库的更改操作;
更改操作记录模块,用于如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
C15、如C14所述的装置,在所述更改操作监控模块之前,还包括:
特殊key-value创建模块,用于在键值数据库中创建所述特殊key-特殊value对。
C16、如C14所述的装置,所述更改操作记录模块,包括:
第一更改操作记录子模块,用于当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中;
第二更改操作记录子模块,用于当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
C17、如C14-C16其中之一所述的装置,所述更改操作记录模块,还用于对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
C18、如C14-C16其中之一所述的装置,所述更改操作记录模块,包括:
原始key记录判断子模块,用于判断所述特殊value中是否有所述原始key的记录;
原始value合并子模块,用于如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
本申请还公开了D19、一种数据更新装置,包括:
数据更新请求接收模块,用于接收外部系统的数据更新请求;
Key-value返回模块,用于从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。
D20、如D19所述的装置,在所述数据更新请求接收模块之前,还包括:
更改操作监控模块,用于监控是否接收到外部系统对键值数据库的更改操作;
更改操作记录模块,用于如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
D21、如D20所述的装置,在所述更改操作监控模块之前,还包括:
特殊key-value创建模块,用于在键值数据库中创建所述特殊key-特殊value对。
D22、如D20所述的装置,所述更改操作记录模块,包括:
第一更改操作记录子模块,用于当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中;
第二更改操作记录子模块,用于当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
D23、如D20-D22其中之一所述的装置,所述更改操作记录模块,还用于对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
D24、如D20-D22其中之一所述的装置,所述更改操作记录模块,包括:
原始key记录判断子模块,用于判断所述特殊value中是否有所述原始key的记录;
原始value合并子模块,用于如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
D25、如D23所述的装置,当所述数据更新请求中包括所述外部系统的当前版本编号时,所述Key-value返回模块,包括:
原始key-value查找子模块,用于查找版本编号在所述当前版本编号之后的原始key和原始value;
第一原始key-value返回子模块,用于将所述当前版本编号之后的原始key和原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。
D26、如D24所述的装置,当所述数据更新请求中包括所述外部系统的当前版本编号时,所述Key-value返回模块,包括:
Value值查找子模块,用于在所述特殊value中,查找版本编号在所述当前版本编号之后的值;
第二原始key-value返回子模块,用于将所述原始key和包括了当前版本编号之后的值的原始value返回给所述外部系统,以供所述外部系统按版本编号顺序进行更新。
E27、一种设备,包括:
存储器,加载有多条可执行指令;
处理器,执行所述多条可执行指令;所述多条可执行指令包括权利要求A1-A5、B6-B13任一项所述的方法。

Claims (10)

1.一种增量生成方法,包括:
监控是否接收到外部系统对键值数据库的更改操作;
如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
2.根据权利要求1所述的方法,其特征在于,所述监控是否接收到外部系统对键值数据库的更改操作的步骤之前,还包括:
在键值数据库中创建所述特殊key-特殊value对。
3.根据权利要求1所述的方法,其特征在于,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
当所述更改操作为新增操作、或修改操作时,将所述新增操作、或修改操作对应的原始key和相应的原始value,写入所述特殊key对应的特殊value中;
当所述更改操作为删除操作时,将所述删除操作对应的原始key创建为空值的原始value,并将所述原始key和所述原始value写入所述特殊key对应的特殊value中。
4.根据权利要求1-3其中之一所述的方法,其特征在于,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
对于同一个原始key,按相应的原始key和原始value的写入顺序加上版本编号。
5.根据权利要求1-3其中之一所述的方法,其特征在于,所述将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中的步骤,包括:
判断所述特殊value中是否有所述原始key的记录;
如有所述特殊value中有所述原始key的记录,则将当前的更改操作对应的原始key的原始value的值合并到之前的原始key的原始value中,并对所述值按照预设规则加上版本编号。
6.一种数据更新方法,其特征在于,包括:
接收外部系统的数据更新请求;
从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。
7.根据权利要求6所述的方法,其特征在于,在接收外部系统的数据更新请求的步骤之前,还包括:
监控是否接收到外部系统对键值数据库的更改操作;
如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
8.一种增量生成装置,包括:
更改操作监控模块,用于监控是否接收到外部系统对键值数据库的更改操作;
更改操作记录模块,用于如果接收到所述更改操作,则将所述更改操作对应的原始key和相应的原始value记录到预设的特殊key对应的特殊value中。
9.一种数据更新装置,其特征在于,包括:
数据更新请求接收模块,用于接收外部系统的数据更新请求;
Key-value返回模块,用于从特殊key的特殊value中,读取原始key和相应的原始value返回所述外部系统,以供所述外部系统进行更新;所述特殊key的特殊value中记录了对键值数据库的更改操作所对应的原始key和相应的原始value。
10.一种设备,包括:
存储器,加载有多条可执行指令;
处理器,执行所述多条可执行指令;所述多条可执行指令包括权利要求1-7任一项所述的方法。
CN201711330795.2A 2017-12-13 2017-12-13 一种增量生成方法、装置以及一种数据更新方法、装置 Pending CN110147359A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711330795.2A CN110147359A (zh) 2017-12-13 2017-12-13 一种增量生成方法、装置以及一种数据更新方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711330795.2A CN110147359A (zh) 2017-12-13 2017-12-13 一种增量生成方法、装置以及一种数据更新方法、装置

Publications (1)

Publication Number Publication Date
CN110147359A true CN110147359A (zh) 2019-08-20

Family

ID=67588012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711330795.2A Pending CN110147359A (zh) 2017-12-13 2017-12-13 一种增量生成方法、装置以及一种数据更新方法、装置

Country Status (1)

Country Link
CN (1) CN110147359A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625543A (zh) * 2020-05-27 2020-09-04 贵州易鲸捷信息技术有限公司 一种基于HBase表实现全局单调递增的序列的方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100280991A1 (en) * 2009-05-01 2010-11-04 International Business Machines Corporation Method and system for versioning data warehouses
CN103473239A (zh) * 2012-06-08 2013-12-25 腾讯科技(深圳)有限公司 一种非关系型数据库数据更新方法和装置
CN104238963A (zh) * 2014-09-30 2014-12-24 华为技术有限公司 一种数据存储方法、存储装置及存储系统
CN104572672A (zh) * 2013-10-15 2015-04-29 北大方正集团有限公司 异构数据库的同步方法和应用系统
CN105138635A (zh) * 2015-08-21 2015-12-09 中国人民解放军装备学院 一种利用哈希值比对进行数据增量复制的方法
CN105468298A (zh) * 2015-11-19 2016-04-06 中国科学院信息工程研究所 一种基于日志结构合并树的键值存储方法
CN105488050A (zh) * 2014-09-17 2016-04-13 阿里巴巴集团控股有限公司 一种数据库多索引方法、装置及系统
CN106844650A (zh) * 2017-01-20 2017-06-13 中国科学院计算技术研究所 一种日志合并树的合并方法及系统
CN107341249A (zh) * 2017-07-07 2017-11-10 北京奇艺世纪科技有限公司 服务器信息的存储和提取方法及系统、提取装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100280991A1 (en) * 2009-05-01 2010-11-04 International Business Machines Corporation Method and system for versioning data warehouses
CN103473239A (zh) * 2012-06-08 2013-12-25 腾讯科技(深圳)有限公司 一种非关系型数据库数据更新方法和装置
CN104572672A (zh) * 2013-10-15 2015-04-29 北大方正集团有限公司 异构数据库的同步方法和应用系统
CN105488050A (zh) * 2014-09-17 2016-04-13 阿里巴巴集团控股有限公司 一种数据库多索引方法、装置及系统
CN104238963A (zh) * 2014-09-30 2014-12-24 华为技术有限公司 一种数据存储方法、存储装置及存储系统
WO2016050112A1 (zh) * 2014-09-30 2016-04-07 华为技术有限公司 一种数据存储方法、存储装置及存储系统
CN105138635A (zh) * 2015-08-21 2015-12-09 中国人民解放军装备学院 一种利用哈希值比对进行数据增量复制的方法
CN105468298A (zh) * 2015-11-19 2016-04-06 中国科学院信息工程研究所 一种基于日志结构合并树的键值存储方法
CN106844650A (zh) * 2017-01-20 2017-06-13 中国科学院计算技术研究所 一种日志合并树的合并方法及系统
CN107341249A (zh) * 2017-07-07 2017-11-10 北京奇艺世纪科技有限公司 服务器信息的存储和提取方法及系统、提取装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
THANH TRUNG NGUYEN等: "BFC: High-performance distributed big-file cloud storage based on key-value store", 《2015 IEEE/ACIS 16TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ARTIFICIAL INTELLIGENCE, NETWORKING AND PARALLEL/DISTRIBUTED COMPUTING (SNPD)》, 6 August 2015 (2015-08-06), pages 1 - 6 *
董玉等: "云计算的数据计算与存储", 电脑知识与技术, no. 16, 5 June 2012 (2012-06-05), pages 3803 - 3805 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625543A (zh) * 2020-05-27 2020-09-04 贵州易鲸捷信息技术有限公司 一种基于HBase表实现全局单调递增的序列的方法
CN111625543B (zh) * 2020-05-27 2023-08-25 贵州易鲸捷信息技术有限公司 一种基于HBase表实现全局单调递增的序列的方法

Similar Documents

Publication Publication Date Title
Chambers et al. Spark: The definitive guide: Big data processing made simple
EP4020248A1 (en) Technique for generating views of archived business data
Karau et al. High performance Spark: best practices for scaling and optimizing Apache Spark
Banker et al. MongoDB in action: covers MongoDB version 3.0
US9639542B2 (en) Dynamic mapping of extensible datasets to relational database schemas
US9619502B2 (en) Combining row based and column based tables to form mixed-mode tables
US9805137B2 (en) Virtualizing schema relations over a single database relation
JP2015072688A (ja) Hadoopにおける強化されたSQLライクなクエリのためのバックグラウンドフォーマット最適化
CN102982075A (zh) 支持访问异构数据源的系统和方法
Khan et al. SQL Database with physical database tuning technique and NoSQL graph database comparisons
US10474675B2 (en) Explain tool for optimizing SPARQL queries
Dharmasiri et al. A federated approach on heterogeneous NoSQL data stores
US9916360B2 (en) Joining operations in document oriented databases
CN105760418B (zh) 用于对关系数据库表进行交叉列搜索的方法和系统
US10055450B1 (en) Efficient management of temporal knowledge
US10303786B2 (en) Retrieving and displaying data from a columnar database
US20090037455A1 (en) Handling Column Renaming as Part of Schema Evolution in a Data Archiving Tool
US10409815B2 (en) SQLScript compilation tracing system
CN113515564A (zh) 基于j2ee的数据访问方法、装置、设备及存储介质
CN110147359A (zh) 一种增量生成方法、装置以及一种数据更新方法、装置
Nie et al. Efficient SPARQL query processing in mapreduce through data partitioning and indexing
CN111966687B (zh) 一种大型机db2数据库表分区方法和装置
US9881055B1 (en) Language conversion based on S-expression tabular structure
US10203952B2 (en) Transparently splitting and rewriting data-base object bundles to database entities
US9959295B1 (en) S-expression based computation of lineage and change impact analysis

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