CN102609452B - 数据的存储方法及装置 - Google Patents

数据的存储方法及装置 Download PDF

Info

Publication number
CN102609452B
CN102609452B CN201210007568.7A CN201210007568A CN102609452B CN 102609452 B CN102609452 B CN 102609452B CN 201210007568 A CN201210007568 A CN 201210007568A CN 102609452 B CN102609452 B CN 102609452B
Authority
CN
China
Prior art keywords
data
field
data content
length
content
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.)
Expired - Fee Related
Application number
CN201210007568.7A
Other languages
English (en)
Other versions
CN102609452A (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.)
SHANGHAI XIBEN NETWORK TECHNOLOGY Co Ltd
Original Assignee
SHANGHAI XIBEN NETWORK 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 SHANGHAI XIBEN NETWORK TECHNOLOGY Co Ltd filed Critical SHANGHAI XIBEN NETWORK TECHNOLOGY Co Ltd
Priority to CN201210007568.7A priority Critical patent/CN102609452B/zh
Publication of CN102609452A publication Critical patent/CN102609452A/zh
Application granted granted Critical
Publication of CN102609452B publication Critical patent/CN102609452B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

一种数据的存储方法及装置,所述数据的存储方法包括:获取数据,所述数据包括字段,所述字段包括字段名和数据内容;对所述字段名进行标识;建立所述字段名的索引,所述索引包括所述标识与该字段的数据内容的映射关系;将所述字段名的索引及所述字段的数据内容保存为数据记录,所述数据记录包括存储所述索引的索引区和存储所述数据内容的数据存储区。本发明的技术方案可以降低对存储资源的消耗,且提高数据的查询效率。

Description

