掌桥专利:专业的专利平台
掌桥专利
首页

数据存储方法、装置、电子设备及计算机可读存储介质

文献发布时间:2023-06-19 11:42:32


数据存储方法、装置、电子设备及计算机可读存储介质

技术领域

本申请涉及计算机技术领域,具体而言,本申请涉及一种数据存储方法、装置、电子设备及计算机可读存储介质。

背景技术

现有数据存储方式包括:用数据库存储、字符串文件存储等,上述存储方式能够存储的数据类型少,一般只能存储已有的常见的基本数据类型(例如,整型、或型、短整型、长整型、浮点型、字符串型等),且存储的数据有固定的比特位数,例如,16位比特、8位比特、4位比特等,导致比特位数跨度大且不连续,难于压缩,数据存储空间大。

发明内容

本申请的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案:

第一方面,本申请实施例提供了一种数据存储方法,包括:

获取待存储数据对应的映射表,映射表用于指示待存储数据的数据标签以及标签值之间的对应关系;

基于映射表,获取每种数据标签对应的标签值序列;

将每种数据标签对应的标签值序列存入图像矩阵中的一列像素点中,得到待存储数据对应的至少一个数据图像。

在本申请的一种可选实施例中,映射表还用于指示待存储数据的数据对象与标签值之间的对应关系,该方法还包括:

基于映射表,获取每种数据对象对应的标签值在对应的标签值序列中的序号;

将各数据对象与标签值的序号的对应关系存入行头存储系统中。

在本申请的一种可选实施例中,将每种数据标签对应的标签值序列存入图像矩阵中的一列像素点中,包括:

将每个标签值序列中的各标签值依次与对应的一列像素点中的各像素点相匹配,并基于各标签值设置相匹配的像素点的灰度值。

在本申请的一种可选实施例中,该方法还包括:

基于数据图像的图像特征,对数据图像进行压缩。

在本申请的一种可选实施例中,该方法还包括:

当需要检索数据图像中存储的数据时,获取检索条件,检索条件用于指示对应的目标标签值;

从数据图像中获取目标标签值的序号;

基于目标标签值的序号从行头存储系统中获取对应的数据对象。

在本申请的一种可选实施例中,检索条件还用于指示对应的目标数据标签,从数据图像中获取目标标签值的序号,包括:

结合目标数据标签,从数据图像中获取目标标签值的序号。

在本申请的一种可选实施例中,若检索条件指示的对应的目标标签值存储于不同数据图像,则从数据图像中获取目标标签值的序号,包括:

提取各数据图像中存储目标标签值的各列像素点并合并,得到对应的合并图像;

基于检索条件从合并图像中获取目标标签值的序号。

在本申请的一种可选实施例中,基于检索条件从合并图像中获取对应的目标标签值,包括:

将合并图像中不满足检索条件的标签值所在的像素点的灰度值设置为预设值,并筛除合并图像中的预设值对应的灰度区域,得到筛选后的合并图像;

基于筛选后的合并图像,获取目标标签值的序号。

第二方面,本申请实施例提供了一种数据存储装置,包括:

映射表获取模块,用于获取待存储数据对应的映射表,映射表用于指示待存储数据的数据标签以及标签值之间的对应关系;

标签值序列获取模块,用于基于映射表,获取每种数据标签对应的标签值序列;

第一数据存储模块,用于将每种数据标签对应的标签值序列存入图像矩阵中的一列像素点中,得到待存储数据对应的至少一个数据图像。

在本申请的一种可选实施例中,映射表还用于指示待存储数据的数据对象与标签值之间的对应关系,该装置还包括第二数据存储模块,用于:

基于映射表,获取每种数据对象对应的标签值在对应的标签值序列中的序号;

将各数据对象与标签值的序号的对应关系存入行头存储系统中。

在本申请的一种可选实施例中,第一数据存储模块具体用于:

将每个标签值序列中的各标签值依次与对应的一列像素点中的各像素点相匹配,并基于各标签值设置相匹配的像素点的灰度值。

在本申请的一种可选实施例中,该装置还可以包括图像压缩模块,用于:

基于数据图像的图像特征,对数据图像进行压缩。

