数据存储方法、装置、计算机设备和存储介质与流程

文档序号:17473458发布日期:2019-04-20 05:58阅读:186来源:国知局
数据存储方法、装置、计算机设备和存储介质与流程

本申请涉及数据处理技术领域,特别是涉及一种数据存储方法、装置、计算机设备和存储介质。



背景技术:

随着数据处理技术的发展,需要经常对一些数据进行存储,出现了位图技术。通过位图技术可以将大量的数据以位图的形式进行存储,位图中的每一位可以表示一个数据。

然而,传统的位图技术会对所有数据对应的位图进行存储。当数据中存在大量无效数据的情况时,仍然会对大量无效数据对应的位图进行存储,占用了较多的存储空间,造成了存储空间的浪费。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够节约存储空间的数据存储方法、装置、计算机设备和存储介质。

一种数据存储方法,所述方法包括:

获取包括多个数据段的待存储文件;

按照所述待存储文件中数据段顺序依次读取每个数据段;

当识别到所述读取到的数据段中存在有效数据段部分时,统计所述有效数据段部分的数据数量;

存储所述读取到的数据段中的有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量;

根据记录的存储偏移量和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至所述待存储文件中的数据段被读取完毕;

根据生成的索引段生成所述待存储文件对应的索引文件。

一种数据存储装置,其特征在于,所述装置包括:

文件获取模块,用于获取包括多个数据段的待存储文件;

数据读取模块,用于按照所述待存储文件中数据段顺序依次读取每个数据段;

数量统计模块,用于当识别到所述读取到的数据段中存在有效数据段部分时,统计所述有效数据段部分的数据数量;

数据存储模块,用于存储所述读取到的数据段中的有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量;

索引段生成模块,用于根据记录的存储偏移量和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至所述待存储文件中的数据段被读取完毕;

索引生成模块,用于根据生成的索引段生成所述待存储文件对应的索引文件。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取包括多个数据段的待存储文件;

按照所述待存储文件中数据段顺序依次读取每个数据段;

当识别到所述读取到的数据段中存在有效数据段部分时,统计所述有效数据段部分的数据数量;

存储所述读取到的数据段中的有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量;

根据记录的存储偏移量和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至所述待存储文件中的数据段被读取完毕;

根据生成的索引段生成所述待存储文件对应的索引文件。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取包括多个数据段的待存储文件;

按照所述待存储文件中数据段顺序依次读取每个数据段;

当识别到所述读取到的数据段中存在有效数据段部分时,统计所述有效数据段部分的数据数量;

存储所述读取到的数据段中的有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量;

根据记录的存储偏移量和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至所述待存储文件中的数据段被读取完毕;

根据生成的索引段生成所述待存储文件对应的索引文件。

上述数据存储方法、装置、计算机设备和存储介质,通过获取包括多个数据段的待存储文件,按照待存储文件中数据段顺序依次读取每个数据段,当识别到读取到的数据段中存在有效数据段部分时,统计有效数据段部分的数据数量,存储识别到的有效数据段部分,无效数据段部分不进行存储,并生成相应的索引文件,通过只存储有效数据段部分,减少了存储的数据量,节省了数据存储空间。

附图说明

图1为一个实施例中数据存储方法的应用环境图;

图2为一个实施例中数据存储方法的流程示意图;

图3为一个实施例中统计数据数量的步骤的流程示意图;

图4为一个实施例中存储有效数据段部分的步骤的流程示意图;

图5为一个实施例中生成索引段的步骤的流程示意图;

图6为一个实施例中查询数据的步骤的流程示意图;

图7为一个实施例中数据存储的示意图;

图8为一个实施例中数据存储装置的结构框图;

图9为另一个实施例中数据存储装置的结构框图;

图10为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的数据存储方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种数据存储方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

步骤202,获取包括多个数据段的待存储文件。