数据的存储方法及装置
技术领域
本发明涉及数据存储技术,尤其是一种数据的存储方法及装置。
背景技术
目前能支持存取有灵活数据字段(Schema-Flexible)的数据记录的存储格式,均是把每个字段的字段名及其存储的数据字段的类型信息都包含在记录内。
由此导致的数据记录中可以有自定义的字段数据,并能被正确地检索出来。但实际工作中,同一个数据集内存储完全不一致的数据记录或字段非常灵活多变的数据字段的场景很少。因此与数据字段内容同步存储其字段名的方式会带来以下问题:
1.大量相类似的数据记录中,重复的字段名很长占用较大的存储空间,一旦存储大量数据,字段名的存储会消耗大量的存储空间,对资源造成浪费;
2.字段名为避免重复或具有特殊的含义,往往会被定义的很长,在对该数据字段的读取过程中,字段名的检索操作占据了整个读取过程的大部分时间,这极大地降低了读取的效率。
公开号为CN 1503147A的中国专利,公开了一种数据库中对象关系的处理方法,简化了数据库中对象之间关系的管理流程,减小了数据库维护的工作量。
但是如何降低对存储资源的消耗,且提高数据的查询效率成为目前亟待解决的问题之一。
发明内容
本发明解决的问题是降低对存储资源的消耗,且提高数据的查询效率。
为解决上述问题,本发明提供了一种数据的存储方法,包括:
获取数据,所述数据包括字段,所述字段包括字段名和数据内容;
对所述字段名进行标识;
建立所述字段名的索引,所述索引包括所述标识与该字段的数据内容的映射关系;
将所述字段名的索引及所述字段的数据内容保存为数据记录,所述数据记录包括存储所述索引的索引区和存储所述数据内容的数据存储区。
为解决上述问题,本发明还提供了一种数据的存储装置,包括:
获取单元,用以获取数据,所述数据包括字段,每个字段包括字段名和数据内容;
标识单元,用以对所述字段名进行标识;
索引单元,用以建立所述字段名的索引,所述索引包括所述标识与该字段的数据内容的映射关系;
记录单元,用以将所述字段名的索引及所述字段的数据内容保存为数据记录,所述数据记录包括存储所述索引的索引区和存储所述数据内容的数据存储区。
与现有技术相比,本发明具有以下优点:
配合唯一的数据实体Schema定义,避免每次都传递大量冗余的字段名到后端存储,起到了数据内容压缩的效果。
与元数据定义相配合,依然支持用字段名读取属性内容,且在后端查询时,避免用字段名去匹配查询(用编号直接定位字段所在存储位置),大大提高原来查询时寻址的效率。
总体的读取,展开效率大大提高。
对字段名进行标识,并设置所述标识与该字段的数据内容的映射关系。不再存储字段名不仅可以节省存储空间,起到数据压缩的效果,而且简化了对数据读取的时间,提高了效率。
上述映射关系以索引的形式建立并存储,依据映射关系查找该标识(字段名)的数据内容。这依然支持用字段名读取属性内容,且在后端查询时,避免用字段名去匹配查询的时间,不仅速度快而且定位准确,不易出错。
字段的数据内容还可以嵌套下一级的字段,这种存储方式可以很好的体现数据之间的包含关系,且下一级的字段的存储方式与上一级的字段的存储方式相同。查询下一级的字段时,先获取整个下一级的字段,再获取下一级的字段的数据内容的,这种总体的读取,展开效率大大提高,读取方便且快捷。
附图说明
图1是本发明实施例提供的数据的存储方法的流程图;
图2是本发明实施例提供的数据的示意图;
图3是本发明实施例提供的数据的存储装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。
图1是本发明实施例提供的数据的存储方法的流程图,下面结合图1详细说明。
步骤S1,获取数据,所述数据包括字段,所述字段包括字段名和数据内容;
步骤S2,对所述字段名进行标识;
步骤S3,建立所述字段名的索引,所述索引包括所述标识与该字段的数据内容的映射关系;
步骤S4,将所述字段名的索引及所述字段的数据内容保存为数据记录,所述数据记录包括存储所述索引的索引区和存储所述数据内容的数据存储区。
所述步骤S1中,数据(也可以称为Schema,数据实体或元数据)中可以包括多个字段,每个字段包含字段名和该字段的数据内容,数据内容也称为该字段的值。所述字段还包括该字段的数据内容的数据类型和该字段的数据内容的长度,所述该字段的数据内容的数据类型(也可以简称为字段的类型)通常为string,int,double等数据类型。该字段的数据内容的长度(也可以简称为字段的长度),通常以字节为单位,也可以是其他单位。
所述数据类型可以分为第一类型和第二类型。所述字段的数据内容的数据类型属于第一类型,该字段的数据内容的长度固定。例如,int型,该数据类型的字段的数据内容的长度固定为4字节,long型,该数据类型的字段的数据内容的长度固定为8字节。所述字段的数据内容的数据类型属于第二类型,该字段的数据内容的长度不固定。例如,string型,该数据类型的字段的数据内容的长度随着数据内容的变化而变化,若string型的字段的数据内容为“123”,其长度为3,若string型的字段的数据内容为“123456”,其长度为6;二进制型,该数据类型的字段的数据内容的长度也是随着数据内容的变化而变化的。
所述字段的数据内容中还可以嵌套字段(也称为该字段的下一级字段),也就是说,数据内容可以是简单的数值、文本还可以是复杂的字段。数据内容中嵌套的字段,也是具有字段名、数据内容的,还可以具有类型和长度。另外,数据内容中嵌套的字段的数据内容还可以再嵌套字段,也就是说,数据内容也是多层的嵌套结构。数据内容中嵌套的字段的数目可以是一个也可以是多个,嵌套的层数可以是多层,也可以是单层。在实际设计中,数据内容中嵌套的还可以是其他结构。
图2是本发明实施例提供的数据的示意图,参考图2所示的数据10。数据10包含三个字段,分别为姓名字段、年龄字段和地址字段,每个字段具有各自的字段名、数据内容、类型和长度。其中姓名字段的字段名为name,该字段的数据内容为Tom,类型为string,长度为3;年龄字段的字段名为age,该字段的数据内容为20,类型为int,长度为4;地址字段的字段名为address,地址字段为一个嵌套的字段,其数据内容中还嵌套有两个字段,因此地址字段的类型可以为空,长度为其数据内容中包含的字段的长度的和,本实施例中,地址字段的数据内容中包含两个字段,分别为省份字段和城市字段,这两个字段的数据内容相同均为shanghai,类型也相同均为string,长度也相同都是8,根据省份字段和城市字段的长度可以得出地址字段的长度,地址字段的长度为省份字段和城市字段的长度的和,具体的为16。
所述步骤S2中,设置字段名的标识,所述标识对应该字段的数据内容和该字段的数据内容的数据类型。所述字段的字段名可以以数字顺序进行标识。字段的数据内容以类似数组的形式保存。
所述步骤S3中,所述索引包括所述标识与该字段的数据内容的映射关系,但是不再保存字段的字段名或标识。
所述步骤S4中,将所述字段名的索引及所述字段的数据内容保存为数据记录,所述数据记录包括存储所述索引的索引区和存储所述数据内容的数据存储区,在实际操作中,所述数据记录还包括该数据记录的长度、包含的字段的个数和结束符。
具体的,所述标识与该字段的数据内容的映射关系为该字段的数据内容或该字段的数据内容在该数据记录的数据存储区中存储地址相对于所述数据存储区的首地址的偏移量。
具体的可以是,若所述字段的数据内容的数据类型属于所述第一类型,且所述长度小于或等于预定长度,则所述标识与该字段的数据内容的映射关系为该字段的数据内容;若所述字段的数据内容的数据类型属于所述第一类型,且所述长度大于所述预定长度或者所述字段的数据内容的数据类型属于所述第二类型,则所述标识与该字段的数据内容的映射关系为该字段的数据内容在该数据记录的数据存储区中存储地址相对于所述数据存储区的首地址的偏移量。
所述预定长度可以为所述映射关系的长度,每个字段的映射关系的长度相等,且每个字段的映射关系连续排列在所述索引中。
举例来讲,所述预定长度为4字节,若所述字段的数据内容的数据类型为int型,int型为第一类型,该字段的数据内容的长度固定为4字节,等于所述预定长度,则该字段的数据内容保存在索引区;若所述字段的数据内容的数据类型为long型,long型为第一类型,该字段的数据内容的长度固定为8字节,大于所述预定长度,则该字段的数据内容保存在数据存储区;若所述字段的数据内容的数据类型为string型,string型为第二类型,该字段的数据内容的长度不固定,则该字段的数据内容保存在数据存储区。
下面以一个具体实例说明本发明的技术方案存储数据的方法。
CSONArray的数据结构定义如下表1,其中CSONArray表示一条数据记录,CSONArray也可以称为CSON数据段。
表1
上述表1中参数的具体的含义如下:
索引区中保存了字段名的索引,所述索引包括所述标识与该字段的数据内容的映射关系(Ind);
Buffer区为存储数据内容的数据存储区,Buffer区中存储的数据内容根据该数据内容的类型和长度决定;
Len表示CSON数据段的长度(也称为数据记录的长度),和其他可变长度的类型相同,不包括本身所占用的4Byte(表1中以4B表示)长度(Len本身占用的4Byte长度不包含在CSON数据段的长度中)。但是Len表示的CSON数据段的长度包含结束符EOF占用的长度,本实施例中,Len表示的CSON数据段的长度为Num+Tp 0+Ind 0+Tp 1+Ind 1+......+Tp n+Indn+V0+V1+......+Vj+EOF的长度的和。
Num表示CSON数据段中总计元素(表示字段)的个数,占用4Byte(表1中以4B表示)。
Tp(Type的缩写)表示该元素的类型(表示该字段对应的数据内容的数据类型),占用1Byte(表1中以1B表示)。
Ind(Index的缩写)表示该元素的数据内容在Buffer区域存储的存储地址的相对偏移量或该元素的数据内容(表示该字段的字段名的标识与该字段的数据内容的映射关系)。每个元素对应一个Ind,每个元素对应的Ind后面注有该元素的字段名的标识,例如,Ind 0,Ind 1,其中0,1分别对应表示字段名的标识为0,1。Ind的长度为预定长度,每个字段的Ind的长度相等,且每个字段的Ind连续排列在所述索引区中。本实施例中,每个字段的Ind(映射关系)的长度均为4Byte,且按照字段名对应的标识的顺序排列在所述索引区中。
Ind的值表示该元素的数据内容在Buffer区域存储的存储地址的相对偏移量或该元素的数据内容,如果该元素的数据内容是第一类型并且该元素的数据内容是固定长度且长度是不大于预定长度(例如4字节)的,Ind的值为该元素(字段)的数据内容。如果元素不满足上面条件,该元素的数据内容是第二类型,或者该元素的数据内容是第一类型但该元素的数据内容大于预定长度(4字节),那么Ind存放的是该元素的数据内容在Buffer区域存储的存储地址的相对偏移量。相对偏移量是相对于Buffer区域的起始位置而言的。数据内容的类型通常包含该数据的长度信息。根据数据内容的类型可以大致判断出该数据的长度,例如,int类型的数据的长度通常为4字节。若元素的数据内容存储在该元素对应的Ind中,则Buffer区不再存储该元素的数据内容。
V(Value的缩写)对应该元素的数据内容,V存储在Buffer区,V的值的长度不固定。V与Ind类似其后面可以会注有字段名的标识,V按照字段名对应的标识的顺序存储在Buffer区。V的值受Ind的影响,由前述Ind的描述可知,元素的数据内容若存储在Ind中,则Buffer区不再存储该元素的数据内容;若Ind中存储的是该元素的数据内容在Buffer区域存储的存储地址的相对偏移量,那么V的值只能是该元素的数据内容。
EOF表示CSON数据的结束符,占用1Byte。简单且长度固定的数据类型无EOF。
所述数据内容嵌套至少一个字段,每个字段包括该字段的字段名和该字段的数据内容,具体的,嵌套数据示例:
当表1中CSONArray的index2的type为CSONArray类型时。
Type=0x04;
Index=V1在buf区的偏移量:V1的起始位置-V0的起始位置。
V1=CSONArray(如上表1的定义)。
当V1中的某个元素还是为CSONArray类型,数据结构定义方法同此例。具体的存储方式可参考图2。
CSON数据的数据内容定义了多种数据类型,具体的:
CSON数据类型(下面是CSON数据类型的代码片段):
其中,Null Type类型表示该数据不存在,只是为了实现数组结构的数据定义,补齐数组的元素空缺(数组的索引就是name编号)。
CSON数据使用示例:
用户信息(以用户信息表示待存储的数据),如表2:
表2
该用户信息包括三个字段,这三个字段名分别为:“Name”对应的数据内容为Tom,“Address”对应的数据内容为shanghai,“Tel”对应的数据内容为12345。
对用户信息的字段名进行标识,所述字段名可以以数字顺序进行标识,则“Name”,“Address”,“Tel”对应的标识依次为0,1,2,如表3。
表3
保存CSON数据(将字段名的索引及所述字段的数据内容保存为数据记录),如表4:
表4
读取用户的地址信息:
1.读取CSON数据的长度:27(Len为27),CSON数据的元素个数:3(Num为3),计算出CSON数据的Buffer区的起始地址:23,Buffer区的起始地址为Len的长度+Num的长度+索引区的长度为:4Byte+4Byte+1Byte+4Byte+1Byte+4Byte+1Byte+4Byte=23。
2.基于Address的标识:“1”(如表3所示),根据标识“1”直接定位Address在CSON数据的索引区对应的Tp 1和Ind 1。读取type=0x02(Tp=0x02),表示Address的数据内容是字符串类型(具体可参照前述的代码片段),该类型属于第二类型,其长度为无固定长度,它的值(数据内容)是保存在Buffer区中的,读取偏移信息(Ind 1)以获取其数据内容(V1)在Buffer区的偏移量:Ind 1=Offset3。
3.根据Buffer区的起始地址(23)和Address的数据内容在Buffer的偏移量(3)获取到Address的数据内容在Buffer区的起始地址(26),然后读取整个字符串:“shanghai”。
现有的数据存储技术,通常反复的存储数据的字段名,这不仅耗费了大量的存储空间,还延长了读取时间,降低了效率,使用本发明的技术方案可以较大幅度的提高效率。下述为对本发明的技术方案与现有技术的测试对比,以及测试的比对结果。
在相同的测试环境中,测试相同的数据以现有技术存储和以本发明的技术方案存储时,读取数据的耗时(以毫秒为单位计时)。
1.本发明的技术方案的测试结果
测试1.1:查询数据并读取数据的值;
表5是数据以本发明的技术方案存储后,随机测试5次,每次测试对相同的数据查询并读取该数据100万次所需的时间。
其中字段名一栏中的“2.0.2”表示数据的字段名,该字段名以数据的位置命名,“2.0.2”表示查询的数据为一个嵌套在数据中的数据,待查询的数据位于字段名标识为2(第一级字段名)的数据的第0个字段名(第二级字段名)表示的数据的第2个字段名(第三级字段名)表示的数据。字段名一栏中的“5”也表示数据的字段名,该字段也是以数据的位置命名,“5”表示待查询的字段为一级字段名,其表示标识为5的字段名的数据。
第一列表示待查询的数据的字段名,第二列至第六列表示每次随机测试查询并读取数据100万次所需的时间,第七列表示5次测试的平均耗时。
“2.0.2”为第一个查询并读取的数据的字段名,其值为string类型(数据内容为string类型):value=”worl2”;
“5”为第二个查询并读取的数据的字段名,其值为Int64类型(数据内容为Int64类型):value=72057594037927937(0x0100000000000001);
“同时查询”表示同时查询并读取上述两个数据。
表5
测试1.2:查询数据但不读取数据的值;
表6是数据以本发明的技术方案存储后,随机测试5次,每次测试对相同的数据仅查询该数据100万次所需的时间。
第一列表示待查询的数据的字段名,第二列至第六列表示每次随机测试查询但不读取数据100万次所需的时间,第七列表示5次测试的平均耗时。
“2.0.2”为第一个查询并读取的数据的字段名;“5”为第二个查询并读取的数据的字段名;“同时查询”表示同时查询并读取上述两个数据,表5与表6中测试的为相同的数据。
表6
由表5和表6可知,既查询数据又读取数据的值比仅查询数据耗时。
2.现有技术的测试结果
表7是数据以现有技术存储后,随机测试5次,每次测试对相同的数据仅查询该数据100万次所需的时间。由于既查询数据又读取该数据的值比仅查询该数据耗时,下述仅以测试查询数据但不读取数据的值的耗时为例进行说明。
第一列表示待查询的数据的字段名,第二列至第六列表示每次随机测试查询但不读取数据100万次所需的时间,第七列表示5次测试的平均耗时。
“222.000.2”为第一个查询并读取的数据的字段名;“555”为第二个查询并读取的数据的字段名;“同时查询”表示同时查询并读取上述两个数据,表7与表5、表6中测试的为相同的数据。
由于相同的数据以不同的方式存储(分别以本发明的技术方案和现有技术存储),为防止数据重名,以现有技术存储数据时,更改了数据的名称(更改了字段名),其中表7中的“222.000.2”数据对应表5和表6中的“2.0.2”数据,表7中的“555”数据对应表5或表6中的“5”数据。
表7
由上述表5、表6和表7可以看出,本发明的技术方案在数据查询和数据读取上消耗的时间远远短于现有技术所消耗的时间。对于多级字段名的定位与读取,本发明的技术方案消耗的时间为现有技术所消耗的时间的1/17,一级字段名的查询与读取,仅为1/32。这极大地提高了效率。
图3是本发明实施例提供的数据的存储装置的结构示意图,下面结合图3详细说明。
所述数据的存储装置包括:
获取单元1,用以获取数据,所述数据包括字段,每个字段包括字段名和数据内容;
标识单元2,用以对所述字段名进行标识;标识单元2与获取单元1相连,从获取单元1获取字段的字段名;
索引单元3,用以建立所述字段名的索引,所述索引包括所述标识与该字段的数据内容的映射关系;索引单元3与获取单元1、标识单元2相连,从获取单元1获取字段的数据内容,从标识单元2获取字段的标识;
记录单元4,用以将所述字段名的索引及所述字段的数据内容保存为数据记录,所述数据记录包括存储所述索引的索引区和存储所述数据内容的数据存储区,记录单元4与索引单元3、获取单元1相连,从索引单元3获取索引,从获取单元1获取字段的数据内容。
在具体实施中,所述记录单元4还将所述数据记录的长度、包含的字段的个数和结束符保存在数据记录中。
所述字段还包括该字段的数据内容的数据类型、该字段的数据内容的长度;所述数据类型分为第一类型和第二类型,所述字段的数据内容的数据类型属于所述第一类型,该字段的数据内容的长度固定,所述字段的数据内容的数据类型属于所述第二类型,该字段的数据内容的长度不固定。
所述标识与该字段的数据内容的映射关系为该字段的数据内容或该字段的数据内容在该数据记录的数据存储区中存储地址相对于所述数据存储区的首地址的偏移量。
所述数据内容嵌套至少一个字段,每个字段包括该字段的字段名和该字段的数据内容。
基于字段的数据内容的数据类型,若所述字段的数据内容的数据类型属于所述第一类型,且所述长度小于或等于预定长度,则所述索引单元3建立的索引中包括的所述标识与该字段的数据内容的映射关系为该字段的数据内容;若所述字段的数据内容的数据类型属于所述第一类型,且所述长度大于所述预定长度或者所述字段的数据内容的数据类型属于所述第二类型,则所述索引单元3建立的索引中包括的所述标识与该字段的数据内容的映射关系为该字段的数据内容在该数据记录的数据存储区中存储地址相对于所述数据存储区的首地址的偏移量。
所述预定长度为所述映射关系的长度,每个字段的映射关系的长度相等,且每个字段的映射关系连续排列在所述索引中。
上述数据的存储装置实现了本发明技术方案提供的本发明的数据的存储方法。
CSON数据的特点:
CSON的数据结构假设所有的查询元素都存在,按照数组结构定义,以便直接定位元素,数组的访问索引映射该元素的name。为了区分该元素是否真的存在,增加了Null Type类型,读出此类型表示该元素不存在。
CSON的数据是按照索引直接定位数据,不存在属性名名字遍历比较的过程,所以数据内存结构中不再有name定义。
CSON数据支持数据嵌套,CSONArray类型的子元素可以是CSONArray类型。
CSON的无固定长度的数据类型的数据内容包含有长度信息,可以提高读取效率。
本发明的技术方案至少具有以下优势:
配合唯一的数据实体Schema定义,避免每次都传递大量冗余的字段名到后端存储,起到了数据内容压缩的效果。
与元数据定义相配合,依然支持用字段名读取属性内容,且在后端查询时,避免用字段名去匹配查询(用编号直接定位字段所在存储位置),大大提高原来查询时寻址的效率。
总体的读取,展开效率大大提高。
对字段名进行标识,并设置所述标识与该字段的数据内容的映射关系。不再存储字段名不仅可以节省存储空间,起到数据压缩的效果,而且简化了对数据读取的时间,提高了效率。
上述映射关系以索引的形式建立并存储,获取字段名的标识后,依据映射关系查找该标识(字段名)的数据内容。这依然支持用字段名读取属性内容,且在后端查询时,避免用字段名去匹配查询的时间,不仅速度快而且定位准确,不易出错。
字段的数据内容还可以嵌套下一级的字段,这种存储方式可以很好的体现数据之间的包含关系,且下一级的字段的存储方式与上一级的字段的存储方式相同。查询下一级的字段时,先获取整个下一级的字段,再获取下一级的字段的数据内容的,这种总体的读取,展开效率大大提高,读取方便且快捷。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

