CN105094707A - 一种数据存储、读取方法及装置 - Google Patents
一种数据存储、读取方法及装置 Download PDFInfo
- Publication number
- CN105094707A CN105094707A CN201510508092.9A CN201510508092A CN105094707A CN 105094707 A CN105094707 A CN 105094707A CN 201510508092 A CN201510508092 A CN 201510508092A CN 105094707 A CN105094707 A CN 105094707A
- Authority
- CN
- China
- Prior art keywords
- data
- mapping relations
- value
- module
- application layer
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2372—Updates performed during offline database operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据存储、读取方法及装置,用于解决数据存储过程较为复杂的技术问题。所述数据存储方法包括:接收应用层下发的待写入的第一格式的第一数据;获取所述第一格式的数据与第二格式的数据之间的第一映射关系;所述第二格式为KeyValue格式,所述第一映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性;根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到第二数据;存储所述第二数据。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种数据存储、读取方法及装置。
背景技术
在分布式数据库中,数据一般是以KeyValue(键-值)的形式进行存储的。其中,Key部分,用来唯一识别一行数据,也是用来进行快速检索数据的信息,例如,通过搜索一个数据的Key,就可以搜索到该数据。Key部分,通常是由用户自定义的特定结构。Value部分,用来存储实际的数据。可以认为,Key是一个标识性信息,用于区分不同的数据,value部分存储的是真正的数据内容。
在使用KeyValue格式存储数据时,可以有不同的存储方式,例如,一行只存储一个Value,那么一个数据如果包括多个Value,则可能要分为多行进行存储,这种存储方式可以称为单行单Value方式,或者例如,一行存储多个Value,则一个数据可能总共存储为一行,这种存储方式可以称为单行多Value方式。
现有技术中,应用层每次在将数据存储为KeyValue格式时,需要指定数据的存储方式,例如需要指定每行究竟存储多少个Value,在读取时,应用层需要将读取的KeyValue格式的数据自行拼接为原本的数据。
可见,现有技术中的存储方式,存储策略需要应用层参与指定或实施,对用户来说体验不太好,对应用层来说负担也比较大。而且,在存储不同应用的数据时,应用层需要分别指定数据的存储方式,存储过程都较为复杂。
发明内容
本发明实施例提供一种数据存储、读取方法及装置,用于解决数据存储过程较为复杂的技术问题。
第一方面,提供一种数据存储方法,包括:
接收应用层下发的待写入的第一格式的第一数据;
获取所述第一格式的数据与第二格式的数据之间的第一映射关系;所述第二格式为KeyValue格式,所述第一映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性;
根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到第二数据;
存储所述第二数据。
结合第一方面,在第一方面的第一种可能的实现方式中,在存储所述第二数据之后,还包括:
根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
根据所述第三数据更新存储的所述第二数据。
结合第一方面,在第一方面的第二种可能的实现方式中,在存储所述第二数据之后,还包括:
若接收到应用层下发的读取所述第一数据的指令,对存储的所述第二数据进行读取;
根据所述第一映射关系,将所述第二数据的格式转换为所述第一格式,得到第四数据;
向应用层反馈输出所述第四数据。
第二方面,提供一种数据读取方法,包括:
若接收到应用层下发的读取第一数据的指令,对存储的第二数据进行读取;
根据第一映射关系,将所述第二数据的KeyValue格式转换为第一格式;所述第一映射关系用于表明根据所述第一格式的第一数据转换得到的KeyValue格式的每个Value对应的行属性及列属性;
向应用层反馈输出格式转换后的数据。
结合第二方面,在第二方面的第一种可能的实现方式中,在对存储的第二数据进行读取之前,还包括:
接收应用层下发的待写入的所述第一格式的所述第一数据;
获取所述第一格式的数据与第二格式的数据之间的所述第一映射关系;所述第二格式为KeyValue格式;
根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到所述第二数据;
存储所述第二数据。
结合第二方面,在第二方面的第二种可能的实现方式中,在存储所述第二数据之后,还包括:
根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
根据所述第三数据更新存储的所述第二数据。
第三方面,提供一种数据存储装置,包括:
接收模块,用于接收应用层下发的待写入的第一格式的第一数据;
获取模块,用于获取所述第一格式的数据与第二格式的数据之间的第一映射关系;所述第二格式为KeyValue格式,所述第一映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性;
转换模块,用于根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到第二数据;
操作模块,用于存储所述第二数据。
结合第三方面,在第三方面的第一种可能的实现方式中,所述装置还包括恢复模块、第一更新模块和第二更新模块;
所述恢复模块用于:在所述操作模块存储所述第二数据之后,根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
所述第一更新模块用于:使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
所述转换模块还用于:根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
所述第二更新模块用于:根据所述第三数据更新存储的所述第二数据。
结合第三方面,在第三方面的第二种可能的实现方式中,所述装置还包括读取模块和输出模块;
所述读取模块用于:在所述操作模块存储所述第二数据之后,若接收到应用层下发的读取所述第一数据的指令,对存储的所述第二数据进行读取;
所述转换模块还用于:根据所述第一映射关系,将所述第二数据的格式转换为所述第一格式,得到第四数据;
所述输出模块用于:向应用层反馈输出所述第四数据。
第四方面,提供一种数据读取装置,包括:
读取模块,用于若接收到应用层下发的读取第一数据的指令,对存储的第二数据进行读取;
转换模块,用于根据第一映射关系,将所述第二数据的KeyValue格式转换为第一格式;所述第一映射关系用于表明根据所述第一格式的第一数据转换得到的KeyValue格式的每个Value对应的行属性及列属性;
输出模块,用于向应用层反馈输出格式转换后的数据。
结合第四方面,在第四方面的第一种可能的实现方式中,所述装置还包括接收模块、获取模块和操作模块;
所述接收模块用于:在所述读取模块对存储的第二数据进行读取之前,接收应用层下发的待写入的第一格式的所述第一数据;
所述获取模块用于:获取所述第一格式的数据与第二格式的数据之间的所述第一映射关系;所述第二格式为KeyValue格式;
所述转换模块还用于:根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到第二数据;
所述操作模块用于:存储所述第二数据。
结合第四方面,在第四方面的第二种可能的实现方式中,所述装置还包括恢复模块、第一更新模块和第二更新模块;
所述恢复模块用于:在所述操作模块存储第二数据之后,根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
所述第一更新模块用于:使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
所述转换模块还用于:根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
所述第二更新模块用于:根据所述第三数据更新存储的所述第二数据。
第五方面,提供一种数据存储装置,包括:
接收器,用于接收应用层下发的待写入的第一格式的第一数据;
处理器,用于获取所述第一格式的数据与第二格式的数据之间的第一映射关系,并根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到第二数据;所述第二格式为KeyValue格式,所述第一映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性;
存储器,用于存储所述第二数据。
结合第五方面,在第五方面的第一种可能的实现方式中,所述处理器还用于:
在通过所述存储器存储所述第二数据之后,根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
根据所述第三数据更新存储的所述第二数据。
结合第五方面,在第五方面的第二种可能的实现方式中,所述装置还包括发送器;
所述处理器还用于:在通过所述存储器存储所述第二数据之后,若接收到应用层下发的读取所述第一数据的指令,对存储的所述第二数据进行读取;根据所述第一映射关系,将所述第二数据的格式转换为所述第一格式,得到第四数据;
所述发送器用于:向应用层反馈输出所述第四数据。
第六方面,提供一种数据读取装置,包括:
处理器,用于若接收到应用层下发的读取第一数据的指令,对存储的第二数据进行读取;根据第一映射关系,将存储器中存储的所述第二数据的键值KeyValue格式转换为第一格式;所述第一映射关系用于表明根据所述第一格式的第一数据转换得到的KeyValue格式的每个Value对应的行属性及列属性;
发送器,用于向应用层反馈输出格式转换后的数据。
结合第六方面,在第六方面的第一种可能的实现方式中,所述装置还包括接收器;
所述接收器用于:在所述处理器对存储的第二数据进行读取之前,接收应用层下发的待写入的第一格式的所述第一数据;
所述处理器还用于:获取所述第一格式的数据与第二格式的数据之间的所述第一映射关系;所述第二格式为KeyValue格式;根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到所述第二数据;
所述存储器还用于:存储所述第二数据。
结合第六方面,在第六方面的第二种可能的实现方式中,所述处理器还用于:
在所述存储器存储所述第二数据之后,根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
根据所述第三数据更新存储的所述第二数据。
第七方面,提供一种数据存储装置,所述数据存储装置包括处理器和存储器,所述处理器与所述存储器通过总线连接;
所述存储器用于存储计算机执行指令,当所述数据存储装置运行时,所述处理器读取所述存储器存储的所述计算机执行指令,以使所述数据存储装置执行如前任一方面所述的数据存储方法。
第七方面,提供一种数据读取装置,所述数据读取装置包括处理器和存储器,所述处理器与所述存储器通过总线连接;
所述存储器用于存储计算机执行指令,当所述数据读取装置运行时,所述处理器读取所述存储器存储的所述计算机执行指令,以使所述数据读取装置执行如前任一方面所述的数据读取方法。
本发明实施例中设置了数据存储前的格式以及KeyValue格式之间的映射关系(即第一映射关系),在进行数据存储时,设备会自动根据第一映射关系进行存储,无需用户过多的参与,并且无论是设置映射关系、存储映射关系还是进行格式转换,都无需应用层完成,对用户来说使用环境较为友好,提高用户体验,减轻应用层的负担。在设置映射关系后,就可以直接根据映射关系进行数据转换和存储,无需每次都指定数据的存储方式,降低了数据处理过程的复杂度,有利于推广应用。
附图说明
图1为本发明实施例中数据存储方法的流程图;
图2为本发明实施例中数据读取方法的流程图;
图3A为本发明实施例中数据存储过程的示意图;
图3B为本发明实施例中数据读取过程的示意图;
图4为本发明实施例中数据存储装置的结构框图;
图5为本发明实施例中数据读取装置的结构框图;
图6A-图6B为本发明实施例中数据存储装置的结构示意图;
图7A-图7B为本发明实施例中数据读取装置的结构示意图;
图8为本发明实施例中数据存储装置的另一种结构示意图;
图9为本发明实施例中数据读取装置的另一种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的技术方案可以应用于KeyValue类型的分布式数据库。
在KeyValue分布式数据库中,数据都是以KeyValue形式存在的。其中,数据的Key部分,用来唯一识别一行数据记录,也是用来检索数据的索引信息,数据的Key部分可以是由用户自定义的特定结构。数据的Value部分用来存储真正的数据内容。
举例来说明一下KeyValue分布式数据库的特点:
例1:
KeyValue分布式数据库可以用于存储网页信息。例如,可以使用Key来存储网页的URL(UniformResoureLocator,统一资源定位符),在Value部分可以存储该URL指示的网页的实际内容,如下:
Key(URL)->Value(PageContent(页面内容))
例2:
KeyValue分布式数据库可以用于存储用户的一些基础信息。
假设用户的基础信息包含如下字段:
{ID(Identity,身份标识号),Name(姓名),Address(地址),Age(年龄),Gender(性别),Phone(电话),Education(教育)}
在使用KeyValue分布式数据库存储该基础信息时,可以将其中的ID作为Key部分的内容,其他均作为Value部分的内容。并且可以认为,该基础信息中包含多个Value,即,Name、Address、Age、Gender、Phone、以及Education分别可以看作一个Value。在存储这类信息时,在KeyValue分布式数据库的一行数据记录中,可以只包括一个Value,或者也可以包括多个Value。如果一行数据记录只包括一个Value,那么这类信息可能要分为多行进行存储,如果一行数据记录中包括多个Value,那么这类信息可以存储为一行记录。例如:
一行数据记录包括多个Value的情况如下:
Key(ID)->Value(Name,Address,Age,Gender,Phone,Education)
一行数据记录包括一个Value的情况如下:
Key(ID)->Value(Name)
Key(ID)->Value(Address)
Key(ID)->Value(Age)
Key(ID)->Value(Gender)
Key(ID)->Value(Phone)
Key(ID)->Value(Education)
当然,如果一行数据记录包括多个Value,那么一个基础信息也可以存储为多行,具体取决于一行数据记录究竟包括几个Value。
可以看出来,使用KeyValue分布式数据库进行数据存储时,方式比较灵活,与传统的关系型数据库的使用方式有所不同。比如,在传统的关系型数据库中,需要预先定义存储的数据表有哪些列(属性),一旦定义好了,通常是不允许任意更改的,除非要付出较大的代价。而在KeyValue分布式数据库中,用户可以无需预先定义一个数据表中有哪些列(KeyValue),可以在使用的时候临时定义,对于一行数据记录中究竟包括多少个Value,并未做任何限定。
例3:
假设初始时一个用户的基础信息包括如下字段:
{ID,Name,Address,Age,Gender,Phone,Education}
按照一行数据记录包括一个Value的格式,将该基础信息存储到了KeyValue分布式数据库中,具体存储方式如前已有描述。
过了一段时间之后,用户又为该基础信息增加了一个属性,即增加了一个字段,为Company(公司)。此时,该基础信息变为:
{ID,Name,Address,Age,Gender,Phone,Education,Company}
此时,只需要在KeyValue分布式数据库中为该基础信息新增一行数据记录即可,增加的一行数据记录如下:
Key(ID)->Value(Company)
新增的内容对于已经存在的数据记录没有任何影响。
一般来说,KeyValue分布式数据库的每行数据记录(本发明实施例中,一行数据记录,也可以理解为一条数据记录)通常拥有特定的结构定义,在这个结构定义中,可以包含了如下信息中的一种或任意几种:
Key:可用于标识每一行数据记录的唯一性,并且可用来检索数据;
Timestamp(时间戳):用于记录一行数据记录的生成时间;
Type(类型):用于记录一行数据记录的类型;
Value:用于记录数据内容;
列名信息:与普通的关系型数据库中的列名的概念类似,可反映一行数据记录所记录的是数据的哪部分信息。
本发明实施例中,第一格式可以是任意类型的数据格式,例如第一格式可以是如前所述的用户的基础信息的格式,或者也可以是网页数据的格式,等等。
尽管在KeyValue分布式数据库中,单行多Value是其灵活性的一处体现,但在实际应用中,这会导致数据有一定的膨胀。例如,在上面的例2中,使用单行单Value的形式进行存储就会比使用单行多Value的形式进行存储占用更少的存储空间。原因就在于KeyValue本身拥有特定的结构定义,而这种结构定义将会导致一定的数据膨胀。
因此,在一行数据记录中建议放置尽量少的KeyValue,这样更为节省存储空间。
且,本发明实施例中,设置映射关系、存储映射关系、及进行格式转换等过程都无需应用层完成,而可以由应用层之下的其他模块完成,对应用层来说是不可见的,用户体验较好,应用层负担较小。例如,可以提供一个运行在应用层之下的特定的数据平台,该数据平台可以对应有中间件,中间件可以理解为能够提供用于通过数据平台完成的一些操作的函数接口,通过调用中间件的函数接口,就能在数据平台中完成相应的操作。则,本发明实施例中,设置映射关系、存储映射关系、及进行格式转换等过程,都可以通过调用中间件的方式在数据平台中完成。
另外,本文中术语“***”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本发明实施例作进一步详细描述。
请参见图1,本发明实施例提供一种数据存储方法,所述方法的流程描述如下。
步骤101:接收应用层下发的待写入的第一格式的第一数据。
用户向KeyValue分布式数据库中写入第一数据,用户在写入时,第一数据的格式为第一格式。其中,用户是与应用层进行交互,即应用层接收第一数据,并将待写入的第一数据下发至其他模块,例如其他模块可以是上述包含中间件的数据平台,中间件可在步骤101对应获取该第一数据。这样,后续对第一数据进行的整个格式转换、存储等操作,对应用层来说都是不可见的。
步骤102:获取第一格式的数据与第二格式的数据之间的第一映射关系。
其中,第二格式为KeyValue格式,映射关系用于表明根据第一格式的数据转换得到的每个Value对应的行属性及列属性。本发明实施例中,将第一格式的数据和第二格式的数据之间的一种可能的映射关系称为第一映射关系。
即,***中预先存储了第一格式的数据与KeyValue格式的数据之间的第一映射关系,例如可以存储在数据库中,存储的位置对应用层来说可以是不可见的。在将第一格式的数据转换为KeyValue格式的数据后,可以包括一个Key及至少一个Value,通过第一映射关系,可以知道每个Value的行属性及列属性,也就是知道每个Value属于哪一列和哪一行,这样就可以确定将每个Value如何存储。
映射关系可以由***预先设定,例如可以使用***默认的映射关系,或者也可以由用户预先设定,本发明对此不作限制。
可选的,在本发明另一实施例中,在接收写入的第一格式的第一数据之前,还包括:
根据第一格式和第二格式,设置并存储第一映射关系;或
接收并存储第一映射关系。
即,***可以先自行设定第一映射关系,或者第一映射关系也可以由用户预先设定。例如,***可以将第一映射关系存储在数据库中,例如可以是如前所述的特定的数据平台中的数据库,或者也可以存储在相应的文件中,无论存储在哪里,对应用层来说都是不可见的,本发明对具体存储位置不作限制。
另外,在存储映射关系后,也可以根据情况更改映射关系。一般来说,对于一种数据格式来说,其与KeyValue之间的映射关系只能存在一种,否则可能出现数据转换混乱的情况。例如先存储了第一格式的数据和KeyValue格式的数据之间的第一映射关系,如果需要存储另一种第一格式的数据和KeyValue格式的数据之间的映射关系,就会涉及到对第一映射关系进行更改,或者先删除第一映射关系,之后再存储得到的另一种映射关系。无论是直接通过对原映射关系进行修改得到新的映射关系,还是先删除原映射关系之后再存储新的映射关系,都可以看作是对原映射关系进行更改得到了新的映射关系。
可选的,在本发明另一实施例中,在接收写入的第一格式的第一数据之前,还包括:
根据第一格式和第二格式,设置并存储第三映射关系;或
接收并存储第三映射关系;
其中,第三映射关系用于表明根据第一格式的数据转换得到的每个Value对应的行属性及列属性。
可选的,在本发明另一实施例中,在存储第三映射关系之后,还包括:
根据第一映射关系更新第三映射关系;第一映射关系中的每个value对应的行属性与第三映射关系中的每个value对应的行属性不同,和/或,第一映射关系中的每个value对应的列属性与第三映射关系中的每个value对应的列属性不同;
存储更新后的第三映射关系。
更新后的第三映射关系,即为第一映射关系。用第一映射关系更新第三映射关系,可以理解为用第一映射关系替换第三映射关系。
即,在本实施例中,在未存储数据之前,映射关系就进行了一次更改,即开始存储的映射关系是第三映射关系,后来更改为第一映射关系。其中,在需要更改映射关系时,如果还未根据需要更改的映射关系存储数据,则可以直接更改,如本实施例中的介绍,而,如果已经根据需要更改的映射关系存储了数据,则还涉及到对数据进行重新存储,这部分内容将在后面进行介绍。
步骤103:根据第一映射关系,将第一数据的格式转换为第二格式,得到第二数据。
比如,若是如前所述的特定的数据平台接收第一数据,则在接收第一数据后,该特定的数据平台可以调用第一映射关系,根据第一映射关系可以将第一数据的格式转换为第二格式,例如将转换后的第一数据称为第二数据。
例如,第一数据为:
{ColA,ColB,ColC,ColD,ColE}
根据第一映射关系转换得到的第二数据为:
Key(ID)->Value(ColA)
Key(ID)->Value(ColB,ColC)
Key(ID)->Value(ColD,ColE)
即,第一映射关系定义了,第一格式中的第一个value(即ColA)的行属性为第一行的行属性,列属性为第二列(ID所在的列例如为第一列)的列属性,第二个value(即ColB)和第三个value(即ColC)的行属性为第二行的行属性,第二个value的列属性为第二列的列属性,第三个value的列属性为第三列的列属性,第四个value(即ColD)和第五个value(即ColE)的行属性为第三行的行属性,第四个value的列属性为第二列的列属性,第五个value的列属性为第三列的列属性。
步骤104:存储第二数据。
即,在得到第二数据后,可以存储第二数据。第二数据例如可以存储在KeyValue数据库中,KeyValue数据库中例如可以包括多个数据表,例如一个映射关系对应一个数据表,则第二数据可以存储在与第一映射关系对应的数据表中。当然第二数据也可以存储在其他可能的位置,本发明不作限制。
如前介绍了在未存储数据之前可以对映射关系进行更改,下面介绍在存储数据之后更改映射关系的情况。
可选的,在本发明另一实施例中,在存储第二数据之后,还包括:
根据更新前的第一映射关系将第二数据恢复为第一格式的第一数据;
使用第二映射关系更新存储的第一映射关系;第二映射关系用于表明根据第一格式的数据转换得到的每个Value对应的行属性及列属性,且第一映射关系中的每个value对应的行属性与第二映射关系中的每个value对应的行属性不同,和/或,第一映射关系中的每个value对应的列属性与第二映射关系中的每个value对应的列属性不同;
根据更新后的第一映射关系将第一数据的格式转换为第三格式,得到第三数据;
根据第三数据更新存储的第二数据。
更新后的第一映射关系,即为第二映射关系。用第二映射关系更新第一映射关系,可以理解为用第二映射关系替换第一映射关系。
在该实施例中,在更新第一映射关系时,如果已经存储了与第一映射关系对应的数据,例如已经存储了第一数据,那么,可以在更新之前先将第一映射关系对应的数据的格式,按照第一映射关系恢复为数据原来对应的格式,例如数据原来对应的格式为第一格式,在第一映射关系更新之后,再重新将第一格式的数据按照更新后的第一映射关系进行映射,并存储映射后得到的数据,例如,本发明实施例中将第一数据按照更新后的第一映射关系重新映射后得到的数据称为第三数据。根据第三数据更新存储的第二数据,可以理解为用第三数据替换第二数据。
在该实施例中,第二映射关系所对应的两种数据格式分别为第一格式和第三格式,第三格式也可以是KeyValue格式。其中,第三映射关系中的每个value对应的行属性与第二映射关系中的每个value对应的行属性可以相同也可以不同,和/或,第三映射关系中的每个value对应的列属性与第二映射关系中的每个value对应的列属性可以相同也可以不同。
需要说明的是,第一映射关系、第二映射关系和第三映射关系都是第一格式的数据和KeyValue格式的数据之间的映射关系,因此,将第一格式的数据无论按照第一映射关系、第二映射关系还是第三映射关系进行映射,得到的都是第二格式的数据,即KeyValue格式的数据,只是得到的KeyValue格式的数据中,每个value对应的行属性或列属性等可能会不同。
例如,第一数据为:
{ColA,ColB,ColC,ColD,ColE}
根据第三映射关系转换得到的第三数据为:
Key(ID)->Value(ColA)
Key(ID)->Value(ColB,ColC,ColD)
Key(ID)->Value(ColE)
即,第二映射关系定义了,第一格式中的第一个value(即ColA)的行属性为第一行的行属性,列属性为第二列(ID所在的列例如为第一列)的列属性,第二个value(即ColB)、第三个value(即ColC)和第四个value(即ColD)的行属性为第二行的行属性,第二个value的列属性为第二列的列属性,第三个value的列属性为第三列的列属性,第四个value的列属性为第四列的列属性,第五个value(即ColE)的行属性为第三行的行属性,列属性为第二列的列属性。结合前例,可以看到,第二映射关系相对于第一映射关系来说,ColD的行属性和列属性发生了变化,及ColE的列属性发生了变化。
可选的,在本发明另一实施例中,在存储第二数据之后,还包括:
若接收到应用层下发的读取所述第一数据的指令,对存储的第二数据进行读取;
根据第一映射关系,将第二数据的格式转换为第一格式,得到第四数据;
向应用层反馈输出第四数据。
即,因为整个处理过程对应用层来说不可见,所以应用层要读取的还是第一数据。那么,应用层在接收到用于读取第一数据的指令后,可以将指令发送给其他模块,比如发送给如前所述的特定的数据平台,则其他模块接收该读取第一数据的指令后,可以再次调用第一映射关系(该实施例中,第一映射关系未根据第二映射关系进行更新),根据第一映射关系将存储的与第一数据对应的第二数据的格式重新转换为第一格式,得到第四数据,并向应用层反馈第四数据。
在本发明另一实施例中,如果第一映射关系已经根据第二映射关系进行了更新,那么,在根据第三数据更新存储的第二数据之后,还包括:
若接收到应用层下发的读取第一数据的指令,对存储的第三数据进行读取;
根据第二映射关系,将第三数据的格式转换为第一格式,得到第五数据;
向应用层反馈输出第五数据。
同样的,因为整个处理过程对应用层来说不可见,所以应用层要读取的还是第一数据。那么,应用层在接收到用于读取第一数据的指令后,可以将指令发送给其他模块,比如发送给如前所述的特定的数据平台,则其他模块接收该读取第一数据的指令后,可以调用第二映射关系(该实施例中,第一映射关系根据第二映射关系进行了更新),根据第二映射关系将存储的与第一数据对应的第三数据的格式重新转换为第一格式,得到第五数据,并向应用层反馈第五数据。
现有技术中,应用层每次在将数据存储为KeyValue格式时,需要指定数据的存储方式,例如需要指定每行究竟存储多少个Value,在读取时,应用层需要将读取的KeyValue格式的数据自行拼接为原本的数据。可见,存储策略需要应用层参与指定或实施,对用户来说体验不太好,应用层的负担也比较重。而且,在存储数据时,应用层都需要指定数据的存储方式,过程都较为复杂。而采用本发明实施例中的存储和读取方式后,由于预先设置有映射关系,从而无论在存储时还是在读取时都可以直接根据该映射关系进行,无需用户过多的参与,并且无论是设置映射关系、存储映射关系还是进行格式转换,都无需应用层完成,对用户来说体验较好,减轻应用层的负担。在设置映射关系后,就可以直接根据映射关系进行数据转换和存储,无需每次都指定数据的存储方式,降低了数据处理过程的复杂度,简化了数据的存储过程和读取过程。
例如,在本发明另一实施例中,映射关系和数据可以都存储在如前所述的特定的数据平台中,如果要想进行设置映射关系、更新映射关系、删除映射关系、调用映射关系、读数据、写数据、或数据转换等操作,可以通过中间件调用相应的函数接口,从而对数据平台中存储的映射关系或数据等信息进行操作。
请参见图2,基于同一发明构思及上述各实施例,本发明实施例提供一种数据读取方法,所述方法的流程描述如下。
步骤201:若接收到应用层下发的读取第一数据的指令,对存储的第二数据进行读取;
步骤202:根据第一映射关系,将第二数据的KeyValue格式转换为第一格式。其中,第一映射关系用于表明根据第一格式的数据转换得到的KeyValue格式的每个Value对应的行属性及列属性;
步骤203:向应用层反馈输出格式转换后的数据。
本发明实施例中,格式转换后的数据即可以是如前实施例所述的第四数据。
可选的,在本发明另一实施例中,在对存储的第二数据进行读取之前,还包括:
接收应用层下发的待写入的第一格式的第一数据;
获取第一格式的数据与第二格式的数据之间的第一映射关系;第二格式为KeyValue格式;
根据第一映射关系,将第一数据的格式转换为第二格式,得到第二数据;
存储第二数据。
可选的,在本发明另一实施例中,在存储第二数据之后,还包括:
根据更新前的第一映射关系将第二数据恢复为第一格式的第一数据;
使用第二映射关系更新存储的第一映射关系;第二映射关系用于表明根据第一格式的数据转换得到的每个Value对应的行属性及列属性,且第一映射关系中的每个value对应的行属性与第二映射关系中的每个value对应的行属性不同,和/或,第一映射关系中的每个value对应的列属性与第二映射关系中的每个value对应的列属性不同;
根据更新后的第一映射关系将第一数据的格式转换为第三格式,得到第三数据;
根据第三数据更新存储的第一数据。
图2流程所介绍的方法是数据读取的方法,图1流程所介绍的方法是数据存储的方法,两个方法是相互对应的,一些实施过程可相互参考,因此对于重复内容不多做介绍。
本发明实施例中,可以认为,应用层处理的只是第一格式的数据,至于后续是否将第一格式的数据转换为了其他格式(例如第二格式或第三格式等)的数据,对应用层来说都是不可见的,即后续的处理过程都对应用层透明,有效减少了应用层的工作量。
以下举例介绍如前提供的技术方案。
假设用户需要在KeyValue分布式数据库中存储用户的基础信息,并且在该KeyValue分布式数据库中已经创建了对应的存储表,即用于存储用户的基础信息的数据表,例如该存储表的名称为UserInfo。
用户的基础信息例如包含如下字段:
{ID,Name,Address,Age,Gender,Phone,Education}
如果用户是首次使用该KeyValue分布式数据库,则,用户在理解了KeyValue分布式数据库如何设计KeyValue的思路之后,可以确定一行数据记录中包括的Value的数目,即确定数据的存储方式,也就是确定映射关系(例如为第一映射关系)。假设用户确定使用2行数据记录存储一个用户的基础信息。
此时,用户需要调用本发明实施例所提供的元数据定义接口,将第一映射关系定义如下:
KeyValue1:Key(ID)->{Name}
KeyValue2:Key(ID)->{Address,Age,Gender,Phone,Education}
例如,将一行数据记录的第一列统一确定为记录Key的内容,从第二列开始记录Value的内容,例如KeyValue1对应的是存储表中的第一行,KeyValue1对应的是存储表中的第二行,则第一映射关系可以表明,待存储的各Value中:Name的列属性为第二列的列属性,行属性为第一行的行属性,Address的列属性为第二列的列属性,行属性为第二行的行属性,Age的列属性为第三列的列属性,行属性为第二行的行属性,Gender的列属性为第四列的列属性,行属性为第二行的行属性,Phone的列属性为第五列的列属性,行属性为第二行的行属性,Education的列属性为第六列的列属性,行属性为第二行的行属性。
这里的第一映射关系只是一种举例,具体的映射关系可以由***或用户根据情况设定。另外,为了更好地节省存储空间,建议在一行数据记录中存储尽量少的Value。
当然,用户如果已经预先定义了第一映射关系,则后续可以直接使用,无需每次都进行定义。
在本发明实施例所提供的***内部,能够获取第一映射关系。用户在通过本发明实施例所提供的写入接口写入数据(例如写入第一数据)后,在本发明实施例所提供的***内部,可以获取第一映射关系,通过第一映射关系,可以完成用户输入的数据到KeyValue格式的数据之间的转换,得到转换后的第一数据(即第二数据),且这层转换对应用透明。在得到第二数据后,可以将第二数据存储在UserInfo中。
用户在从UserInfo中读取数据时,可以通过本发明实施例所提供的读取接口进行读取。用户读取的可以是第二数据,或者也可以是UserInfo中存储的其他数据。
例如,用户要读取第二数据。在本发明实施例所提供的***内部,首先读取到两个KeyValue,即如前所述的KeyValue1和KeyValue2,然后,***根据第一映射关系,将KeyValue1和KeyValue2重新转换为用户所需的数据的格式,转换后的数据的格式如下:
{ID,Name,Address,Age,Gender,Phone,Education}
这样,用户在读写数据的过程中,并不会感知到KeyValue的信息,也无需知道数据具体是如何存储的,对于用户来说操作十分简便,也提高了操作效率。
例如,本发明实施例提供一个元数据表,可以用于存储映射关系。
请参见图3A,用户通过本发明实施例提供的写入接口写入数据时,***在一个应用层不可见的模块内部,通过参考元数据表中所存储的映射关系,自动完成数据格式的转换,将原始数据的格式转换成对应的KeyValue格式,然后,将转换后的存储到KeyValue分布式数据库的对应的数据表(图3A中称为用户数据表)中。
请继续参见图3B,用户在从KeyValue分布式数据库的数据表(图3B中称为用户数据表)中读取数据时,同样在这个应用层不可见的模块内部,首先读取出对应的KeyValue格式的数据,然后根据元数据表中所存储的映射关系,自动将KeyValue格式的数据的格式还原回用户可见的原始数据的格式。同样的,数据格式的转换过程对应用层不可见。
需要说明的是,KeyValue分布式数据库中可以包括一个或多个数据表,具体可参考现有技术中KeyValue分布式数据库的结构。
以下结合附图介绍本发明实施例中的装置。
请参见图4,基于同一发明构思及上述各实施例,本发明实施例提供一种数据存储装置,该装置包括接收模块401、获取模块402、转换模块403和操作模块404。
接收模块401,用于接收应用层下发的待写入的第一格式的第一数据;
获取模块402,用于获取第一格式的数据与第二格式的数据之间的第一映射关系;第二格式为KeyValue格式,第一映射关系用于表明根据第一格式的数据转换得到的每个Value对应的行属性及列属性;
转换模块403,用于根据第一映射关系,将第一数据的格式转换为第二格式,得到第二数据;
操作模块404,用于存储第二数据。
可选的,在本发明另一实施例中,所述装置还包括恢复模块、第一更新模块和第二更新模块;
恢复模块用于:在操作模块404存储第二数据之后,根据更新前的第一映射关系将第二数据恢复为第一格式的第一数据;
第一更新模块用于:使用第二映射关系更新存储的第一映射关系;第二映射关系用于表明根据第一格式的数据转换得到的每个Value对应的行属性及列属性,且第一映射关系中的每个value对应的行属性与第二映射关系中的每个value对应的行属性不同,和/或,第一映射关系中的每个value对应的列属性与第二映射关系中的每个value对应的列属性不同;
转换模块403还用于:根据更新后的第一映射关系将第一数据的格式转换为第三格式,得到第三数据;
第二更新模块用于:根据第三数据更新存储的第二数据。
可选的,在本发明另一实施例中,所述装置还包括读取模块和输出模块;
读取模块用于:在操作模块404存储第二数据之后,若接收到应用层下发的读取所述第一数据的指令,对存储的第一数据进行读取;
转换模块403还用于:根据第一映射关系,将第二数据的格式转换为第一格式,得到第四数据;
输出模块用于:向应用层反馈输出第四数据。
请参见图5,基于同一发明构思及上述各实施例,本发明实施例提供一种数据读取装置,该装置可以包括读取模块501、转换模块502和输出模块503。
读取模块501,用于若接收到应用层下发的读取第一数据的指令,对存储的第二数据进行读取;
转换模块502,用于根据第一映射关系,将第二数据的KeyValue格式转换为第一格式;第一映射关系用于表明根据第一格式的第一数据转换得到的KeyValue格式的每个Value对应的行属性及列属性;
输出模块503,用于向应用层反馈输出格式转换后的数据。
可选的,在本发明另一实施例中,该装置还包括接收模块、获取模块和操作模块;
接收模块用于:在读取模块501对存储的第二数据进行读取之前,接收应用层下发的待写入的第一格式的第一数据;
获取模块用于:获取第一格式的数据与第二格式的数据之间的第一映射关系;第二格式为KeyValue格式;
转换模块502还用于:根据第一映射关系,将第一数据的格式转换为第二格式,得到第二数据;
操作模块用于:存储第二数据。
可选的,在本发明另一实施例中,该装置还包括恢复模块、第一更新模块和第二更新模块;
恢复模块用于:在操作模块存储第二数据之后,根据更新前的第一映射关系将第二数据恢复为第一格式的第一数据;
第一更新模块用于:使用第二映射关系更新存储的所述第一映射关系;第二映射关系用于表明根据第一格式的数据转换得到的每个Value对应的行属性及列属性,且第一映射关系中的每个value对应的行属性与第二映射关系中的每个value对应的行属性不同,和/或,第一映射关系中的每个value对应的列属性与第二映射关系中的每个value对应的列属性不同;
转换模块502还用于:根据更新后的第一映射关系将第一数据的格式转换为第三格式,得到第三数据;
第二更新模块用于:根据第三数据更新存储的第一数据。
请参见图6A,基于同一发明构思以及上述各实施例,本发明实施例还提供一种数据存储装置,该数据存储装置可以包括存储器601、处理器602和接收器603。可选的,请参见图6B,在本发明另一实施例中,该数据存储装置还可以包括发送器604。
处理器602具体可以是CPU(中央处理器)或ASIC(ApplicationSpecificIntegratedCircuit,特定应用集成电路),可以是一个或多个用于控制程序执行的集成电路,可以是使用FPGA(FieldProgrammableGateArray,现场可编程门阵列)开发的硬件电路,可以是基带芯片。存储器601的数量可以是一个或多个。存储器601可以包括ROM(ReadOnlyMemory,只读存储器)、RAM(RandomAccessMemory,随机存取存储器)和磁盘存储器。接收器603和发送器604可以属于射频***,接收器603和发送器604用于与外部设备进行网络通信,具体可以通过以太网、无线接入网、无线局域网等网络与外部设备进行通信。接收器603和发送器604可以是物理上相互独立的两个元件,也可以是物理上的同一个元件。
这些存储器601、接收器603和发送器604可以通过总线与处理器602相连接,或者也可以通过专门的连接线分别与处理器602连接。
通过对处理器602进行设计编程,将前述所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述实施例中的所示的方法。如何对处理器602进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
本发明实施例中,数据存储装置可以位于如前所述的其他模块(比如特定的数据平台)中,因此可以不直接跟用户进行交互。
接收器603,用于接收应用层下发的待写入的第一格式的第一数据;
处理器602,用于获取第一格式的数据与第二格式的数据之间的第一映射关系,并根据第一映射关系,将第一数据的格式转换为第二格式,得到第二数据;第二格式为KeyValue格式,第一映射关系用于表明根据第一格式的数据转换得到的每个Value对应的行属性及列属性;
存储器601,用于存储第二数据。
可选的,在本发明另一实施例中,处理器602还用于:
在通过存储器601存储第二数据之后,根据更新前的第一映射关系将第二数据恢复为第一格式的第一数据;
使用第二映射关系更新存储的第一映射关系;第二映射关系用于表明根据第一格式的数据转换得到的每个Value对应的行属性及列属性,且第一映射关系中的每个value对应的行属性与第二映射关系中的每个value对应的行属性不同,和/或,第一映射关系中的每个value对应的列属性与第二映射关系中的每个value对应的列属性不同;
根据更新后的第一映射关系将第一数据的格式转换为第三格式,得到第三数据;
根据第三数据更新存储的第二数据。
可选的,在本发明另一实施例中,处理器602还用于:
在通过存储器601存储第二数据之后,若接收到应用层下发的读取所述第一数据的指令,对存储的第二数据进行读取;根据第一映射关系,将第一数据的格式转换为第一格式,得到第四数据;
发送器604用于:向应用层反馈输出第四数据。
请参见图7A,基于同一发明构思以及上述各实施例,本发明一个实施例还提供一种数据读取装置,该数据读取装置可以包括存储器701、处理器702和发送器703。可选的,请参见图7B,在本发明另一实施例中,该数据读取装置还可以包括接收器704。
处理器702具体可以是CPU或ASIC,可以是一个或多个用于控制程序执行的集成电路,可以是使用FPGA开发的硬件电路,可以是基带芯片。存储器701的数量可以是一个或多个。存储器701可以包括ROM、RAM和磁盘存储器。发送器703和接收器704可以属于射频***,发送器703和接收器704用于与外部设备进行网络通信,具体可以通过以太网、无线接入网、无线局域网等网络与外部设备进行通信。发送器703和接收器704可以是物理上相互独立的两个元件,也可以是物理上的同一个元件。
这些存储器701、发送器703和接收器704可以通过总线与处理器702相连接,或者也可以通过专门的连接线分别与处理器702连接。
通过对处理器702进行设计编程,将前述所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述实施例中的所示的方法。如何对处理器702进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
本发明实施例中,
处理器702,用于若接收到应用层下发的读取第一数据的指令,对存储的第二数据进行读取;根据第一映射关系,将存储器701中存储的第二数据的KeyValue格式转换为第一格式;第一映射关系用于表明根据第一格式的第一数据转换得到的KeyValue格式的每个Value对应的行属性及列属性;
发送器703,用于向应用层反馈输出格式转换后的数据。
可选的,在本发明另一实施例中,
接收器704用于:在处理器702对存储的第二数据进行读取之前,接收应用层下发的待写入的第一格式的第一数据;
处理器702还用于:获取第一格式的数据与第二格式的数据之间的第一映射关系;第二格式为KeyValue格式;根据第一映射关系,将第一数据的格式转换为第二格式,得到第二数据;
存储器701还用于:存储第二数据。
可选的,在本发明另一实施例中,处理器702还用于:
在存储器701存储第二数据之后,根据更新前的第一映射关系将第二数据恢复为第一格式的第一数据;
使用第二映射关系更新存储的第一映射关系;第二映射关系用于表明根据第一格式的数据转换得到的每个Value对应的行属性及列属性,且第一映射关系中的每个value对应的行属性与第二映射关系中的每个value对应的行属性不同,和/或,第一映射关系中的每个value对应的列属性与第二映射关系中的每个value对应的列属性不同;
根据更新后的第一映射关系将第一数据的格式转换为第三格式,得到第三数据;
根据第三数据更新存储的第一数据。
请参见图8,基于同一发明构思以及上述各实施例,本发明一个实施例还提供一种数据存储装置800,数据存储装置800可以包括存储器802和处理器801。可选的,请继续参见图8,在本发明另一实施例中,数据存储装置800还可以包括输入/输出接口(I/O接口)805和通信接口804。
处理器801具体可以是CPU或ASIC,可以是一个或多个用于控制程序执行的集成电路,可以是使用FPGA开发的硬件电路,可以是基带芯片。存储器802的数量可以是一个或多个。存储器802可以包括ROM、RAM和磁盘存储器。输入/输出接口805内包括若干专用寄存器和相应的控制逻辑电路,它是处理器801(例如CPU)和I/O设备之间交换信息的媒介和桥梁。通信接口(CommunicationInterface)804可以是指中央处理器和标准的通信子***之间的接口,例如RS232接口。
这些存储器802、输入/输出接口805和通信接口804可以通过总线803与处理器801相连接。
通过对处理器801进行设计编程,将前述所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述实施例中的所示的方法。如何对处理器801进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
本发明实施例中,存储器802用于存储计算机执行指令,当数据存储装置800运行时,处理器801读取所述存储器802存储的所述计算机执行指令,以使数据存储装置800执行如图1流程所介绍的数据存储方法。
请参见图9,基于同一发明构思以及上述各实施例,本发明一个实施例还提供一种数据读取装置900,数据读取装置900可以包括存储器902和处理器901。可选的,请继续参见图9,在本发明另一实施例中,数据读取装置900还可以包括输入/输出接口905和通信接口904。
处理器901具体可以是CPU或ASIC,可以是一个或多个用于控制程序执行的集成电路,可以是使用FPGA开发的硬件电路,可以是基带芯片。存储器902的数量可以是一个或多个。存储器902可以包括ROM、RAM和磁盘存储器。输入/输出接口905内包括若干专用寄存器和相应的控制逻辑电路,它是处理器901(例如CPU)和I/O设备之间交换信息的媒介和桥梁。通信接口904可以是指中央处理器和标准的通信子***之间的接口,例如RS232接口。
这些存储器902、输入/输出接口905和通信接口904可以通过总线903与处理器901相连接。
通过对处理器901进行设计编程,将前述所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述实施例中的所示的方法。如何对处理器901进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
本发明实施例中,存储器902用于存储计算机执行指令,当数据读取装置900运行时,处理器901读取存储器902存储的计算机执行指令,以使数据读取装置900执行如图2流程所介绍的数据读取方法。
本发明实施例中的装置均是与如前所述的方法分别对应的装置,因此,装置中各个模块的工作过程可参考方法部分的描述。
上述各实施例中的数据存储装置和数据读取装置,可以是同一设备,或者也可以是不同的设备,本发明不作限制。
本发明实施例中设置了数据存储前的格式以及KeyValue格式之间的映射关系(即第一映射关系),在进行数据存储时,设备会自动根据第一映射关系进行存储,无需用户过多的参与,并且无论是设置映射关系、存储映射关系还是进行格式转换,都无需应用层完成,对用户来说使用环境较为友好,提高用户体验。在设置映射关系后,就可以直接根据映射关系进行数据转换和存储,无需每次都指定数据的存储方式,降低了数据处理过程的复杂度,有利于推广应用。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (14)
1.一种数据存储方法,其特征在于,包括:
接收应用层下发的待写入的第一格式的第一数据;
获取所述第一格式的数据与第二格式的数据之间的第一映射关系;所述第二格式为键值KeyValue格式,所述第一映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性;
根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到第二数据;
存储所述第二数据。
2.如权利要求1所述的方法,其特征在于,在存储所述第二数据之后,还包括:
根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
根据所述第三数据更新存储的所述第二数据。
3.如权利要求1所述的方法,其特征在于,在存储所述第二数据之后,还包括:
若接收到应用层下发的读取所述第一数据的指令,对存储的所述第二数据进行读取;
根据所述第一映射关系,将所述第二数据的格式转换为所述第一格式,得到第四数据;
向应用层反馈输出所述第四数据。
4.一种数据读取方法,其特征在于,包括:
若接收到应用层下发的读取第一数据的指令,对存储的第二数据进行读取;
根据第一映射关系,将所述第二数据的键值KeyValue格式转换为第一格式;所述第一映射关系用于表明根据所述第一格式的第一数据转换得到的KeyValue格式的每个Value对应的行属性及列属性;
向应用层反馈输出格式转换后的数据。
5.如权利要求4所述的方法,其特征在于,在对存储的第二数据进行读取之前,还包括:
接收应用层下发的待写入的所述第一格式的所述第一数据;
获取所述第一格式的数据与第二格式的数据之间的所述第一映射关系;所述第二格式为KeyValue格式;
根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到所述第二数据;
存储所述第二数据。
6.如权利要求4所述的方法,其特征在于,在存储所述第二数据之后,还包括:
根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
根据所述第三数据更新存储的所述第二数据。
7.一种数据存储装置,其特征在于,包括:
接收模块,用于接收应用层下发的待写入的第一格式的第一数据;
获取模块,用于获取所述第一格式的数据与第二格式的数据之间的第一映射关系;所述第二格式为键值KeyValue格式,所述第一映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性;
转换模块,用于根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到第二数据;
操作模块,用于存储所述第二数据。
8.如权利要求7所述的装置,其特征在于,所述装置还包括恢复模块、第一更新模块和第二更新模块;
所述恢复模块用于:在所述操作模块存储所述第二数据之后,根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
所述第一更新模块用于:使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
所述转换模块还用于:根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
所述第二更新模块用于:根据所述第三数据更新存储的所述第二数据。
9.如权利要求7所述的装置,其特征在于,所述装置还包括读取模块和输出模块;
所述读取模块用于:在所述操作模块存储所述第二数据之后,若接收到应用层下发的读取所述第一数据的指令,对存储的所述第二数据进行读取;
所述转换模块还用于:根据所述第一映射关系,将所述第二数据的格式转换为所述第一格式,得到第四数据;
所述输出模块用于:向应用层反馈输出所述第四数据。
10.一种数据读取装置,其特征在于,包括:
读取模块,用于若接收到应用层下发的读取第一数据的指令,对存储的第二数据进行读取;
转换模块,用于根据第一映射关系,将所述第二数据的键值KeyValue格式转换为第一格式;所述第一映射关系用于表明根据所述第一格式的第一数据转换得到的KeyValue格式的每个Value对应的行属性及列属性;
输出模块,用于向应用层反馈输出格式转换后的数据。
11.如权利要求10所述的装置,其特征在于,所述装置还包括接收模块、获取模块和操作模块;
所述接收模块用于:在所述读取模块对存储的第二数据进行读取之前,接收应用层下发的待写入的第一格式的所述第一数据;
所述获取模块用于:获取所述第一格式的数据与第二格式的数据之间的所述第一映射关系;所述第二格式为KeyValue格式;
所述转换模块还用于:根据所述第一映射关系,将所述第一数据的格式转换为所述第二格式,得到第二数据;
所述操作模块用于:存储所述第二数据。
12.如权利要求10所述的装置,其特征在于,所述装置还包括恢复模块、第一更新模块和第二更新模块;
所述恢复模块用于:在所述操作模块存储第二数据之后,根据更新前的第一映射关系将所述第二数据恢复为所述第一格式的所述第一数据;
所述第一更新模块用于:使用第二映射关系更新存储的所述第一映射关系;所述第二映射关系用于表明根据所述第一格式的数据转换得到的每个Value对应的行属性及列属性,且所述第一映射关系中的每个value对应的行属性与所述第二映射关系中的每个value对应的行属性不同,和/或,所述第一映射关系中的每个value对应的列属性与所述第二映射关系中的每个value对应的列属性不同;
所述转换模块还用于:根据更新后的第一映射关系将所述第一数据的格式转换为第三格式,得到第三数据;
所述第二更新模块用于:根据所述第三数据更新存储的所述第二数据。
13.一种数据存储装置,其特征在于,所述数据存储装置包括处理器和存储器,所述处理器与所述存储器通过总线连接;
所述存储器用于存储计算机执行指令,当所述数据存储装置运行时,所述处理器读取所述存储器存储的所述计算机执行指令,以使所述数据存储装置执行权利要求1至3任一项所述的数据存储方法。
14.一种数据读取装置,其特征在于,所述数据读取装置包括处理器和存储器,所述处理器与所述存储器通过总线连接;
所述存储器用于存储计算机执行指令,当所述数据读取装置运行时,所述处理器读取所述存储器存储的所述计算机执行指令,以使所述数据读取装置执行权利要求4至6任一项所述的数据读取方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510508092.9A CN105094707B (zh) | 2015-08-18 | 2015-08-18 | 一种数据存储、读取方法及装置 |
EP16836379.4A EP3252592A4 (en) | 2015-08-18 | 2016-02-15 | Method and device for storing and reading data |
PCT/CN2016/073811 WO2017028514A1 (zh) | 2015-08-18 | 2016-02-15 | 一种数据存储、读取方法及装置 |
US15/845,665 US20180107725A1 (en) | 2015-08-18 | 2017-12-18 | Data Storage Method and Apparatus, and Data Read Method and Apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510508092.9A CN105094707B (zh) | 2015-08-18 | 2015-08-18 | 一种数据存储、读取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105094707A true CN105094707A (zh) | 2015-11-25 |
CN105094707B CN105094707B (zh) | 2018-03-13 |
Family
ID=54575267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510508092.9A Active CN105094707B (zh) | 2015-08-18 | 2015-08-18 | 一种数据存储、读取方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180107725A1 (zh) |
EP (1) | EP3252592A4 (zh) |
CN (1) | CN105094707B (zh) |
WO (1) | WO2017028514A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202438A (zh) * | 2016-07-13 | 2016-12-07 | 乐视控股(北京)有限公司 | 存储关联数据的方法和*** |
WO2017028514A1 (zh) * | 2015-08-18 | 2017-02-23 | 华为技术有限公司 | 一种数据存储、读取方法及装置 |
WO2017214862A1 (zh) * | 2016-06-14 | 2017-12-21 | 华为技术有限公司 | 数据访问方法和相关装置及*** |
CN107818161A (zh) * | 2017-10-30 | 2018-03-20 | 山东浪潮通软信息科技有限公司 | 一种数据获取方法及装置 |
WO2018108010A1 (en) * | 2016-12-14 | 2018-06-21 | Huawei Technologies Co., Ltd. | System, device and method for data update notification |
CN108681456A (zh) * | 2018-04-02 | 2018-10-19 | 长沙八思量信息技术有限公司 | 版本兼容的数据结构存取方法、计算机装置及存储介质 |
CN108828488A (zh) * | 2018-06-12 | 2018-11-16 | 福建星云电子股份有限公司 | 一种兼容两种因子平台的实现方法 |
WO2019056964A1 (zh) * | 2017-09-22 | 2019-03-28 | 广东神马搜索科技有限公司 | 跨多数据表的数据处理方法、装置、介质和计算设备 |
CN111405035A (zh) * | 2020-03-13 | 2020-07-10 | 北京旷视科技有限公司 | 数据的传输方法及数据通道*** |
CN113961558A (zh) * | 2021-10-08 | 2022-01-21 | 上海信宝博通电子商务有限公司 | 前端数据存储方法、装置及存储介质 |
CN114327256A (zh) * | 2021-11-22 | 2022-04-12 | 南京风兴科技有限公司 | 一种用于神经网络处理器的数据格式在线转换架构及方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10990571B1 (en) * | 2018-01-19 | 2021-04-27 | Amazon Technologies, Inc. | Online reordering of database table columns |
US10579606B2 (en) | 2018-05-03 | 2020-03-03 | Samsung Electronics Co., Ltd | Apparatus and method of data analytics in key-value solid state device (KVSSD) including data and analytics containers |
CN108664609B (zh) * | 2018-05-10 | 2021-04-30 | 中国银行股份有限公司 | 一种数据共享的方法、网络设备及终端 |
US11106629B2 (en) * | 2018-05-18 | 2021-08-31 | Futurewei Technologies, Inc. | Method and system for a distributing computing platform |
CN110569329B (zh) * | 2019-10-28 | 2022-08-02 | 深圳市商汤科技有限公司 | 数据处理方法及装置、电子设备和存储介质 |
WO2021218280A1 (en) * | 2020-04-28 | 2021-11-04 | Huawei Technologies Co., Ltd. | Data storage and data retrieval methods and devices |
US11747996B2 (en) | 2020-08-05 | 2023-09-05 | Dropbox, Inc. | System and methods for implementing a key-value data store |
JP2022059247A (ja) * | 2020-10-01 | 2022-04-13 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及びプログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216535A1 (en) * | 2004-03-29 | 2005-09-29 | Nobuyuki Saika | Backup method, storage system, and program for backup |
US7035993B2 (en) * | 2002-01-11 | 2006-04-25 | Simpletech, Inc. | Flash memory data access method and configuration employing logical-to-virtual and virtual-to-physical sector mapping |
CN104090730A (zh) * | 2014-07-08 | 2014-10-08 | 飞天诚信科技股份有限公司 | 一种对存储设备进行数据读写的方法及装置 |
CN104182184A (zh) * | 2014-08-27 | 2014-12-03 | 浪潮电子信息产业股份有限公司 | 一种分布式块存储克隆方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6999956B2 (en) * | 2000-11-16 | 2006-02-14 | Ward Mullins | Dynamic object-driven database manipulation and mapping system |
US7149730B2 (en) * | 2002-05-03 | 2006-12-12 | Ward Mullins | Dynamic class inheritance and distributed caching with object relational mapping and cartesian model support in a database manipulation and mapping system |
US8949294B2 (en) * | 2011-03-23 | 2015-02-03 | Red Hat, Inc. | Data grid supporting multiple protocols |
JP5888336B2 (ja) * | 2011-10-06 | 2016-03-22 | 富士通株式会社 | データ処理方法、分散処理システムおよびプログラム |
CN102332030A (zh) * | 2011-10-17 | 2012-01-25 | 中国科学院计算技术研究所 | 用于分布式键-值存储***的数据存储、管理和查询方法及*** |
CN102982130A (zh) * | 2012-11-16 | 2013-03-20 | 深圳市融创天下科技股份有限公司 | 一种nosql与rdbms的数据库同步方法和*** |
CN103077183B (zh) * | 2012-12-14 | 2017-11-17 | 北京普泽创智数据技术有限公司 | 一种分布式顺序表的数据导入方法及其*** |
US9104762B1 (en) * | 2013-01-14 | 2015-08-11 | Amazon Technologies, Inc. | Universal database management |
CN103678716B (zh) * | 2013-12-31 | 2017-01-04 | 中国科学院深圳先进技术研究院 | 一种基于格式数据集的分布式数据存储与计算方法 |
JP6361199B2 (ja) * | 2014-03-20 | 2018-07-25 | 日本電気株式会社 | 情報記憶システム |
CN105094707B (zh) * | 2015-08-18 | 2018-03-13 | 华为技术有限公司 | 一种数据存储、读取方法及装置 |
-
2015
- 2015-08-18 CN CN201510508092.9A patent/CN105094707B/zh active Active
-
2016
- 2016-02-15 EP EP16836379.4A patent/EP3252592A4/en not_active Ceased
- 2016-02-15 WO PCT/CN2016/073811 patent/WO2017028514A1/zh active Application Filing
-
2017
- 2017-12-18 US US15/845,665 patent/US20180107725A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7035993B2 (en) * | 2002-01-11 | 2006-04-25 | Simpletech, Inc. | Flash memory data access method and configuration employing logical-to-virtual and virtual-to-physical sector mapping |
US20050216535A1 (en) * | 2004-03-29 | 2005-09-29 | Nobuyuki Saika | Backup method, storage system, and program for backup |
CN104090730A (zh) * | 2014-07-08 | 2014-10-08 | 飞天诚信科技股份有限公司 | 一种对存储设备进行数据读写的方法及装置 |
CN104182184A (zh) * | 2014-08-27 | 2014-12-03 | 浪潮电子信息产业股份有限公司 | 一种分布式块存储克隆方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017028514A1 (zh) * | 2015-08-18 | 2017-02-23 | 华为技术有限公司 | 一种数据存储、读取方法及装置 |
US10437481B2 (en) | 2016-06-14 | 2019-10-08 | Huawei Technologies Co., Ltd. | Data access method and related apparatus and system |
WO2017214862A1 (zh) * | 2016-06-14 | 2017-12-21 | 华为技术有限公司 | 数据访问方法和相关装置及*** |
CN106202438A (zh) * | 2016-07-13 | 2016-12-07 | 乐视控股(北京)有限公司 | 存储关联数据的方法和*** |
WO2018108010A1 (en) * | 2016-12-14 | 2018-06-21 | Huawei Technologies Co., Ltd. | System, device and method for data update notification |
WO2019056964A1 (zh) * | 2017-09-22 | 2019-03-28 | 广东神马搜索科技有限公司 | 跨多数据表的数据处理方法、装置、介质和计算设备 |
CN107818161A (zh) * | 2017-10-30 | 2018-03-20 | 山东浪潮通软信息科技有限公司 | 一种数据获取方法及装置 |
CN108681456A (zh) * | 2018-04-02 | 2018-10-19 | 长沙八思量信息技术有限公司 | 版本兼容的数据结构存取方法、计算机装置及存储介质 |
CN108828488A (zh) * | 2018-06-12 | 2018-11-16 | 福建星云电子股份有限公司 | 一种兼容两种因子平台的实现方法 |
CN108828488B (zh) * | 2018-06-12 | 2020-10-27 | 福建星云电子股份有限公司 | 一种兼容两种因子平台的实现方法 |
CN111405035A (zh) * | 2020-03-13 | 2020-07-10 | 北京旷视科技有限公司 | 数据的传输方法及数据通道*** |
CN113961558A (zh) * | 2021-10-08 | 2022-01-21 | 上海信宝博通电子商务有限公司 | 前端数据存储方法、装置及存储介质 |
CN114327256A (zh) * | 2021-11-22 | 2022-04-12 | 南京风兴科技有限公司 | 一种用于神经网络处理器的数据格式在线转换架构及方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3252592A1 (en) | 2017-12-06 |
WO2017028514A1 (zh) | 2017-02-23 |
EP3252592A4 (en) | 2018-05-23 |
CN105094707B (zh) | 2018-03-13 |
US20180107725A1 (en) | 2018-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094707A (zh) | 一种数据存储、读取方法及装置 | |
US10216826B2 (en) | Database query system | |
CN105786405B (zh) | 一种在线升级方法、装置及*** | |
CN102968373B (zh) | 一种测试***的维护方法及装置 | |
CN104008064A (zh) | 用于多级存储器压缩的方法和*** | |
CN102902763B (zh) | 关联、检索信息处理数据和处理信息任务的方法及装置 | |
CN103970578A (zh) | 主从mcu升级方法 | |
CN105786578A (zh) | 一种参数配置***及配置方法 | |
CN108399072A (zh) | 应用页面更新方法和装置 | |
CN104424219A (zh) | 一种数据文件的管理方法及装置 | |
CN105677904A (zh) | 基于分布式文件***的小文件存储方法及装置 | |
CN108959108A (zh) | 固态硬盘访问方法以及使用该方法的装置 | |
CN110019111A (zh) | 数据处理方法、装置、存储介质以及处理器 | |
CN105518669A (zh) | 数据模型改变管理 | |
CN108304142B (zh) | 一种数据管理方法和装置 | |
CN110989891B (zh) | 一种图表编辑器中组件部署方法、图表编辑器及相关设备 | |
EP2965492A1 (en) | Selection of data storage settings for an application | |
CN112925783A (zh) | 业务数据处理方法和装置、电子设备和存储介质 | |
CN105574031A (zh) | 用于数据库索引的方法和*** | |
CN104657050A (zh) | 数据操作设备和方法 | |
CN105260266A (zh) | 一种快照卷写方法及依赖快照*** | |
CN104216834A (zh) | 一种内存访问的方法、缓冲调度器和内存模块 | |
CN112000646B (zh) | 一种数据库初始化方法、装置及电子设备和存储介质 | |
US10289740B2 (en) | Computer systems to outline search content and related methods therefor | |
CN112162731B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220215 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |