一种数据存储、读取方法及装置的制造方法

文档序号:9371860阅读:232来源:国知局
一种数据存储、读取方法及装置的制造方法
【技术领域】
[0001 ] 本发明涉及存储技术领域,特别涉及一种数据存储、读取方法及装置。
【背景技术】
[0002]在分布式数据库中,数据一般是以KeyValue(键-值)的形式进行存储的。其中,Key部分,用来唯一识别一行数据,也是用来进行快速检索数据的信息,例如,通过搜索一个数据的Key,就可以搜索到该数据。Key部分,通常是由用户自定义的特定结构。Value部分,用来存储实际的数据。可以认为,Key是一个标识性信息,用于区分不同的数据,value部分存储的是真正的数据内容。
[0003]在使用KeyValue格式存储数据时,可以有不同的存储方式,例如,一行只存储一个Value,那么一个数据如果包括多个Value,则可能要分为多行进行存储,这种存储方式可以称为单行单Value方式,或者例如,一行存储多个Value,则一个数据可能总共存储为一行,这种存储方式可以称为单行多Value方式。
[0004]现有技术中,应用层每次在将数据存储为KeyValue格式时,需要指定数据的存储方式,例如需要指定每行究竟存储多少个Value,在读取时,应用层需要将读取的KeyValue格式的数据自行拼接为原本的数据。
[0005]可见,现有技术中的存储方式,存储策略需要应用层参与指定或实施,对用户来说体验不太好,对应用层来说负担也比较大。而且,在存储不同应用的数据时,应用层需要分别指定数据的存储方式,存储过程都较为复杂。

【发明内容】

[0006]本发明实施例提供一种数据存储、读取方法及装置,用于解决数据存储过程较为复杂的技术问题。
[0007]第一方面,提供一种数据存储方法,包括:
[0008]接收应用层下发的待写入的第一格式的第一数据;
[0009]获取所述第一格式的数据与第二格式的数据之间的第一映射关系;所述第二格式为KeyValue格式,所述第一映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性;
[0010]根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到第二数据;
[0011]存储所述第二数据。
[0012]结合第一方面,在第一方面的第一种可能的实现方式中,在存储所述第二数据之后,还包括:
[0013]根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
[0014]使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
[0015]根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
[0016]根据所述第三数据更新存储的所述第二数据。
[0017]结合第一方面,在第一方面的第二种可能的实现方式中,在存储所述第二数据之后,还包括:
[0018]若接收到应用层下发的读取所述第一数据的指令,对存储的所述第二数据进行读取;
[0019]根据所述第一映射关系,将所述第二数据的格式转换为所述第一格式,得到第四数据;
[0020]向应用层反馈输出所述第四数据。
[0021]第二方面,提供一种数据读取方法,包括:
[0022]若接收到应用层下发的读取第一数据的指令,对存储的第二数据进行读取;
[0023]根据第一映射关系,将所述第二数据的KeyValue格式转换为第一格式;所述第一映射关系用于表明根据所述第一格式的第一数据转换得到的KeyValue格式的每个Value对应的行属性及列属性;
[0024]向应用层反馈输出格式转换后的数据。
[0025]结合第二方面,在第二方面的第一种可能的实现方式中,在对存储的第二数据进行读取之前,还包括:
[0026]接收应用层下发的待写入的所述第一格式的所述第一数据;
[0027]获取所述第一格式的数据与第二格式的数据之间的所述第一映射关系;所述第二格式为KeyValue格式;
[0028]根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到所述第二数据;
[0029]存储所述第二数据。
[0030]结合第二方面,在第二方面的第二种可能的实现方式中,在存储所述第二数据之后,还包括:
[0031]根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
[0032]使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
[0033]根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
[0034]根据所述第三数据更新存储的所述第二数据。
[0035]第三方面,提供一种数据存储装置,包括:
[0036]接收模块,用于接收应用层下发的待写入的第一格式的第一数据;
[0037]获取模块,用于获取所述第一格式的数据与第二格式的数据之间的第一映射关系;所述第二格式为KeyValue格式,所述第一映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性;
[0038]转换模块,用于根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到第二数据;
[0039]操作模块,用于存储所述第二数据。
[0040]结合第三方面,在第三方面的第一种可能的实现方式中,所述装置还包括恢复模块、第一更新模块和第二更新模块;
[0041]所述恢复模块用于:在所述操作模块存储所述第二数据之后,根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
[0042]所述第一更新模块用于:使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
[0043]所述转换模块还用于:根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
[0044]所述第二更新模块用于:根据所述第三数据更新存储的所述第二数据。
[0045]结合第三方面,在第三方面的第二种可能的实现方式中,所述装置还包括读取模块和输出模块;
[0046]所述读取模块用于:在所述操作模块存储所述第二数据之后,若接收到应用层下发的读取所述第一数据的指令,对存储的所述第二数据进行读取;
[0047]所述转换模块还用于:根据所述第一映射关系,将所述第二数据的格式转换为所述第一格式,得到第四数据;
[0048]所述输出模块用于:向应用层反馈输出所述第四数据。
[0049]第四方面,提供一种数据读取装置,包括:
[0050]读取模块,用于若接收到应用层下发的读取第一数据的指令,对存储的第二数据进行读取;
[0051]转换模块,用于根据第一映射关系,将所述第二数据的KeyValue格式转换为第一格式;所述第一映射关系用于表明根据所述第一格式的第一数据转换得到的KeyValue格式的每个Value对应的行属性及列属性;
[0052]输出模块,用于向应用层反馈输出格式转换后的数据。
[0053]结合第四方面,在第四方面的第一种可能的实现方式中,所述装置还包括接收模块、获取模块和操作模块;
[0054]所述接收模块用于:在所述读取模块对存储的第二数据进行读取之前,接收应用层下发的待写入的第一格式的所述第一数据;
[0055]所述获取模块用于:获取所述第一格式的数据与第二格式的数据之间的所述第一映射关系;所述第二格式为KeyValue格式;
[0056]所述转换模块还用于:根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到第二数据;
[0057]所述操作模块用于:存储所述第二数据。
[0058]结合第四方面,在第四方面的第二种可能的实现方式中,所述装置还包括恢复模块、第一更新模块和第二更新模块;
[0059]所述恢复模块用于:在所述操作模块存储第二数据之后,根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
[0060]所述第一更新模块用于:使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
[0061]所述转换模块还用于:根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
[0062]所述第二更新模块用于:根据所述第三数据更新存储的所述第二数据。
[0063]第五方面,提供一种数据存储装置,包括:
[0064]接收器,用于接收应用层下发的待写入的第一格式的第一数据;
[0065]处理器,用于获取所述第一格式的数据与第二格式的数据之间的第一映射关系,并根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到第二数据;所述第二格式为KeyValue格式,所述第一映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性;
[0066]存储器,用于存储所述第二数据。
[0067]结合第五方面,在第五方面的第一种可能的实现方式中,所述处理器还用于:
[0068]在通过所述存储器存储所述第二数据之后,根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
[0069]使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
[0070]根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
[0071 ] 根据所述第三数据更新存储的所述第二数据。
[0072]结合第五方面,在第五方面的第二种可能的实现方式中,所述装置还包括发送器;
[0073]所述处理器还用于:在通过所述存储器存储所述第二数据之后,若接收到应用层下发的读取所述第一数据的指令,对存储的
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1