Claims (14)

1.一种数据的存储方法,其特征在于,包括:
获取数据,所述数据包括字段,所述字段包括字段名和数据内容;
对所述字段名进行标识;
建立所述字段名的索引,所述索引包括所述标识与该字段的数据内容的映射关系;
将所述字段名的索引及所述字段的数据内容保存为数据记录,所述数据记录包括存储所述索引的索引区和存储所述数据内容的数据存储区;
其中,通过所述字段名能够得到与其对应的标识。
2.如权利要求1所述的数据的存储方法,其特征在于,所述数据记录还包括该数据记录的长度、包含的字段的个数和结束符。
3.如权利要求1所述的数据的存储方法,其特征在于,所述字段还包括该字段的数据内容的数据类型、该字段的数据内容的长度;所述数据类型分为第一类型和第二类型,当所述字段的数据内容的数据类型属于所述第一类型时,该字段的数据内容的长度固定,而当所述字段的数据内容的数据类型属于所述第二类型时,该字段的数据内容的长度不固定。
4.如权利要求3所述的数据的存储方法,其特征在于,所述标识与该字段的数据内容的映射关系为该字段的数据内容或该字段的数据内容在该数据记录的数据存储区中存储地址相对于所述数据存储区的首地址的偏移量。
5.如权利要求4所述的数据的存储方法,其特征在于,若所述字段的数据内容的数据类型属于所述第一类型,且所述长度小于或等于预定长度,则所述标识与该字段的数据内容的映射关系为该字段的数据内容;若所述字段的数据内容的数据类型属于所述第一类型,且所述长度大于所述预定长度或者所述字段的数据内容的数据类型属于所述第二类型,则所述标识与该字段的数据内容的映射关系为该字段的数据内容在该数据记录的数据存储区中存储地址相对于所述数据存储区的首地址的偏移量。
6.如权利要求5所述的数据的存储方法,其特征在于,所述预定长度为所述映射关系的长度,每个字段的映射关系的长度相等,且每个字段的映射关系连续排列在所述索引中。
7.如权利要求1所述的数据的存储方法,其特征在于,所述数据内容嵌套至少一个字段,每个字段包括该字段的字段名和该字段的数据内容。
8.一种数据的存储装置,其特征在于,包括:
获取单元,用以获取数据,所述数据包括字段,每个字段包括字段名和数据内容;
标识单元,用以对所述字段名进行标识;
索引单元,用以建立所述字段名的索引,所述索引包括所述标识与该字段的数据内容的映射关系;
记录单元,用以将所述字段名的索引及所述字段的数据内容保存为数据记录,所述数据记录包括存储所述索引的索引区和存储所述数据内容的数据存储区;
其中,通过所述字段名能够得到与其对应的标识。
9.如权利要求8所述的数据的存储装置,其特征在于,所述记录单元还将所述数据记录的长度、包含的字段的个数和结束符保存在数据记录中。
10.如权利要求8所述的数据的存储装置,其特征在于,所述字段还包括该字段的数据内容的数据类型、该字段的数据内容的长度;所述数据类型分为第一类型和第二类型,当所述字段的数据内容的数据类型属于所述第一类型时,该字段的数据内容的长度固定,而当所述字段的数据内容的数据类型属于所述第二类型时,该字段的数据内容的长度不固定。
11.如权利要求10所述的数据的存储装置,其特征在于,所述标识与该字段的数据内容的映射关系为该字段的数据内容或该字段的数据内容在该数据记录的数据存储区中存储地址相对于所述数据存储区的首地址的偏移量。
12.如权利要求11所述的数据的存储装置,其特征在于,若所述字段的数据内容的数据类型属于所述第一类型,且所述长度小于或等于预定长度,则所述索引单元建立的索引中包括的所述标识与该字段的数据内容的映射关系为该字段的数据内容;若所述字段的数据内容的数据类型属于所述第一类型,且所述长度大于所述预定长度或者所述字段的数据内容的数据类型属于所述第二类型,则所述索引单元建立的索引中包括的所述标识与该字段的数据内容的映射关系为该字段的数据内容在该数据记录的数据存储区中存储地址相对于所述数据存储区的首地址的偏移量。
13.如权利要求12所述的数据的存储装置,其特征在于,所述预定长度为所述映射关系的长度,每个字段的映射关系的长度相等,且每个字段的映射关系连续排列在所述索引中。
14.如权利要求8所述的数据的存储装置,其特征在于,所述数据内容嵌套至少一个字段,每个字段包括该字段的字段名和该字段的数据内容。
CN201210007568.7A 2012-01-11 2012-01-11 数据的存储方法及装置 Expired - Fee Related CN102609452B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210007568.7A CN102609452B (zh) 2012-01-11 2012-01-11 数据的存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210007568.7A CN102609452B (zh) 2012-01-11 2012-01-11 数据的存储方法及装置