其中,待存储文件可以是需要被存储的位图。数据段是将待存储文件在逻辑上划分成等长的部分。每一个数据段都包含相同预设数量的整型数据,每一个整型数据都包含相同预定数量的位图数据。

具体地,终端获取用户触发的文件存储指令及用户输入的待存储文件,将文件存储指令及待存储文件发送至服务器。服务器接收文件存储指令及待存储文件,准备对接收到的待存储文件进行存储。

步骤204,按照待存储文件中数据段顺序依次读取每个数据段。

具体地,服务器按照待存储文件中数据段的排列顺序依次读取每个数据段。服务器在读取每个数据段时,按照数据段中整型数据的排列顺序依次读取每个整型数据。

步骤206,当识别到读取到的数据段中存在有效数据段部分时,统计有效数据段部分的数据数量。

其中,有效数据段部分是数据段中包含至少一个有效整型数据的部分数据段,有效数据段部分的头部第一个整型数据和尾部第一个整型数据为有效整型数据,数据段中有效数据段部分之外不再包含有效整型数据。有效整型数据是指数值不为0的整型数据。

具体地,服务器按照数据段中整型数据的排列顺序依次读取每个整型数据,当读取到有效整型数据时,确定数据段中存在有效数据段部分。服务器获取读取到的第一个有效整型数据在待存储文件中的位置序号,标记为第一位置序号,当再次读取到有效整型数据时,获取再次读取到的有效整型数据在待存储文件中的位置序号,标记为第二位置序号,服务器随着读取到有效整型数据,更新第二位置序号的数值。服务器对一个数据段读取完毕后,根据第二位置序号和第一位置序号确定有效数据段部分的数据数量,并确定与第一位置序号对应的有效整型数据和与第二位置序号对应的有效整型数据之间的数据段为有效数据段部分。

在一个实施例中,服务器在数据段中只读取到一个有效整型数据,确定有效数据段部分的数据数量为1。

在一个实施例中,数据段中有效数据段部分之外的部分为无效数据段部分。无效数据段部分可以在数据段的头部和尾部中的至少一个部位。整个数据段可以是有效数据段部分,也可以是无效数据段部分。

步骤208,存储读取到的数据段中的有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量。

其中,存储偏移量是被存储的有效数据段部分的头部到存储文件头部的字节数目,存储文件由被存储的有效数据段部分组成。

具体地,服务器获取前次存储的有效数据段部分对应的索引段,从获取到的索引段中提取前次存储的有效数据段部分的数据数量和存储偏移量。服务器根据提取到的有效数据段部分的数据数量和存储偏移量,计算当前有效数据段部分对应的存储偏移量。服务器根据当前有效数据段部分对应的存储偏移量确定存储的起始地址,根据起始地址查询存储空间,将当前有效数据段部分存储至查询到的存储空间中,服务器记录存储的有效数据段部分对应的存储偏移量。

在一个实施例中,服务器未获取到前次存储的有效数据段部分对应的索引段,获取预设的存储起始地址,根据预设的存储起始地址查询存储空间,将确定的有效数据段部分存储至查询到的存储空间中,将存储偏移量记为0。

步骤210,根据记录的存储偏移量和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至待存储文件中的数据段被读取完毕。

其中,索引段是用来记录存储的有效数据段部分所属的数据段数据结构的数据段。

具体地,服务器将有效数据段部分存储后,根据有效数据段部分对应的存储偏移量和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段。服务器每次对一个数据段中的有效数据段部分进行存储后,均生成存储的有效数据段部分对应的索引段,直至对待存储文件中的数据段读取完毕,得到存储文件。

在一个实施例中,服务器未识别到读取到的数据段中存在有效数据段部分时,不对读取到的数据段进行存储,不生成对应的索引段。

步骤212,根据生成的索引段生成待存储文件对应的索引文件。

其中,索引文件是由所有索引段组成的文件。