在本申请的一种可选实施例中,该装置还包括数据读取模块,用于:

当需要检索数据图像中存储的数据时,获取检索条件,检索条件用于指示对应的目标标签值;

基于检索条件从数据图像中获取目标标签值的序号;

基于目标标签值的序号从行头存储系统中获取对应的数据对象。

在本申请的一种可选实施例中,检索条件还用于指示对应的目标数据标签,数据读取模块,用于:

结合目标数据标签,从数据图像中获取目标标签值的序号。

在本申请的一种可选实施例中,若检索条件指示的对应的目标标签值存储于不同数据图像,则数据读取模块具体用于:

提取各数据图像中存储目标标签值的各列像素点并合并,得到对应的合并图像;

基于检索条件从合并图像中获取目标标签值的序号。

在本申请的一种可选实施例中,数据读取模块进一步用于:

将合并图像中不满足检索条件的标签值所在的像素点的灰度值设置为预设值,并筛除合并图像中的预设值对应的灰度区域,得到筛选后的合并图像;

基于筛选后的合并图像,获取目标标签值的序号。

本申请提供的技术方案带来的有益效果是:

通过获取待存储数据的映射表,进而根据映射表获取每种数据标签的标签值序列,再将每种标签值序列存入图像矩阵的一列像素点中得到数据图像,该数据图像便于压缩,数据存储空间小。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。

图1为本申请实施例提供的一种数据存储方法的流程示意图;

图2为本申请实施例的一个示例中数据图像的示意图;

图3为本申请实施例提供的一种数据存储装置的结构框图;

图4为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

图1为本申请实施例提供的一种数据存储方法的流程示意图,如图1所示,该方法可以包括:

步骤S101,获取待存储数据对应的映射表,映射表用于指示待存储数据的数据标签以及标签值之间的对应关系。

其中,待存储数据即为标签值(标签值可以根据待存储数据的原始属性量化得到,如将男性量化为1,女性量化为2),根据属性对标签值进行分类可以得到多种数据标签,同时待存储数据可以来源于一个或多个数据对象,那么,每种数据标签可以对应于来源于一个或多个数据对象的标签值,进而,每种数据标签可以对应于一个或多个标签值,每个数据对象可以对应于一个或多个标签值。待存储数据对应的映射表即用于指示数据对象和标签值之间的对应关系、以及数据标签和标签值之间的存储关系。

举例来说,某待存储数据的数据标签包括年龄、性别、登录APP(Application,应用程序)的频率,其数据对象包括用户A、用户B和用户C。根据该待存储数据对应的映射表,可以获知用户A的年龄是多大,性别是男还是女,登录APP的频率是多少。

具体地,在获取到待存储数据后,对其数据对象、数据标签以及标签值进行分析整理,从而得到对应的映射表。

步骤S102,基于映射表,获取每种数据标签对应的标签值序列。

具体地,由于每种数据标签可以对应一个或多个标签值,因此,为了便于后续的存储和读取,可以对每种数据标签对应的标签值进行排序,具体来说,每种数据标签对应的多个标签值分别来源于不同的数据对象,因此对标签值进行排序实际上是对不同的数据对象进行排序,即赋予每个标签值一个序号,同时也赋予每个数据对象一个序号。进一步地,可以令映射表中所有数据标签对应的标签值的序号一致,即来源于同一数据对象的不同种类的数据标签下的标签值的序号相同。

接上举例,从该待存储数据对应的映射表获知,用户A、B、C的年龄分别为25、20、25,用户A、B、C的性别分别为1、2、1(其中1表示男性,2表示女性),那么,若将用户A、B、C的序号分别取为1、3、2,那么数据标签年龄对应的标签值序列为25、25、20,数据标签性别对应的标签值序列为1、1、2。

步骤S103,将每种数据标签对应的标签值序列存入图像矩阵中的一列像素点中,得到待存储数据对应的至少一个数据图像。

具体地,获取到每种数据标签对应的标签值序列后,将每个标签值序列存储进图像矩阵中的一列像素点中,若不同标签值对应的标签值序列存入同一图像矩阵,即得到一个数据图像,若不同标签值对应的标签值序列存入不同的图像矩阵,即得到多个数据图像。其中,标签值序列中的标签值可以是整型的、也可以是浮点型的等。标签值序列可以有规律也可以无规律。例如,可以是:1,2,3,……,N;也可以是1,4,5,8……,2N等;1.5,3.4,5.6……。