Publications (2)

Publication Number Publication Date
CN102609452A CN102609452A (zh) 2012-07-25
CN102609452B true CN102609452B (zh) 2014-12-10

Family

ID=46526824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210007568.7A Expired - Fee Related CN102609452B (zh) 2012-01-11 2012-01-11 数据的存储方法及装置

Country Status (1)

Country Link
CN (1) CN102609452B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978324B (zh) * 2014-04-03 2020-06-16 腾讯科技(深圳)有限公司 一种数据处理方法和装置
CN104461920B (zh) * 2014-12-09 2019-04-12 杭州华为数字技术有限公司 一种存储数据的方法及装置
CN105138562A (zh) * 2015-07-23 2015-12-09 小米科技有限责任公司 关系型数据库的数据处理方法及装置
CN105320775B (zh) * 2015-11-11 2019-05-14 中科曙光信息技术无锡有限公司 数据的存取方法和装置
CN107015985B (zh) * 2016-01-27 2021-03-30 创新先进技术有限公司 一种数据存储与获取方法及装置
CN105740405B (zh) 2016-01-29 2020-06-26 华为技术有限公司 存储数据的方法和装置
CN107168638A (zh) * 2016-03-07 2017-09-15 阿里巴巴集团控股有限公司 数据处理方法及装置
CN107291746B (zh) * 2016-03-31 2021-08-17 阿里巴巴集团控股有限公司 一种存储和读取数据的方法及设备
CN106649641B (zh) * 2016-12-08 2020-05-26 北京五八信息技术有限公司 一种对数据库对象集合schema信息的处理方法、装置及管理系统
CN107609154A (zh) * 2017-09-23 2018-01-19 浪潮软件集团有限公司 一种多源异构数据的处理方法及装置
CN108052595A (zh) * 2017-12-12 2018-05-18 链家网(北京)科技有限公司 一种数据查询的处理方法及装置
CN108509625A (zh) * 2018-04-08 2018-09-07 中国人民解放军63601部队 一种数据静态表位置定位方法
CN110515943A (zh) * 2019-07-30 2019-11-29 恩亿科(北京)数据科技有限公司 数据存储、查询方法及设备、数据处理设备、存储介质
CN110597463A (zh) * 2019-08-16 2019-12-20 深圳中兴网信科技有限公司 数据读写方法、计算机设备与计算机可读存储介质
CN110711389B (zh) * 2019-09-29 2023-03-07 上海莉莉丝科技股份有限公司 数据处理的方法、装置、设备和计算机可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1503147A (zh) * 2002-11-21 2004-06-09 华为技术有限公司 一种数据库中对象关系的处理方法
CN1851701A (zh) * 2005-11-29 2006-10-25 华为技术有限公司 一种二进制数据的访问方法
CN102253980A (zh) * 2011-06-23 2011-11-23 上海西本网络科技有限公司 数据处理方法及数据处理系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1503147A (zh) * 2002-11-21 2004-06-09 华为技术有限公司 一种数据库中对象关系的处理方法
CN1851701A (zh) * 2005-11-29 2006-10-25 华为技术有限公司 一种二进制数据的访问方法
CN102253980A (zh) * 2011-06-23 2011-11-23 上海西本网络科技有限公司 数据处理方法及数据处理系统