具体地,服务器生成存储的有效数据段部分对应的索引段后,将索引段的头部拼接至前次存储的有效数据段部分对应的索引段的尾部。服务器对所有数据段读取完毕后,生成待存储文件对应的索引文件。

本实施例中,通过获取包括多个数据段的待存储文件,按照待存储文件中数据段顺序依次读取每个数据段,当识别到读取到的数据段中存在有效数据段部分时,统计有效数据段部分的数据数量,存储识别到的有效数据段部分,无效数据段部分不进行存储,并生成相应的索引文件,通过只存储有效数据段部分,减少了存储的数据量,节省了数据存储空间。

如图3所示,在一个实施例中,步骤206具体还包括统计数据数量的步骤,该步骤具体包括如下步骤:

步骤302,按照读取到的数据段中数据排列顺序依次识别整型数据。

具体地,服务器读取每个数据段时,按照数据段中整型数据的排列顺序,依次识别数据段中整型数据的数值。

在一个实施例中,数据段中的位图数据按行存储,相同预定数量的位图数据组成一个整型数据。服务器按照数据段中整型数据的排列顺序,从数据段的头部从前向后地识别每个整型数据的数值。

步骤304,当识别到的整型数据为有效整型数据时,获取有效整型数据在待存储文件中的位置序号。

其中,位置序号是有效整型数据在待存储文件中的排列序号。

具体地,当服务器识别到数值不为0的整型数据时,确定识别到的整型数据为有效整型数据,服务器触发位置序号获取指令,根据位置序号获取指令获取识别到的有效整型数据在待存储文件中的位置序号。

步骤306,当识别到的整型数据为读取到的数据段中的第一个有效整型数据时,根据获取到的位置序号,确定读取到的数据段中无效数据段部分的数据数量。

其中,无效数据段部分是数据段中包含至少一个无效整型数据的部分数据段,无效数据段部分仅包含无效整型数据。

具体地,无效数据段部分为数据段中的头部无效数据段部分。当服务器识别到的整型数据是读取到的数据段中的第一个有效整型数据时,触发位置序号获取指令,根据位置序号获取指令获取识别到的第一个有效整型数据在待存储文件中的位置序号。服务器根据识别到的第一个有效整型数据在待存储文件中的位置序号和数据段中整型数据的预设数量数值,计算读取的数据段在待存储文件中的段编号及数据段中头部无效数据段部分的数据数量。头部无效数据段部分是数据段中,服务器在读取到第一个有效整型数据之前的无效数据段部分。

在一个实施例中,服务器获取识别到的第一个有效整型数据在待存储文件中的位置序号后,计算第一个有效整型数据在待存储文件中的位置序号和数据段中整型数据的预设数量数值的商及余数,将计算得到的商数值作为读取的数据段在待存储文件中的段编号,将余数数值作为数据段中头部无效数据段部分的数据数量。

举例说明,每个数据段中整型数据的预设数量数值为256。服务器获取识别到的第一个有效整型数据在待存储文件中的位置编号为4。服务器将4作为除数,将256作为被除数,计算得到商为0,余数为4,则读取到的数据段在待存储文件中的段编号为0,数据段中头部无效数据段部分的数据数量为4。

步骤308,根据获取到的位置序号和无效数据段部分的数据数量,统计有效数据段部分的数据数量。

具体地,服务器对获取到的有效整型数据在待存储文件中的位置序号和数据段中头部无效数据段部分的数据数量进行线性运算,得到有效数据段部分的数据数量。

举例说明,服务器获取到的位置序号为6,头部无效数据段部分的数据数量为4,则数据段中有效数据段部分的数据数量为6-4+1=3。

本实施例中,按照读取到的数据段中数据排列顺序依次识别整型数据,当识别到的整型数据为有效整型数据时,获取有效整型数据在待存储文件中的位置序号,当识别到的整型数据为读取到的数据段中的第一个有效整型数据时,根据获取到的位置序号,确定读取到的数据段中无效数据段部分的数据数量,提高了获取无效数据段部分数据数量的准确性,根据获取到的位置序号和所述无效数据段部分的数据数量,统计有效数据段部分的数据数量,提高了获取有效数据段部分的数据数量的准确性。