本申请提供的方案,通过获取待存储数据的映射表,进而根据映射表获取每种数据标签的标签值序列,再将每种标签值序列存入图像矩阵的一列像素点中得到数据图像,该数据图像便于压缩,数据存储空间小。

在本申请的一种可选实施例中,映射表还用于指示待存储数据的数据对象与标签值之间的对应关系,该方法还包括:

基于映射表,获取每种数据对象对应的标签值在对应的标签值序列中的序号;

将各数据对象与标签值的序号的对应关系存入行头存储系统中。

其中,由前文描述可知,映射表还用于指示待存储数据的数据对象与标签值之间的对应关系,在读取数据过程中,不仅需要获取标签值本身,还需要确定标签值的来源,即标签值对应的数据对象。由于标签值与对应的数据对象具有相同的序号,因此可以将数据对象和对应的序号的对应关系存储在另一个单独的存储系统中,该单独的存储系统称为行头存储系统。

在本申请的一种可选实施例中,将每种数据标签对应的标签值序列存入图像矩阵中的一列像素点中,包括:

将每个标签值序列中的各标签值依次与对应的一列像素点中的各像素点相匹配,并基于各标签值设置相匹配的像素点的灰度值。

具体地,由于标签值序列中的标签值都经过排序有各自的序号,因此将每个标签值按顺序依次对应存入对应得像素点,具体来说,可以按顺序依次将标签值从上至下存存入一列像素点中的各像素点中,然后,基于对应的标签值设置像素点的灰度值。具体来说,可以将像素点的灰度值设置为对应的标签值,或者可以将像素点的灰度值设置为对应的标签值的预设倍数,且该预设倍数可以根据实际需求进行设定。例如,若将标签值100存入像素点X,即将像素点X的灰度值设置为100,或将像素点X的灰度值设置为150(即灰度值为标签值的1.5倍)。可以理解的是,在完成标签值的存入后,数据图像不同区域有不同的灰度,如图2所示,即为存入不同标签值后的示意图,其中每个方格代表一个像素点。

需要说明的是,图像矩阵有很多像素点,每个像素点其实是一个数字,这个数字需要用一定比特位数的二进制来表示。例如像素点的数字是255,二进制表示为16个1,即需要16个比特位来表示,这种情况下该像素点的比特位数是16。假设比特位数为n,存储条件为2n大于标签值的数量N。存储时,当有多个像素点满足存储条件时,用于存储的像素点的比特位数n越小越好。图像矩阵中,每列有多个像素点,且比特位数都是一样的。存储时,该数据标签下的标签值的数量为N,则存储入该列下的N个像素点中。

下面通过一个示例来对上述方案进行进一步说明,待存储数据对应的数据标签为风的等级,包括强风、中风、微风、无风,经量化对应的标签值分别为1,2,3,4。现有的数据是:广东强风,河南微风,广西中风,福建无风,量化后是:广东,1;河南,3;广西,2;福建,4,组成4条记录。那么对应的映射表如表1所示。

表1

根据上述映射表,获取数据标签“风的等级”的标签值序列“1,2,3,4”,且数据对象“广东,河南,广西,福建”对应的序号分别为“1,2,3,4”,那么,将该标签值序列存入一列像素点中的4个像素,将数据对象和序号的对应关系存入行头存储系统中。

在本申请的一种可选实施例中,该方法还可以包括:

基于数据图像的图像特征,对数据图像进行压缩。

具体地,压缩存储实质是,因为图像有一些特征,其中某些像素点的数据具有代表性,通过存储该部分像素点的数据即可以实现存储全部数据,实现压缩存储。可以理解的是,对于得到的待存储数据的多个数据图像,可以对所有数据图像进行压缩处理,也可以仅对部分数据图像进行压缩处理。

压缩存储方法的两个例子:(1)一个图像是对称的,只要存储上三角或下三角像素点中的数据就可以。有规律矩阵的数据的压缩存储。(2)稀疏矩阵的存储方法,一幅图片里面只有几个像素点有颜色,就将该几个像素点的数据存储起来,其他的点没有颜色或颜色一样,就存储一个点的数据。