Also Published As

Publication number Publication date
CN102609452A (zh) 2012-07-25

Similar Documents

Publication Publication Date Title
CN102609452B (zh) 数据的存储方法及装置
CN101840400B (zh) 一种多级分类检索方法及系统
CN102033954B (zh) 关系数据库中可扩展标记语言文档全文检索查询索引方法
CN102508784B (zh) 视频监控设备中闪存卡的数据存储方法及其系统
CN102880685B (zh) 一种时间密集大数据量的b/s分区间分页查询方法
CN101751406B (zh) 一种实现基于列存储的关系型数据库的方法及装置
CN102867071B (zh) 一种网管海量历史数据管理方法
CN102147795A (zh) 兴趣点检索方法、兴趣点检索装置和导航系统
CN102682108B (zh) 一种行列混合的数据库存储方法
CN103488710B (zh) 大数据页中高效存储非定长数据方法
CN101882163A (zh) 一种基于匹配规则的模糊中文地址地理赋值方法
CN101419571A (zh) 基于Hash算法的在NOR FLASH中存储配置参数的方法
JP2010157204A5 (zh)
CN101727502A (zh) 一种数据查询方法及装置、系统
CN107423422A (zh) 基于网格的空间数据分布式存储及检索方法和系统
CN100565508C (zh) 结构化文档管理设备、搜索设备、存储和搜索方法
CN103049473A (zh) 一种数据查询方法及装置
CN103345469A (zh) 号码集合的存储、查询方法及其装置
CN102622434A (zh) 数据存储方法、查找方法及装置
CN102024046A (zh) 数据重复性校验方法和装置及系统
CN101477555B (zh) 基于sql数据库的任务树的快速检索及生成显示的方法
CN104750727A (zh) 一种列式内存存储查询装置及列式内存存储查询方法
CN106326387A (zh) 一种分布式数据存储架构及数据存储方法和数据查询方法
CN103336828B (zh) 实时数据库读取及写入方法
CN103309879A (zh) 一种管理word文档中的标记的方法及装置

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141210

Termination date: 20170111

CF01 Termination of patent right due to non-payment of annual fee