如图4所示,在一个实施例中,步骤208具体还包括存储有效数据段部分的步骤,该步骤具体包括如下步骤:

步骤402,获取前次存储的有效数据段部分对应的索引段。

具体地,服务器在对读取到的数据段中的有效数据段部分进行存储之前,在索引文件中查询前次存储的有效数据段部分对应的索引段,提取查询到的前次存储的有效数据段部分对应的索引段。

步骤404,从获取的索引段中提取前次存储的有效数据段部分所对应的数据数量和存储偏移量。

具体地,服务器获取到前次存储的有效数据段部分对应的索引段后,在前次存储的有效数据段部分对应的索引段中查询记录的有效数据段部分所对应的数据数量和存储偏移量,提取查询到的前次存储的有效数据段部分所对应的数据数量和存储偏移量。

步骤406,根据提取到的数据数量和存储偏移量,确定当前有效数据段部分对应的存储偏移量。

具体地,服务器提取到有效数据段部分的数据数量和存储偏移量后,根据有效数据段部分的数据数量确定前次存储的有效数据段部分的存储方式,根据确定的存储方式、有效数据段部分的数据数量和存储偏移量计算当前存储的有效数据段部分对应的存储偏移量。

步骤408,根据当前有效数据段部分对应的存储偏移量,存储读取到的数据段中有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量。

具体地,服务器统计有效数据段部分中有效整型数据的数量,根据统计得到的有效整型数据的数量确定存储方式。服务器根据当前有效数据段部分对应的存储偏移量,确定当前有效数据段部分进行存储时的起始地址,根据起始地址查询存储空间,将读取到的数据段中有效数据段部分按照确定的存储方式进行存储,并记录存储的有效数据段部分对应的存储偏移量。

在一个实施例中,当有效数据段部分中有效整型数据的数量小于等于预定阈值时,服务器采用一种稀疏存储方式,生成各有效整型数据的存储单元。有效整型数据的存储单元包括有效整型数据在数据段中的段内位置序号和有效整型数据的位图数据。服务器依次存储有效数据段部分中有效整型数据数量、各有效整型数据的存储单元,其中各有效整型数据的存储单元按照存储单元中段内位置序号由小到大的顺序连续地进行存储。在一个存储单元中,段内位置序号在前,表示整型数据的位图数据在后。

在一个实施例中,当有效数据段部分中有效整型数据的数量大于预定阈值时,服务器使用位图存储方式,直接对数据段中的有效数据段部分进行存储。

在一个实施例中,整型数据可以是长整型数据(long),包含64个位图数据。数据段可以包含256个长整型数据,预定阈值可以是128。服务器采用稀疏存储时,使用1字节存储有效数据段部分中有效整型数据数量。一个存储单元使用9字节进行存储,其中段内位置序号使用1字节进行存储,长整型数据的位图数据使用8字节进行存储。服务器使用位图存储方式时,有效数据段部分中各整型数据使用8字节进行存储。

本实施例中,获取前次存储的有效数据段部分对应的索引段,从获取的索引段中提取前次存储的有效数据段部分的数据数量和存储偏移量,根据提取到的有效数据段部分的数据数量和存储偏移量,确定当前存储的有效数据段部分对应的存储偏移量,根据当前存储的有效数据段部分对应的存储偏移量,存储读取到的数据段中有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量。通过确定当前存储的有效数据段部分对应的存储偏移量,可以精确地对有效数据段部分进行存储,只存储有效数据段部分,节约了存储空间。

如图5所示,在一个实施例中,步骤210具体还包括生成索引段的步骤,该步骤具体包括如下步骤:

步骤502,获取读取到数据段中头部无效数据段部分的数据数量。