在本申请的一种可选实施例中,该方法还可以包括:

当需要检索数据图像中存储的数据时,获取检索条件;

基于检索条件从数据图像中获取目标标签值的序号;

基于目标标签值的序号从行头存储系统中获取对应的数据对象。

进一步地,检索条件还用于指示对应的目标数据标签,从数据图像中获取目标标签值的序号,包括:

结合目标数据标签,从数据图像中获取目标标签值的序号。

其中,检索条件可以指示所要检索的标签值的数值大小、数据标签种类。对于指示了所要检索的标签值的数值大小的检索条件,可以认为其指示了目标标签值,对于指示了所要检索的标签值的数值大小和数据标签种类的检索条件,可以认为其指示了目标标签值和目标数据标签。

具体地,对于指示了目标标签值的情形,可以从根据目标标签值从映射标签值获取对应的数据标签,然后,除了要从数据图像中获取目标标签值,还需要根据目标标签值的序号从行头存储系统中获取对应的数据对象,进而获取到完整的所要检索的数据。对于指示了目标标签值和目标数据标签的情形,除了要从数据图像中获取目标标签值,还需要根据目标标签值的序号从行头存储系统中获取对应的数据对象,进而获取到完整的所要检索的数据。可以理解的是,上述两种情形下的关键都是获取目标标签值的序号。

在本申请的一种可选实施例中,若检索条件指示对应的目标标签值存储于不同数据图像,则从数据图像中获取目标标签值的序号,包括:

提取各数据图像中存储目标标签值的各列像素点并合并,得到对应的合并图像;

基于检索条件从合并图像中获取目标标签值的序号。

具体地,对于单条件检索,即检索条件指示一个数据标签对应的目标标签值(一个或多个值)。确定目标标签值对应的数据图片。从被压缩存储的像素点的数据中取出与目标标签值相等的那些行,其中,这些行的顺序可以指示目标标签值的序号,举例来说,第6行可以指示目标标签值的序号为6。进而基于目标标签值的序号在行头存储系统中获取对应的数据对象。

接上举例,查询哪些地域的风为微风时,先通过映射表确定目标标签值为3和数据标签类型为风的等级,再确定对应的数据图片。从该数据图片的被压缩存储的像素点的数据中确定与3相等的那些行,以行数(即序号)作为索引再参考“行头存储系统”,则可以确定对应的地域,即确定了数据对象。

对于复合条件检索的情况,即检索条件指示多种数据标签对应的目标标签值(该情形下,可以理解为检索条件包含有目标标签值和目标数据标签),例如,“标签A=aa,标签B=bb,标签F=ff”,该三个数据标签对应的标签值序列分别存入了不同的数据图像,则将每张数据图片中这三个数据标签对应的列的像素点都提取出来,并合并形成一张新的图(下称合并图像),合并图像包括“ABF”,即包括三个数据标签A、B、F对应的列。从合并图像中获取目标标签值的序号可能的两种方式如下:

(1)对于合并图像,可以针对复合检索条件进行逐条检索,即先基于标签A=aa进行检索,得到A列中的数据“aa”和“BF”两列中的所有数据;然后再先后以标签B=bb和标签F=ff作为筛选条件,得到最终的数据,从而确定目标标签值的序号。

(2)对于合并图像,提取各列数据形成合并后的图后,做一层渲染。把满足条件的像素点保留原始颜色,不满足条件的都把灰度调到最大,例如调整为白色,把发白的数据裁剪掉,即得到想要的数据,最终确定目标标签值的序号。

需要说明的是,此过程可以通过GPU(Graphics Processing Unit,图形处理单元)来加速处理,因为像素点中的存储的数据都已经被量化为了数字,便于GPU进行处理。

总之,通过将标签值量化为数值并存入图像矩阵的像素点,使用压缩存储算法压缩存储,减少存储空间,加快存取效率,并实现用GPU资源加快计算。而且通过量化,存储的数据类型不受限制。

图3为本申请实施例提供的一种数据存储装置的结构框图,如图3所示,该装置300可以包括:映射表获取模块301、标签值序列获取模块302和第一数据存储模块303,其中:

