CN103473239A - 一种非关系型数据库数据更新方法和装置 - Google Patents

一种非关系型数据库数据更新方法和装置 Download PDF

Info

Publication number
CN103473239A
CN103473239A CN2012101876860A CN201210187686A CN103473239A CN 103473239 A CN103473239 A CN 103473239A CN 2012101876860 A CN2012101876860 A CN 2012101876860A CN 201210187686 A CN201210187686 A CN 201210187686A CN 103473239 A CN103473239 A CN 103473239A
Authority
CN
China
Prior art keywords
file
data file
data
new data
new
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
CN2012101876860A
Other languages
English (en)
Other versions
CN103473239B (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201210187686.0A priority Critical patent/CN103473239B/zh
Publication of CN103473239A publication Critical patent/CN103473239A/zh
Application granted granted Critical
Publication of CN103473239B publication Critical patent/CN103473239B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明公开了一种非关系型数据库数据更新方法和装置,该方法包括:接收更新指令,并记录所述更新指令中携带的更新数据,所述更新数据包括主键和对应的更新操作内容;当预设的第一触发事件发生时,查找各更新数据中的主键所属的数据文件;根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件。采用本发明提供的方法,可以提高非关系型数据库历史数据更新的效率。

Description

一种非关系型数据库数据更新方法和装置
技术领域
本发明涉及网络技术领域,特别涉及一种非关系型数据库数据更新方法和装置。
背景技术
关系型数据库中的表都具有固定的数据结构,每个元组(数据库表中的每一条记录)的字段组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组的所有字段分配相应的数据。例如,某数据库表中包括姓名、年龄、籍贯三个字段,那么该表中的每条记录都需要包括姓名、年龄、籍贯三个字段,即使其中某个元组的某个字段的内容为空,***也要为其分配一个默认值,如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为本发明实施例提供的非关系型数据库数据更新方法的流程示意图;
图4为本发明实施例提供的非关系型数据库数据更新方法中根据更新数据查找对应数据文件的示意图;
图5为本发明实施例提供的非关系型数据库数据更新方法中元数据文件存储内容的示意图;
图6为本发明实施例提供的非关系型数据库数据更新方法中数据查询方法的流程示意图;
图7为本发明实施例提供的非关系型数据库数据更新方法的流程示意图;
图8为本发明实施例提供的非关系型数据库数据更新装置的结构示意图。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
在本实施例中,更新数据以Memtable的存储结构存储在更新文件中,历史数据以SSTable的存储结构存储在一个或多个数据文件中。SSTable结构是一种分布式的键值存储结构,每个数据文件中都可以包含多个SSTable,每个SSTable中可以存储有多个value(主键对应的值)和对应的块内索引,每个SSTable的结构可以如图2所示。在进行查询的时候,可以先根据key(主键)查询其所属的数据文件,然后再进一步查询其在该数据文件中所属的SSTable,由于历史数据的数量非常庞大,采用SSTable结构可以提升查询效率。Memtable是一种非分布式的存储结构,由于更新数据一般数量比较少,所以采用Memtable结构可以提升存储效率。
如图3所示,为本发明实施例提供的非关系型数据库数据更新方法的处理的流程,具体包括以下步骤:
步骤301,***接收更新指令,并记录更新指令中携带的更新数据,更新数据包括主键和对应的更新操作内容。
数据库的维护人员可以通过服务器或管理终端发出更新指令,***接收到更新指令后,可以先将更新指令中的更新数据存储在更新文件当中,具体可以采用列表的形式存储key和对应的更新操作内容。更新数据中可以包括其需要更新的key,并包括对相应的key-value对进行的操作(即更新操作内容),该更新操作内容可以是删除key-value对、添加key-value对或修改value等。
步骤302,当预设的第一触发事件发生时,***查找各更新数据中的主键所属的数据文件。
具体的,该预设的第一触发事件可以是达到预设更新数据合并周期,即***预先设置更新数据合并周期,按照周期进行更新数据与历史数据的合并。另外,预设的第一触发事件还可以是接收到更新数据合并指令,即可以由数据库维护人员发送更新数据合并指令,以指示***将更新数据与历史数据进行合并。
具体的,如图4所示,***可以根据元数据文件中记录的元数据,查找各更新数据中的key对应的数据文件。元数据是一种用于描述数据的数据,元数据文件中记录的元数据的队列可以如图5所示,可以包括每个数据文件的文件编号、文件中key的范围、文件的存储容量等信息。另外,在元数据文件中还可以记录文件编号的信息,如已用文件编号、可用文件编号。
步骤303,***根据更新数据中的更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用新的数据文件替换合并前的数据文件。
***针对每条更新数据,根据更新数据中的key找到其对应的数据文件,然后将更新数据与相应的数据文件进行合并。具体的,合并的操作是根据更新数据中的更新操作内容进行的,可以包括删除key-value对、添加key-value对或修改value等。
当多个更新数据key对应到同一个数据文件时,此多个更新数据共同与该数据文件合并到新的数据文件中。合并过程会根据原数据文件中的各key和value,以及更新数据中的key和对应的更新操作内容,按照key的顺序,在新的数据文件中重新顺序生成各SSTable,SSTable的存储容量为预先设置的数值。
优选的,***可以为合并得到的新的数据文件分配新的文件编号(在可用文件编号中选取)。在合并结束后,***可以删除被替换的数据文件,并释放该数据文件的文件编号,该文件编号由已用文件编号变为可用文件编号。
在本实施例上述流程中,***可以预先建立两个用于记录更新数据的目录,将接收到的更新指令中携带的更新数据记录到其中一个目录中;然后,每当第一触发事件发生时,进行目录切换,将后续接收到的更新指令中携带的更新数据记录到另一个目录中,并将之前使用的目录中记录的各更新数据与对应的数据文件合并到新的数据文件中;将之前使用的目录中记录的各更新数据与对应的数据文件合并到新的数据文件中之后,删除之前使用的目录中的更新数据。
具体的,可以采用0、1目录的方式对更新数据进行进行存储,分别建立更新数据的0目录文件、1目录文件,每当第一触发事件发生时,进行目录切换,假设当前使用的是0目录,当第一触发事件发生开始进行合并过程时,新接收到的更新数据将被存储到目录1中,将目录0中的更新数据与相应的数据文件进行合并,且在合并过程结束后,0目录中的更新数据将被删除,然后,下一次发生第一触发事件时,再切换回到0目录进行更新数据存储,将目录1中的更新数据与相应的数据文件进行合并,且在合并过程结束后,删除1目录中的更新数据,依此类推。
优选的,本发明实施例还提供了的的非关系型数据库数据更新方法,还可以包括:当预设的第二触发事件发生时,判断相邻多个数据文件的存储容量之和是否超过预设存储容量阈值,如果没有超过,则将所述多个数据文件合并为一个数据文件。其中的第二触发事件可以是达到预设数据文件合并周期,也可以是各更新数据与相应的数据文件合并完毕,还可以是接收到数据文件合并指令。具体的数据文件的合并过程可以包括如下步骤:
步骤A,根据数据文件中包含的主键的顺序对数据文件进行排序,将排序后的数据文件中的第一个数据文件作为基准文件。
根据数据文件中存储的key的顺序,可以对数据文件进行排序。例如,数据文件1中包含key1、key2、key3,数据文件2中包含key4、key5、key6,数据文件3中包含key7、key8、key9,则根据key的顺序可以确定数据文件的顺序为数据文件1、数据文件2、数据文件3。
步骤B,判断基准文件是否为排序后的数据文件中的最后一个数据文件;如果是,则结束流程;否则,确定基准文件与基准文件的下一个数据文件的存储空间之和,并执行步骤C。
步骤C,判断所述存储空间之和是否超过预设的空间阈值;如果是,则将所述基准文件的下一个数据文件作为基准文件,并转至步骤B;否则,将基准文件与基准文件的下一个数据文件合并,将合并后的数据文件作为基准文件,并转至步骤B。
例如,对数据文件1到数据文件n进行数据文件合并过程,设置存储容量阈值为1M(兆)。将数据文件1作为基准文件,判断基准文件与数据文件2的存储容量之和是否超过1M,假设没有超过1M,则将数据文件1与数据文件2合并为数据文件1’,将数据文件1’作为基准文件,并继续判断基准文件与数据文件3的存储容量之和是否超过1M,假设超过1M,则将数据文件3作为基准文件,判断基准文件与数据文件4的存储容量之和是否超过1M,依此类推,直至基准文件是数据文件队列中的最后一个文件时,结束流程。
本发明实施例还提供了一种数据查询的方法,***预先对应各数据文件建立索引文件,索引文件中记录其对应的数据文件中的各SSTable所存储的主键的范围。具体的,索引文件中可以记录SSTable中的开始key,SSTable中key的个数,SSTable数据在其所属的数据文件中的偏移。在数据库启动时,***可以预先将各索引文件的内容加载到内存中。
如图6所示,该数据查询方法的流程可以包括如下步骤:
步骤601,当接收到查询指令时,***确定所述查询指令中携带的主键所属的数据文件。***可以根据元数据文件中记录的元数据,查找各更新数据中的key对应的数据文件,具体方法在步骤302中已作阐述,在此不再累述。
步骤602,***根据该数据文件对应的索引文件中记录的该数据文件中的各SSTable所存储的主键的范围,确定查询指令中携带的主键所属的SSTable。
在数据库启动时,***可以预先将各索引文件的内容加载到内存中。然后,***可以根据内存中加载的数据文件中各SSTable所存储的主键的范围,确定相应的主键所属的SSTable。
步骤603,在该主键所属的SSTable中查找该主键对应的值。
本发明实施例中,接收更新指令,并记录更新指令中携带的更新数据,更新数据包括主键和对应的更新操作内容,当预设的第一触发事件发生时,查找记录的各更新数据中的主键所属的数据文件,根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件,从而,可以提高非关系型数据库历史数据更新的效率。
实施例二
如图7所示,为本发明实施例提供的非关系型数据库数据更新方法在具体应用场景中的处理流程,可以包括如下步骤:
步骤701,***切换到更新数据合并模式,获取当前数据正在使用的目录。假设当前使用的目录是0目录,后续再接收到的更新数据将存入到1目录中。
步骤702,获取该目录中所有更新数据对应的key,并根据元数据查找各key对应的数据文件。
步骤703,分配可用文件编号,建立新的数据文件,并将各更新数据与其对应的数据文件合并到新的数据文件中。合并结束后,可以删除合并前的数据文件及其对应的索引文件,并将其文件编号释放为可用。
步骤704,建立新的数据文件的索引文件,并将该索引文件的内容更新到内存中。可以用该索引文件的内容替换合并前的数据文件对应的索引文件在内存中的相应内容。
步骤705,结束更新数据与历史数据的合并流程,***切换到正常模式。在正常模式下,***只接收更新数据并存储到相应的目录中,而不进行更新数据与历史数据的合并。
本发明实施例中,接收更新指令,并记录更新指令中携带的更新数据,更新数据包括主键和对应的更新操作内容,当预设的第一触发事件发生时,查找记录的各更新数据中的主键所属的数据文件,根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件,从而,可以提高非关系型数据库历史数据更新的效率。
实施例三
基于相同的技术构思,本发明实施例还提供了一种非关系型数据库数据更新装置,如图8所示,包括:
记录模块810,用于接收更新指令,并记录所述更新指令中携带的更新数据,所述更新数据包括主键和对应的更新操作内容;
查找模块820,用于当预设的第一触发事件发生时,查找各更新数据中的主键所属的数据文件;
更新模块830,用于根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件。
优选的,还包括更新数据管理模块,用于:
预先建立两个用于记录所述更新数据的目录;
将接收到的更新指令中携带的更新数据记录到其中一个目录中;
每当所述第一触发事件发生时,进行目录切换,将后续接收到的更新指令中携带的更新数据记录到另一个目录中,并将之前使用的目录中记录的各更新数据与对应的数据文件合并到新的数据文件中;
将之前使用的目录中记录的各更新数据与对应的数据文件合并到新的数据文件中之后,删除之前使用的目录中的更新数据。
优选的,还包括合并模块,用于:
当预设的第二触发事件发生时,判断相邻多个数据文件的存储容量之和是否超过预设存储容量阈值,如果没有超过,则将所述多个数据文件合并为一个数据文件。
优选的,所述合并模块,具体用于:
步骤A,根据数据文件中包含的主键的顺序对数据文件进行排序,将排序后的数据文件中的第一个数据文件作为基准文件;
步骤B,判断基准文件是否为排序后的数据文件中的最后一个数据文件;如果是,则结束流程;否则,确定基准文件与基准文件的下一个数据文件的存储空间之和,并执行步骤C;
步骤C,判断所述存储空间之和是否超过预设的空间阈值;如果是,则将所述基准文件的下一个数据文件作为基准文件,并转至步骤B;否则,将基准文件与基准文件的下一个数据文件合并,将合并后的数据文件作为基准文件,并转至步骤B。
优选的,所述预设的第二触发事件,具体为达到预设数据文件合并周期。
优选的,还包括:
建立模块,用于对应各数据文件建立索引文件,索引文件中记录其对应的数据文件中的各SSTable所存储的主键的范围;
查询模块,用于当接收到查询指令时,确定所述查询指令中携带的主键所属的数据文件;根据该数据文件对应的索引文件中记录的该数据文件中的各SSTable所存储的主键的范围,确定所述查询指令中携带的主键所属的SSTable;在该主键所属的SSTable中查找该主键对应的值。
优选的,所述预设的第一触发事件,具体为达到预设更新数据合并周期。
优选的,还包括文件编号管理模块,用于:
为所述新的数据文件分配新的文件编号;
删除被替换的数据文件,并释放该数据文件的文件编号。
本发明实施例中,接收更新指令,并记录更新指令中携带的更新数据,更新数据包括主键和对应的更新操作内容,当预设的第一触发事件发生时,查找记录的各更新数据中的主键所属的数据文件,根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件,从而,可以提高非关系型数据库历史数据更新的效率。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (16)

1.一种非关系型数据库数据更新方法,其特征在于,包括:
接收更新指令,并记录所述更新指令中携带的更新数据,所述更新数据包括主键和对应的更新操作内容;
当预设的第一触发事件发生时,查找各更新数据中的主键所属的数据文件;
根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件。
2.如权利要求1所述的方法,其特征在于,预先建立两个用于记录所述更新数据的目录;
将接收到的更新指令中携带的更新数据记录到其中一个目录中;
每当所述第一触发事件发生时,进行目录切换,将后续接收到的更新指令中携带的更新数据记录到另一个目录中,并将之前使用的目录中记录的各更新数据与对应的数据文件合并到新的数据文件中;
将之前使用的目录中记录的各更新数据与对应的数据文件合并到新的数据文件中之后,删除之前使用的目录中的更新数据。
3.如权利要求1所述的方法,其特征在于,还包括:
当预设的第二触发事件发生时,判断相邻多个数据文件的存储容量之和是否超过预设存储容量阈值,如果没有超过,则将所述多个数据文件合并为一个数据文件。
4.、如权利要求3所述的方法,其特征在于,所述判断相邻多个数据文件的存储容量之和是否超过预设存储容量阈值,如果没有超过,则将所述多个数据文件合并为一个数据文件,具体为:
步骤A,根据数据文件中包含的主键的顺序对数据文件进行排序,将排序后的数据文件中的第一个数据文件作为基准文件;
步骤B,判断基准文件是否为排序后的数据文件中的最后一个数据文件;如果是,则结束流程;否则,确定基准文件与基准文件的下一个数据文件的存储空间之和,并执行步骤C;
步骤C,判断所述存储空间之和是否超过预设的空间阈值;如果是,则将所述基准文件的下一个数据文件作为基准文件,并转至步骤B;否则,将基准文件与基准文件的下一个数据文件合并,将合并后的数据文件作为基准文件,并转至步骤B。
5.如权利要求3所述的方法,其特征在于,所述预设的第二触发事件,具体为达到预设数据文件合并周期。
6.如权利要求1所述的方法,其特征在于,还包括:对应各数据文件建立索引文件,索引文件中记录其对应的数据文件中的各SSTable所存储的主键的范围;
当接收到查询指令时,确定所述查询指令中携带的主键所属的数据文件;
根据该数据文件对应的索引文件中记录的该数据文件中的各SSTable所存储的主键的范围,确定所述查询指令中携带的主键所属的SSTable;
在该主键所属的SSTable中查找该主键对应的值。
7.如权利要求1所述的方法,其特征在于,所述预设的第一触发事件,具体为达到预设更新数据合并周期。
8.如权利要求1所述的方法,其特征在于,还包括:
为所述新的数据文件分配新的文件编号;
删除被替换的数据文件,并释放该数据文件的文件编号。
 
9.一种非关系型数据库数据更新装置,其特征在于,包括:
记录模块,用于接收更新指令,并记录所述更新指令中携带的更新数据,所述更新数据包括主键和对应的更新操作内容;
查找模块,用于当预设的第一触发事件发生时,查找各更新数据中的主键所属的数据文件;
更新模块,用于根据更新数据中的所述更新操作内容,将各更新数据与其对应的数据文件合并到新的数据文件中,并用所述新的数据文件替换合并前的数据文件。
10.如权利要求9所述的装置,其特征在于,还包括更新数据管理模块,用于:
预先建立两个用于记录所述更新数据的目录;
将接收到的更新指令中携带的更新数据记录到其中一个目录中;
每当所述第一触发事件发生时,进行目录切换,将后续接收到的更新指令中携带的更新数据记录到另一个目录中,并将之前使用的目录中记录的各更新数据与对应的数据文件合并到新的数据文件中;
将之前使用的目录中记录的各更新数据与对应的数据文件合并到新的数据文件中之后,删除之前使用的目录中的更新数据。
11.如权利要求9所述的装置,其特征在于,还包括合并模块,用于:
当预设的第二触发事件发生时,判断相邻多个数据文件的存储容量之和是否超过预设存储容量阈值,如果没有超过,则将所述多个数据文件合并为一个数据文件。
12.如权利要求11所述的装置,其特征在于,所述合并模块,具体用于:
步骤A,根据数据文件中包含的主键的顺序对数据文件进行排序,将排序后的数据文件中的第一个数据文件作为基准文件;
步骤B,判断基准文件是否为排序后的数据文件中的最后一个数据文件;如果是,则结束流程;否则,确定基准文件与基准文件的下一个数据文件的存储空间之和,并执行步骤C;
步骤C,判断所述存储空间之和是否超过预设的空间阈值;如果是,则将所述基准文件的下一个数据文件作为基准文件,并转至步骤B;否则,将基准文件与基准文件的下一个数据文件合并,将合并后的数据文件作为基准文件,并转至步骤B。
13.如权利要求11所述的装置,其特征在于,所述预设的第二触发事件,具体为达到预设数据文件合并周期。
14.如权利要求9所述的装置,其特征在于,还包括:
建立模块,用于对应各数据文件建立索引文件,索引文件中记录其对应的数据文件中的各SSTable所存储的主键的范围;
查询模块,用于当接收到查询指令时,确定所述查询指令中携带的主键所属的数据文件;根据该数据文件对应的索引文件中记录的该数据文件中的各SSTable所存储的主键的范围,确定所述查询指令中携带的主键所属的SSTable;在该主键所属的SSTable中查找该主键对应的值。
15.如权利要求9所述的装置,其特征在于,所述预设的第一触发事件,具体为达到预设更新数据合并周期。
16.如权利要求9所述的装置,其特征在于,还包括文件编号管理模块,用于:
为所述新的数据文件分配新的文件编号;
删除被替换的数据文件,并释放该数据文件的文件编号。
CN201210187686.0A 2012-06-08 2012-06-08 一种非关系型数据库数据更新方法和装置 Active CN103473239B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210187686.0A CN103473239B (zh) 2012-06-08 2012-06-08 一种非关系型数据库数据更新方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210187686.0A CN103473239B (zh) 2012-06-08 2012-06-08 一种非关系型数据库数据更新方法和装置

Publications (2)

Publication Number Publication Date
CN103473239A true CN103473239A (zh) 2013-12-25
CN103473239B CN103473239B (zh) 2016-12-21

Family

ID=49798095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210187686.0A Active CN103473239B (zh) 2012-06-08 2012-06-08 一种非关系型数据库数据更新方法和装置

Country Status (1)

Country Link
CN (1) CN103473239B (zh)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744628A (zh) * 2014-01-27 2014-04-23 北京奇虎科技有限公司 SSTable文件存储方法及装置
CN104285223A (zh) * 2013-12-31 2015-01-14 华为技术有限公司 修改根结点的方法和修改装置
WO2016175880A1 (en) * 2015-04-29 2016-11-03 Hewlett Packard Enterprise Development Lp Merging incoming data in a database
CN106375360A (zh) * 2015-07-24 2017-02-01 阿里巴巴集团控股有限公司 一种图数据更新方法、装置及***
WO2017020576A1 (zh) * 2015-07-31 2017-02-09 华为技术有限公司 一种键值存储***中文件压实的方法和装置
CN106603610A (zh) * 2015-10-19 2017-04-26 阿里巴巴集团控股有限公司 一种数据获取方法及装置
CN107016548A (zh) * 2016-12-09 2017-08-04 阿里巴巴集团控股有限公司 客户***、信息处理方法和读写方法及装置
CN107145501A (zh) * 2017-03-20 2017-09-08 中国建设银行股份有限公司 文件更新方法、文件复制方法以及相应的***
CN107315764A (zh) * 2017-05-11 2017-11-03 北京奇艺世纪科技有限公司 一种非关系型数据库关联数据的更新方法及***
CN107682356A (zh) * 2017-10-26 2018-02-09 广州市雷军游乐设备有限公司 数据的更新方法及装置、设备以及存储介质
CN108121718A (zh) * 2016-11-28 2018-06-05 北京国双科技有限公司 一种数据处理方法及同步设备
CN108512948A (zh) * 2018-03-21 2018-09-07 平安普惠企业管理有限公司 通讯录更新方法、装置、计算机设备和存储介质
CN109597819A (zh) * 2018-12-07 2019-04-09 北京字节跳动网络技术有限公司 用于更新数据库的方法和装置
CN109933573A (zh) * 2019-01-30 2019-06-25 北京融链科技有限公司 数据库业务更新方法、装置及***
CN109947700A (zh) * 2019-01-30 2019-06-28 上海卫星工程研究所 基于多级文件符号的星载成像数据管理方法
CN110109866A (zh) * 2017-12-28 2019-08-09 中移(杭州)信息技术有限公司 一种文件***目录的管理方法及设备
CN110147359A (zh) * 2017-12-13 2019-08-20 北京奇虎科技有限公司 一种增量生成方法、装置以及一种数据更新方法、装置
US10467192B2 (en) 2014-11-12 2019-11-05 Hauwei Technologies Co.,Ltd. Method and apparatus for updating data table in keyvalue database
CN110727685A (zh) * 2019-10-09 2020-01-24 苏州浪潮智能科技有限公司 一种基于Cassandra数据库的数据压缩方法、设备以及存储介质
CN111488405A (zh) * 2020-04-16 2020-08-04 北京字节跳动网络技术有限公司 一种信息更新方法及装置
CN112015819A (zh) * 2020-08-31 2020-12-01 杭州欧若数网科技有限公司 分布式图数据库的数据更新方法、装置、设备及介质
CN110019212B (zh) * 2017-11-29 2021-06-18 杭州海康威视数字技术股份有限公司 一种数据处理方法、装置及数据库服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499069A (zh) * 2008-02-02 2009-08-05 中兴通讯股份有限公司 内存数据库文件的更新方法及更新装置
US20100306236A1 (en) * 2009-05-29 2010-12-02 Sun Microsystems, Inc. Data Policy Management System and Method for Managing Data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499069A (zh) * 2008-02-02 2009-08-05 中兴通讯股份有限公司 内存数据库文件的更新方法及更新装置
US20100306236A1 (en) * 2009-05-29 2010-12-02 Sun Microsystems, Inc. Data Policy Management System and Method for Managing Data

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
佚名: "Nosql数据库教程之初探MongoDB-第一部", 《HTTP://M.GBIN1.COM/TECHNOLOGY/JAVAUTILITIES/20120116GETTINGSTARTEDWITHMONGODBPART1/INDEX.HTML》 *
佚名: "键值存储【KV存储】以及SSTable介绍", 《HTTP://BLOG.SINA.COM.CN/S/BLOG_502D765F01010NWX.HTML》 *

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104285223B (zh) * 2013-12-31 2018-03-13 华为技术有限公司 修改根结点的方法和修改装置
CN104285223A (zh) * 2013-12-31 2015-01-14 华为技术有限公司 修改根结点的方法和修改装置
WO2015100626A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 修改根结点的方法和修改装置
US10289710B2 (en) 2013-12-31 2019-05-14 Huawei Technologies Co., Ltd. Method for modifying root node, and modification apparatus
CN103744628B (zh) * 2014-01-27 2016-09-28 北京奇虎科技有限公司 SSTable文件存储方法及装置
CN103744628A (zh) * 2014-01-27 2014-04-23 北京奇虎科技有限公司 SSTable文件存储方法及装置
US10467192B2 (en) 2014-11-12 2019-11-05 Hauwei Technologies Co.,Ltd. Method and apparatus for updating data table in keyvalue database
WO2016175880A1 (en) * 2015-04-29 2016-11-03 Hewlett Packard Enterprise Development Lp Merging incoming data in a database
CN106375360A (zh) * 2015-07-24 2017-02-01 阿里巴巴集团控股有限公司 一种图数据更新方法、装置及***
WO2017020576A1 (zh) * 2015-07-31 2017-02-09 华为技术有限公司 一种键值存储***中文件压实的方法和装置
US11232073B2 (en) 2015-07-31 2022-01-25 Huawei Technologies Co., Ltd. Method and apparatus for file compaction in key-value store system
CN106603610A (zh) * 2015-10-19 2017-04-26 阿里巴巴集团控股有限公司 一种数据获取方法及装置
CN106603610B (zh) * 2015-10-19 2019-11-22 阿里巴巴集团控股有限公司 一种数据获取以及同步方法、装置
CN108121718A (zh) * 2016-11-28 2018-06-05 北京国双科技有限公司 一种数据处理方法及同步设备
CN108121718B (zh) * 2016-11-28 2021-12-24 北京国双科技有限公司 一种数据处理方法及同步设备
CN107016548A (zh) * 2016-12-09 2017-08-04 阿里巴巴集团控股有限公司 客户***、信息处理方法和读写方法及装置
CN107016548B (zh) * 2016-12-09 2022-01-28 创新先进技术有限公司 客户***、信息处理方法和读写方法及装置
CN107145501B (zh) * 2017-03-20 2020-09-29 中国建设银行股份有限公司 文件更新方法、文件复制方法以及相应的***
CN107145501A (zh) * 2017-03-20 2017-09-08 中国建设银行股份有限公司 文件更新方法、文件复制方法以及相应的***
CN107315764B (zh) * 2017-05-11 2020-04-21 北京奇艺世纪科技有限公司 一种非关系型数据库关联数据的更新方法及***
CN107315764A (zh) * 2017-05-11 2017-11-03 北京奇艺世纪科技有限公司 一种非关系型数据库关联数据的更新方法及***
CN107682356A (zh) * 2017-10-26 2018-02-09 广州市雷军游乐设备有限公司 数据的更新方法及装置、设备以及存储介质
CN110019212B (zh) * 2017-11-29 2021-06-18 杭州海康威视数字技术股份有限公司 一种数据处理方法、装置及数据库服务器
CN110147359A (zh) * 2017-12-13 2019-08-20 北京奇虎科技有限公司 一种增量生成方法、装置以及一种数据更新方法、装置
CN110109866A (zh) * 2017-12-28 2019-08-09 中移(杭州)信息技术有限公司 一种文件***目录的管理方法及设备
CN110109866B (zh) * 2017-12-28 2021-11-09 中移(杭州)信息技术有限公司 一种文件***目录的管理方法及设备
CN108512948B (zh) * 2018-03-21 2022-05-17 平安普惠企业管理有限公司 通讯录更新方法、装置、计算机设备和存储介质
CN108512948A (zh) * 2018-03-21 2018-09-07 平安普惠企业管理有限公司 通讯录更新方法、装置、计算机设备和存储介质
CN109597819A (zh) * 2018-12-07 2019-04-09 北京字节跳动网络技术有限公司 用于更新数据库的方法和装置
CN109947700A (zh) * 2019-01-30 2019-06-28 上海卫星工程研究所 基于多级文件符号的星载成像数据管理方法
CN109933573B (zh) * 2019-01-30 2021-06-01 北京融链科技有限公司 数据库业务更新方法、装置及***
CN109933573A (zh) * 2019-01-30 2019-06-25 北京融链科技有限公司 数据库业务更新方法、装置及***
CN110727685A (zh) * 2019-10-09 2020-01-24 苏州浪潮智能科技有限公司 一种基于Cassandra数据库的数据压缩方法、设备以及存储介质
CN110727685B (zh) * 2019-10-09 2022-04-22 苏州浪潮智能科技有限公司 一种基于Cassandra数据库的数据压缩方法、设备以及存储介质
CN111488405A (zh) * 2020-04-16 2020-08-04 北京字节跳动网络技术有限公司 一种信息更新方法及装置
CN112015819A (zh) * 2020-08-31 2020-12-01 杭州欧若数网科技有限公司 分布式图数据库的数据更新方法、装置、设备及介质

Also Published As

Publication number Publication date
CN103473239B (zh) 2016-12-21

Similar Documents

Publication Publication Date Title
CN103473239A (zh) 一种非关系型数据库数据更新方法和装置
CN106708427B (zh) 一种适用于键值对数据的存储方法
CN103020315B (zh) 一种基于主从分布式文件***的海量小文件存储方法
CN103902623B (zh) 用于在存储***上存取文件的方法和***
CN109857724B (zh) 基于区块链实现支持多种数据库的方法及设备
CN102629247B (zh) 一种数据处理方法、装置和***
US8799601B1 (en) Techniques for managing deduplication based on recently written extents
US20160283538A1 (en) Fast multi-tier indexing supporting dynamic update
CN102542071B (zh) 一种分布式处理数据的***及方法
CN103023982B (zh) 一种云存储客户端的低延迟元数据访问方法
CN105912687B (zh) 海量分布式数据库存储单元
CN105468473A (zh) 数据迁移方法及数据迁移装置
CN104408111A (zh) 一种删除重复数据的方法及装置
CN102495894A (zh) 重复数据查找方法、装置及***
CN105117417A (zh) 一种读优化的内存数据库Trie树索引方法
CN105631003A (zh) 支持海量数据分组统计的智能索引构建、查询及维护方法
CN101923571B (zh) 管理终端数据记录的方法及装置
CN103488687A (zh) 用于大数据的搜索***和搜索方法
CN103106286A (zh) 元数据的管理方法和装置
CN104239377A (zh) 跨平台的数据检索方法及装置
CN102739622A (zh) 一种可扩展的数据存储***
CN102779138A (zh) 实时数据的硬盘存取方法
CN103853714A (zh) 一种数据处理方法和装置
CN105159845A (zh) 存储器读取方法
CN104111924A (zh) 一种数据库***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200902

Address after: 518057 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518057 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

TR01 Transfer of patent right