具体地,服务器完成对一个数据段的读取后,获取在读取数据段过程中计算得到的头部无效数据段部分的数据数量。

步骤504,根据获取的头部无效数据段部分的数据数量、记录的存储偏移和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至待存储文件中的数据段被读取完毕。

具体地,服务器在计算数据段中头部无效数据段部分的数据数量的同时,获得读取的数据段在待存储文件中的段编号。服务器根据读取的数据段在待存储文件中的段编号、获取的头部无效数据段部分的数据数量、记录的存储偏移量和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段。服务器每次对一个数据段中的有效数据段部分进行存储后,均生成存储的有效数据段部分对应的索引段,直至对待存储文件中的数据段读取完毕。

本实施例中,获取读取到数据段中头部无效数据段部分的数据数量,根据获取的头部无效数据段部分的数据数量、记录的存储偏移和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至待存储文件中的数据段被读取完毕。在存储有效数据段部分后,通过索引段记录了存储的有效数据段部分所属的数据段的数据结构,保证了存储的准确性。

如图6所示,在一个实施例中,步骤212之后具体还包括查询数据的步骤,该步骤具体包括如下步骤:

步骤602,获取数据查询指令。

其中,数据查询指令是对存储的各有效数据段部分中的整型数据进行查询的指令。

具体地,服务器获取终端发送的数据查询指令,准备根据数据查询指令从存储的各有效数据段部分中查询指定的整型数据。

步骤604,确定数据查询指令中的位置序号对应的段编号。

具体地,服务器对数据查询指令进行解析,得到数据查询指令中待查询数据的位置序号。服务器根据位置序号和数据段中整型数据的预设数量数值,确定与数据查询指令中的位置序号对应的段编号。

在一个实施例中,服务器计算位置序号和数据段中整型数据的预设数量数值的商及余数,将计算得到的商的数值作为对应的段编号。

步骤606,在索引文件提取与段编号对应的索引段。

具体地,服务器确定与数据查询指令中的位置序号对应的段编号后,触发索引段提取指令,根据索引段提取指令在索引文件中查询与段编号对应的索引段,并提取与查询到的段编号对应的索引段。

在一个实施例中,服务器触发索引段提取指令后,采用二分查找法在索引文件中查询与段编号对应的索引段,并提取与查询到的段编号对应的索引段。

在一个实施例中,服务器未在索引文件中查询到与段编号对应的索引段,向终端返回数值0。

步骤608,根据查询到的索引段,检测位置序号对应的数据部分是否为无效数据段部分。

具体地,服务器提取到与段编号对应的索引段后,从索引段中提取头部无效数据段部分的数据数量、有效数据段部分的数据数量和存储偏移量。服务器将位置序号和数据段中整型数据的预设数量数值相比得到的余数作为待查询数据在数据段中的段内位置序号。当段内位置序号小于头部无效数据段部分的数据数量数值,或段内位置序号大于头部无效数据段部分的数据数量数值及有效数据段部分的数据数量数值的和时,服务器确定位置序号对应的数据部分为无效数据段部分,服务器向终端返回数值0。当段内位置序号大于等于头部无效数据段部分的数据数量数值,且小于等于头部无效数据段部分的数据数量数值及有效数据段部分的数据数量数值的和时,服务器确定位置序号对应的数据部分为有效数据段部分。

步骤610,当位置序号对应的数据部分不是无效数据段部分时,根据查询到的索引段和所述位置序号提取存储的有效数据段部分。

具体地,当服务器确定位置序号对应的数据部分不是无效数据段部分时,服务器根据有效数据段部分的数据数量确定有效数据段部分的存储方式,根据确定的存储方式、头部无效数据段部分的数据数量、有效数据段部分的数据数量和存储偏移量从存储的有效数据段部分中查询有效数据段部分,并提取查询到的有效数据段部分。