映射表获取模块301用于获取待存储数据对应的映射表,所述映射表用于指示所述待存储数据的数据标签以及标签值之间的对应关系;

标签值序列获取模块302用于基于所述映射表,获取每种数据标签对应的标签值序列;

第一数据存储模块303用于将每种数据标签对应的标签值序列存入图像矩阵中的一列像素点中,得到所述待存储数据对应的至少一个数据图像。

本申请提供的方案,通过获取待存储数据的映射表,进而根据映射表获取每种数据标签的标签值序列,再将每种标签值序列存入图像矩阵的一列像素点中得到数据图像,该数据图像便于压缩,数据存储空间小。

在本申请的一种可选实施例中,映射表还用于指示待存储数据的数据对象与标签值之间的对应关系,该装置还包括第二数据存储模块,用于:

基于映射表,获取每种数据对象对应的标签值在对应的标签值序列中的序号;

将各数据对象与标签值的序号的对应关系存入行头存储系统中。

在本申请的一种可选实施例中,第一数据存储模块具体用于:

将每个标签值序列中的各标签值依次与对应的一列像素点中的各像素点相匹配,并基于各标签值设置相匹配的像素点的灰度值。

在本申请的一种可选实施例中,该装置还可以包括图像压缩模块,用于:

基于数据图像的图像特征,对数据图像进行压缩。

在本申请的一种可选实施例中,该装置还包括数据读取模块,用于:

当需要检索数据图像中存储的数据时,获取检索条件,检索条件用于指示对应的目标标签值;

从数据图像中获取目标标签值的序号;

基于目标标签值的序号从行头存储系统中获取对应的数据对象。

在本申请的一种可选实施例中,检索条件还用于指示对应的目标数据标签,数据读取模块,用于:

结合目标数据标签,从数据图像中获取目标标签值的序号。

在本申请的一种可选实施例中,若检索条件指示的对应的目标标签值存储于不同数据图像,则数据读取模块具体用于:

提取各数据图像中存储目标标签值的各列像素点并合并,得到对应的合并图像;

基于检索条件从合并图像中获取目标标签值的序号。

在本申请的一种可选实施例中,数据读取模块进一步用于:

将合并图像中不满足检索条件的标签值所在的像素点的灰度值设置为预设值,并筛除合并图像中的预设值对应的灰度区域,得到筛选后的合并图像;

基于筛选后的合并图像,获取目标标签值的序号。

基于相同的原理,本申请实施例还提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行该计算机程序时,实现本申请任一可选实施例中所提供的方法,具体可实现如下几种情况:

获取待存储数据对应的映射表,映射表用于指示待存储数据的数据标签以及标签值之间的对应关系;基于映射表,获取每种数据标签对应的标签值序列;将每种数据标签对应的标签值序列存入图像矩阵中的一列像素点中,得到待存储数据对应的至少一个数据图像。

本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请任一实施例所示的方法。

可以理解的是,介质中存储的可以是数据存储方法对应的计算机程序。

图4中示出了本申请实施例所适用的一种电子设备的结构示意图,如图4所示,图4所示的电子设备400包括:处理器401和存储器403。其中,处理器401和存储器403相连,如通过总线402相连。进一步地,电子设备400还可以包括收发器404,电子设备400可以通过收发器404与其他电子设备进行数据的交互。需要说明的是,实际应用中收发器404不限于一个,该电子设备400的结构并不构成对本申请实施例的限定。

其中,处理器401应用于本申请实施例中,可以用于实现图3所示的数据存储装置的功能,

处理器401可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器401也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。

总线402可包括一通路,在上述组件之间传送信息。总线402可以是PCI总线或EISA总线等。总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器403可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

存储器403用于存储执行本申请方案的应用程序代码,并由处理器401来控制执行。处理器401用于执行存储器403中存储的应用程序代码,以实现图3所示实施例提供的数据存储装置的动作。

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

以上仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

相关技术
  • 数据存储方法和装置、数据查询方法和装置、数据结构、电子设备及计算机可读存储介质
  • 数据存储方法、装置、电子设备和计算机可读存储介质
技术分类

06120113019953