本实施例中,获取数据查询指令,确定数据查询指令中的位置序号对应的段编号,在索引文件提取与段编号对应的索引段,根据查询到的索引段,检测位置序号对应的数据部分是否为无效数据段部分,当位置序号对应的数据部分不是无效数据段部分时,根据查询到的索引段和位置序号提取存储的有效数据段部分。当进行数据查询时,通过索引文件和索引段中记载的信息可以快速准确地查询到数据,提升了数据查询的效率。

图7为一个实施例中数据存储的示意图。参照图7,服务器按照待存储文件中的数据段顺序依次读取数据段0、1、2、3、4、5…其中数据段0和数据段3中不存在有效数据段部分,服务器不存储数据段0和数据段3,也不生成对应的索引段。数据段1、2、4和5中存在有效数据段部分,数据段1、2、4和5的无效数据段部分可以在数据段的头部,也可以在数据段的尾部。服务器获取数据段在待存储文件中的段编号,统计数据段中的头部无效数据段部分的数据数量和有效数据段部分的数据数量,计算数据段中有效数据段部分的存储偏移量。服务器存储存在有效数据段部分的数据段1、2、4和5中的有效数据段部分,根据每个数据段的段编号、头部无效数据段部分的数据数量、有效数据段部分的数据数量和存储偏移量,生成存储的有效数据段部分对应的索引段。服务器读取数据段完毕,根据生成的索引段生成待存储文件对应的索引文件。

应该理解的是,虽然图2-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图8所示,提供了一种数据存储装置800,包括:文件获取模块802、数据读取模块804、数量统计模块806、数据存储模块808、索引段生成模块810和索引生成模块812,其中:

文件获取模块802,用于获取包括多个数据段的待存储文件。

数据读取模块804,用于按照待存储文件中数据段顺序依次读取每个数据段。

数量统计模块806,用于当识别到读取到的数据段中存在有效数据段部分时,统计有效数据段部分的数据数量。

数据存储模块808,用于存储读取到的数据段中的有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量。

索引段生成模块810,用于根据记录的存储偏移量和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至待存储文件中的数据段被读取完毕。

索引生成模块812,用于根据生成的索引段生成待存储文件对应的索引文件。

本实施例中,通过获取包括多个数据段的待存储文件,按照待存储文件中数据段顺序依次读取每个数据段,当识别到读取到的数据段中存在有效数据段部分时,统计有效数据段部分的数据数量,存储识别到的有效数据段部分,无效数据段部分不进行存储,并生成相应的索引文件,通过只存储有效数据段部分,减少了存储的数据量,节省了数据存储空间。

在一个实施例中,数量统计模块806包括:数据识别模块、序号获取模块、无效确定模块和有效统计模块,其中:

数据识别模块,用于按照读取到的数据段中数据排列顺序依次识别整型数据。

序号获取模块,用于当识别到的整型数据为有效整型数据时,获取有效整型数据在待存储文件中的位置序号。

无效确定模块,用于当识别到的整型数据为读取到的数据段中的第一个有效整型数据时,根据获取到的位置序号,确定读取到的数据段中无效数据段部分的数据数量。

有效统计模块,用于根据获取到的位置序号和无效数据段部分的数据数量,统计有效数据段部分的数据数量。

本实施例中,按照读取到的数据段中数据排列顺序依次识别整型数据,当识别到的整型数据为有效整型数据时,获取有效整型数据在待存储文件中的位置序号,当识别到的整型数据为读取到的数据段中的第一个有效整型数据时,根据获取到的位置序号,确定读取到的数据段中无效数据段部分的数据数量,提高了获取无效数据段部分数据数量的准确性,根据获取到的位置序号和所述无效数据段部分的数据数量,统计有效数据段部分的数据数量,提高了获取有效数据段部分的数据数量的准确性。

在一个实施例中,数据存储模块808包括:索引段获取模块、提取模块、偏移确定模块和有效存储模块,其中:

索引段获取模块,用于获取前次存储的有效数据段部分对应的索引段。

提取模块,用于从获取的索引段中提取前次存储的有效数据段部分所对应的数据数量和存储偏移量。

偏移确定模块,用于根据提取到的数据数量和存储偏移量,确定当前有效数据段部分对应的存储偏移量。

有效存储模块,用于根据当前有效数据段部分对应的存储偏移量,存储读取到的数据段中有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量。

本实施例中,获取前次存储的有效数据段部分对应的索引段,从获取的索引段中提取前次存储的有效数据段部分的数据数量和存储偏移量,根据提取到的有效数据段部分的数据数量和存储偏移量,确定当前存储的有效数据段部分对应的存储偏移量,根据当前存储的有效数据段部分对应的存储偏移量,存储读取到的数据段中有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量。通过确定当前存储的有效数据段部分对应的存储偏移量,可以精确地对有效数据段部分进行存储,只存储有效数据段部分,节约了存储空间。

在一个实施例中,索引段生成模块810还用于获取读取到数据段中头部无效数据段部分的数据数量;根据获取的头部无效数据段部分的数据数量、记录的存储偏移和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至待存储文件中的数据段被读取完毕。

本实施例中,获取读取到数据段中头部无效数据段部分的数据数量,根据获取的头部无效数据段部分的数据数量、记录的存储偏移和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至待存储文件中的数据段被读取完毕。在存储有效数据段部分后,通过索引段记录了存储的有效数据段部分所属的数据段的数据结构,保证了存储的准确性。

如图9所示,在一个实施例中,数据存储装置800还包括指令获取模块814、编号确定模块816、索引提取模块818、数据检测模块820和数据提取模块822,其中:

指令获取模块814,用于获取数据查询指令。

编号确定模块816,用于确定数据查询指令中的位置序号对应的段编号。

索引提取模块818,用于在索引文件提取与段编号对应的索引段。

数据检测模块820,用于根据查询到的索引段,检测位置序号对应的数据部分是否为无效数据段部分。

数据提取模块822,用于当位置序号对应的数据部分不是无效数据段部分时,根据查询到的索引段和位置序号提取存储的有效数据段部分。

本实施例中,获取数据查询指令,确定数据查询指令中的位置序号对应的段编号,在索引文件提取与段编号对应的索引段,根据查询到的索引段,检测位置序号对应的数据部分是否为无效数据段部分,当位置序号对应的数据部分不是无效数据段部分时,根据查询到的索引段和位置序号提取存储的有效数据段部分。当进行数据查询时,通过索引文件和索引段中记载的信息可以快速准确地查询到数据,提升了数据查询的效率。

关于数据存储装置的具体限定可以参见上文中对于数据存储方法的限定,在此不再赘述。上述数据存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储各数据段的有效数据段部分和索引文件。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据存储方法。

本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取包括多个数据段的待存储文件;按照待存储文件中数据段顺序依次读取每个数据段;当识别到读取到的数据段中存在有效数据段部分时,统计有效数据段部分的数据数量;存储读取到的数据段中的有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量;根据记录的存储偏移量和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至待存储文件中的数据段被读取完毕;根据生成的索引段生成待存储文件对应的索引文件。

在一个实施例中,当识别到读取到的数据段中存在有效数据段部分时,统计有效数据段部分的数据数量包括:按照读取到的数据段中数据排列顺序依次识别整型数据;当识别到的整型数据为有效整型数据时,获取有效整型数据在待存储文件中的位置序号;当识别到的整型数据为读取到的数据段中的第一个有效整型数据时,根据获取到的位置序号,确定读取到的数据段中无效数据段部分的数据数量;根据获取到的位置序号和无效数据段部分的数据数量,统计有效数据段部分的数据数量。

在一个实施例中,存储读取到的数据段中的有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量包括:获取前次存储的有效数据段部分对应的索引段;从获取的索引段中提取前次存储的有效数据段部分所对应的数据数量和存储偏移量;根据提取到的数据数量和存储偏移量,确定当前有效数据段部分对应的存储偏移量;根据当前有效数据段部分对应的存储偏移量,存储读取到的数据段中有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量。

在一个实施例中,根据记录的存储偏移量和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至待存储文件中的数据段被读取完毕包括:获取读取到数据段中头部无效数据段的数据数量;根据获取的头部无效数据段的数据数量、记录的存储偏移和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至待存储文件中的数据段被读取完毕。

在一个实施例中,根据生成的索引段生成待存储文件对应的索引文件之后,处理器执行计算机程序时还实现以下步骤:获取数据查询指令;确定数据查询指令中的位置序号对应的段编号;在索引文件提取与段编号对应的索引段;根据查询到的索引段,检测位置序号对应的数据部分是否为无效数据段部分;当位置序号对应的数据部分不是无效数据段部分时,根据查询到的索引段和位置序号提取存储的有效数据段部分。

本实施例中,通过获取包括多个数据段的待存储文件,按照待存储文件中数据段顺序依次读取每个数据段,当识别到读取到的数据段中存在有效数据段部分时,统计有效数据段部分的数据数量,存储识别到的有效数据段部分,无效数据段部分不进行存储,并生成相应的索引文件,通过只存储有效数据段部分,减少了存储的数据量,节省了数据存储空间。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取包括多个数据段的待存储文件;按照待存储文件中数据段顺序依次读取每个数据段;当识别到读取到的数据段中存在有效数据段部分时,统计有效数据段部分的数据数量;存储读取到的数据段中的有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量;根据记录的存储偏移量和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至待存储文件中的数据段被读取完毕;根据生成的索引段生成待存储文件对应的索引文件。

在一个实施例中,当识别到读取到的数据段中存在有效数据段部分时,统计有效数据段部分的数据数量包括:按照读取到的数据段中数据排列顺序依次识别整型数据;当识别到的整型数据为有效整型数据时,获取有效整型数据在待存储文件中的位置序号;当识别到的整型数据为读取到的数据段中的第一个有效整型数据时,根据获取到的位置序号,确定读取到的数据段中无效数据段部分的数据数量;根据获取到的位置序号和无效数据段部分的数据数量,统计有效数据段部分的数据数量。

在一个实施例中,存储读取到的数据段中的有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量包括:获取前次存储的有效数据段部分对应的索引段;从获取的索引段中提取前次存储的有效数据段部分所对应的数据数量和存储偏移量;根据提取到的数据数量和存储偏移量,确定当前有效数据段部分对应的存储偏移量;根据当前有效数据段部分对应的存储偏移量,存储读取到的数据段中有效数据段部分,并记录存储的有效数据段部分对应的存储偏移量。

在一个实施例中,根据记录的存储偏移量和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至待存储文件中的数据段被读取完毕包括:获取读取到数据段中头部无效数据段部分的数据数量;根据获取的头部无效数据段部分的数据数量、记录的存储偏移和统计的有效数据段部分的数据数量,生成存储的有效数据段部分对应的索引段,直至待存储文件中的数据段被读取完毕。

在一个实施例中,根据生成的索引段生成待存储文件对应的索引文件之后,计算机程序被处理器执行时还实现以下步骤:获取数据查询指令;确定数据查询指令中的位置序号对应的段编号;在索引文件提取与段编号对应的索引段;根据查询到的索引段,检测位置序号对应的数据部分是否为无效数据段部分;当位置序号对应的数据部分不是无效数据段部分时,根据查询到的索引段和位置序号提取存储的有效数据段部分。

本实施例中,通过获取包括多个数据段的待存储文件,按照待存储文件中数据段顺序依次读取每个数据段,当识别到读取到的数据段中存在有效数据段部分时,统计有效数据段部分的数据数量,存储识别到的有效数据段部分,无效数据段部分不进行存储,并生成相应的索引文件,通过只存储有效数据段部分,减少了存储的数据量,节省了数据存储空间。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1