CN112632061A - 一种多维数据存储方法及装置 - Google Patents
一种多维数据存储方法及装置 Download PDFInfo
- Publication number
- CN112632061A CN112632061A CN202011397260.9A CN202011397260A CN112632061A CN 112632061 A CN112632061 A CN 112632061A CN 202011397260 A CN202011397260 A CN 202011397260A CN 112632061 A CN112632061 A CN 112632061A
- Authority
- CN
- China
- Prior art keywords
- dimension
- column
- data
- row
- members
- 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.)
- Pending
Links
Images
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- 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/2228—Indexing structures
- G06F16/2272—Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了多维数据存储方法及装置,包括将多维数据中所有第一维度的成员确定为行索引,得到数据表的行坐标,包括定义所述第一维度所有成员对应的一个行索引键,以及定义所述第一维度所有成员的行索引值,将多维数据中剩余多个维度中每一个维度的成员确定为列索引,得到数据表的列坐标,包括定义剩余N个维度中每一个维度下的所有成员对应的一个列索引键,得到N个列索引键的集合,以及定义剩余维度中每一个维度的每一个成员的列索引值。可灵活适应多维度组合,无需按照特定的主键顺序对数据进行排列解决了现有技术中配置过程繁琐的技术问题。
Description
技术领域
本公开涉及数据存储技术领域,具体涉及到一种多维数据的存储方法 及装置。
背景技术
维,观察数据的特定角度,分析数据时一类属性,属性集合构成一个 维,例如,如数据的时间维、数据的地理维等。
维的成员,维的一个取值,是数据项在某维中位置的描述。例如,某 年某月某日是时间维上位置的描述。
存储多维度数据主要是通过对所有计算维度进行冗余,不断横向扩展 关系型数据库中的字段来实现。采用这种方式会产生大量的冗余数据,每 增加一个计算维度,数据量将程指数级上涨,并且需要额外的配置信息对 目标数据所用到的维度进行存储。
还通过按顺序嵌套组合不同维度主键来定位多维数据。采用这种方式 由于其按顺序对维度主键进行优化整合,读取数据的时候也必须按照主键 顺序来进行,因此同样需要额外的配置信息对目标数据等用到的维度进行 存储。
发明内容
本公开的主要目的在于提供一种多维数据存储方法,以解决数据存储 配置繁琐问题。
为了实现上述目的,根据本公开的第一方面,提供了一种多维数据存 储方法,包括:将多维数据中所有第一维度的成员确定为行索引,得到数 据表的行坐标,包括:定义所述第一维度所有成员对应的一个行索引键, 以及定义所述第一维度所有成员的行索引值,其中,所述行索引值被定义 为第一一维数组;将多维数据中剩余多个维度中每一个维度的成员确定为 列索引,得到数据表的列坐标,包括:定义剩余N个维度中每一个维度下 的所有成员对应的一个列索引键,得到N个列索引键的集合,以及定义剩 余维度中每一个维度的每一个成员的列索引值,其中,剩余维度中每一个 维度的每一个成员的列索引值被定义为第二一维数组;基于所述数据表中 的行坐标和所述数据表的列坐标,将目标数据进行对应存储。
可选地,在将多维数据中所有第一维度成员确定为行索引,得到数据 表的行坐标之前,所述方法还包括:比较多维数据中每个维度成员的数量 的大小;将数量最多的成员所对应的维度确定为所述第一维度。
可选地,将多维数据中剩余多个维度中每一个维度的成员确定为列索 引包括:定义第二维度的成员的列索引键,得到第二维度的所有成员对应 的一个第一列索引键;定义第三维度的成员的列索引键,得到第三维度的 所有成员对应的一个第二列索引键;定义第二维度的每一个成员的第一列 索引值,其中,所述每一个成员的第一列索引值被定义为第三一维数组, 所述第三一维数组中的元素为数据表中的列坐标;定义第二维度的每一个成员的第一列索引值,其中,所述第二维度的每一个成员的第一列索引值 被定义为第三一维数组;定义第三维度的每一个成员的第二列索引值,其 中,所述第三维度的每一个成员的第一列索引值被定义为第四一维数组。
可选地,基于所述数据表中的行坐标和所述数据表的列坐标,将目标 数据进行对应存储包括:获取所述目标数据对应的第一维度成员信息和剩 余维度成员信息;基于所述第一维度成员信息确定目标数据在数据表中的 行坐标;基于所述剩余维度成员信息确定目标数据在数据表中的列坐标; 基于所述数据表中的行坐标和所述数据表中的列坐标,将所述目标数据定 义为二维数组。
根据本公开的第二方面,提供了一种多维数据存储装置,包括:第一 确定单元,将多维数据中所有第一维度的成员确定为行索引,得到数据表 的行坐标,包括:定义所述第一维度所有成员对应的一个行索引键,以及 定义所述第一维度所有成员的行索引值,其中,所述行索引值被定义为第 一一维数组;第二确定单元,将多维数据中剩余多个维度中每一个维度的 成员确定为列索引,得到数据表的列坐标,包括:定义剩余N个维度中每 一个维度下的所有成员对应的一个列索引键,得到N个列索引键的集合, 以及定义剩余维度中每一个维度的每一个成员的列索引值,其中,剩余维 度中每一个维度的每一个成员的列索引值被定义为第二一维数组;存储单 元,基于所述数据表中的行坐标和所述数据表的列坐标,将目标数据进行 对应存储。
可选地,装置还包括:比较单元,比较多维数据中每个维度成员的数 量的大小;第三确定单元,将数量最多的成员所对应的维度确定为所述第 一维度。
可选地,第二确定单元包括:第一定义模块,定义第二维度的成员的 列索引键,得到第二维度的所有成员对应的一个第一列索引键;第二定义 模块,定义第三维度的成员的列索引键,得到第三维度的所有成员对应的 一个第二列索引键;第三定义模块,定义第二维度的每一个成员的第一列 索引值,其中,所述每一个成员的第一列索引值被定义为第三一维数组, 所述第三一维数组中的元素为数据表中的列坐标;第四定义模块,定义第 二维度的每一个成员的第一列索引值,其中,所述第二维度的每一个成员 的第一列索引值被定义为第三一维数组;第五定义模块定义第三维度的每 一个成员的第二列索引值,其中,所述第三维度的每一个成员的第一列索 引值被定义为第四一维数组。
可选地,存储单元进一步被配置成包括:获取模块,获取所述目标数 据对应的第一维度成员信息和剩余维度成员信息;第一确定模块,基于所 述第一维度成员信息确定目标数据在数据表中的行坐标;第二确定模块, 基于所述剩余维度成员信息确定目标数据在数据表中的列坐标;第六定义 模块,基于所述数据表中的行坐标和所述数据表中的列坐标,将所述目标 数据定义为二维数组。
根据本公开的第三方面,提供了一种计算机可读存储介质,计算机可 读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第 一方面任意一项实施例所述的多维数据存储方法。
根据本公开的第四方面,提供了一种电子设备,包括:至少一个处理 器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存 储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述 至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项实 施例所述的多维数据存储方法。
本公开实施例多维数据存储方法,包括将多维数据中所有第一维度的 成员确定为行索引,得到数据表的行坐标,包括定义所述第一维度所有成 员对应的一个行索引键,以及定义所述第一维度所有成员的行索引值,将 多维数据中剩余多个维度中每一个维度的成员确定为列索引,得到数据表 的列坐标,包括定义剩余N个维度中每一个维度下的所有成员对应的一个 列索引键,得到N个列索引键的集合,以及定义剩余维度中每一个维度的 每一个成员的列索引值。将多维数据简化为二维存储结构,从而可灵活适 应多维度组合,无需按照特定的主键顺序对数据进行排列;用一种与顺序 无关的主键组合进行查询,无需额外的配置数据,进而解决了现有技术中 配置过程繁琐的技术问题。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下 面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍, 显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普 通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获 得其他的附图。
图1是根据本公开实施例的数据存储方法;
图2是根据本公开实施例的数据存储方法的应用场景图;
图3是根据本公开实施例的数据存储装置示意图;
图4是根据本公开实施例的电子设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开 实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述, 显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施 例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动 前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第 一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或 先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描 述的本公开的实施例。此外,术语“包括”和“具有”以及他们的任何变 形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、 方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可 包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步 骤或单元。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的 特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
根据本公开实施例,提供了一种多维数据存储方法,如图1所示,该 方法包括如下的步骤101至步骤103:
步骤101:将多维数据中所有第一维度的成员确定为行索引,得到数据 表的行坐标,包括:定义所述第一维度所有成员对应的一个行索引键,以 及定义所述第一维度所有成员的行索引值,其中,所述行索引值被定义为 第一一维数组,所述第一一维数组中的元素为数据表中的行坐标。
在本实施例中,可以将多维数据中的第一维度的成员确定为行索引, 该实现过程可以包括,定义第一维度所有成员对应的一个行索引的主键, 例如,StringfirstColumnKey,行索引的主键用于标识第一维度的属性,采用该 方式,能用一种与顺序无关的主键组合进行查询,而无需额外的配置数据。 还包括定义所有成员的行索引值,行索引值可以定义为一维数组,以节省 存储空间,例如,ArrayList<String>firstColumnValues。当第一维度的属性包含 的信息是无重复的数字时,一维数组中的元素可以是该无重复的数字,即 行索引数据每行是唯一的,用于定位正文二维数据的行而存在。在确定行 索引键和行索引值后,数据表的行坐标可唯一确定。
以存储保险费率数据为例,保险费率由保险人的“性别”维度、“年 龄”维度和“存储年限”维度决定,“年龄”可以作为第一维度,将该维 度的成员(例如,18岁、19岁,20岁......65岁)为确定为行索引,具体可以 包括,定义“年龄”维度所有成员对应的一个行索引主键,例如,将主键 定义为“proposer.age”,将行索引的值定义为一维数组,数组元素可以是 行坐标,也可以是年龄包含的无重复的数字。可以采用JSON格式实现上述 方法:
步骤102:将多维数据中剩余多个维度中每一个维度的成员确定为列索 引,得到数据表的列坐标,包括:定义剩余N个维度中每一个维度下的所有 成员对应的一个列索引键,得到N个列索引键的集合,以及定义剩余维度中 每一个维度的每一个成员的列索引值,其中,剩余维度中每一个维度的每 一个成员的列索引值被定义为第二一维数组。
将多维数据中剩余多个维度中每一个维度的成员确定为列索引,包括: 定义剩余N个维度中每一个维度的所有成员对应的一个列索引键,得到N个 列索引键的集合,例如,可以为多个维度定义一个key数组, LinkedHashSet<String>columnKeys;其中key数组为列索引所有键(key)的集 合。而后可以定义剩余维度中每一个维度的每一个成员的列索引值,其中, 剩余维度中每一个维度的每一个成员的列索引值被定义为第二一维数组, 例如,LinkedHashMap<String,Set<Integer>>columnIndexSet;在确定列索引键和每一 个成员的列索引值后,数据表中的列坐标可唯一确定。不同维度中每一个 的每一个成员的列索引值均对应不同列坐标。第二一维数组中的元素可以 是数据表的列坐标,也可以根据实际需要将元素配置为无重复的数字。
可以理解,由于剩余维度任一维度(例如,第二维度)的每一个成员 均可与剩余维度中其余任一维度(例如,第三维度或第四维度)的每一个 成员存在重复的列坐标,比如性别“女”可对应的存储年限有“2年”“4 年”“9年”、“14年”和“19年”,“2年”可对应的性别“女”和“男”, 因此将每一个成员对应数据表中的列坐标,进而每一个成员的列索引值可 以被定义为一维数组。
以存储保险费率为例,保险费率除“年龄”以外,剩余两个维度是 “性别”和“存储年限”,可以分别定义“性别”维度下“男”成员和“女” 成员对应的索引键“proposer.sex”;定义“存储年限”下的成员“2年”、 “4年”、“9年”、“14年”和“19年”对应的索引键“humianplan.payDeadline”。 而后定义每一个成员的列索引值。可以采用Json实现上述步骤:
以proposer.sex=男为例,该成员的索引值为以列坐标为元素的数组 [0,1,2,3,4],不同维度的成员的索引值存在交集,例如,proposer.sex=男成员 的索引值均与“2年”、“4年”、“9年”、“14年”和“19年”存在交 集。而此交集可以通过行坐标唯一确定唯一值。
步骤103:基于所述数据表中的行坐标和所述数据表的列坐标,将目标 数据进行对应存储。
在本实施例中,在确定行坐标和列坐标之后,可以将目标数据作为二 维数组存储,可以包括类成员定义ArrayList<ArrayList<BigDecimal>>data。
作为本实施一种可选的实现方式,在将多维数据中所有第一维度成员 确定为行索引,得到数据表的行坐标之前,所述方法还包括:比较多维数 据中每个维度成员的数量的大小;将数量最多的成员所对应的维度确定为 所述第一维度。
在本实施例中,在将多维数据中所有第一维度成员确定为行索引,得 到数据表的行坐标之前,所述方法还包括:比较多维数据中每个维度成员 的数量的大小;将数量最多的成员所对应的维度确定为所述第一维度。
在本实施例中,多维数据中的任一维度成员均可以作为行索引,但如 果作为确定列索引的其余维度的成员成员量过多,会导致在进行存储配置 时,配置量增加,存储空间也变大。因此基于数量最多的成员对应的维度 确定行索引。例如,在保险费率数据中“年龄维度”的成员量最多,因此 基于该维度成员确定行索引。
作为本实施一种可选的实现方式,将多维数据中剩余多个维度中每一 个维度的成员确定为列索引包括:定义第二维度的成员的列索引键,得到 第二维度的所有成员对应的一个第一列索引键;定义第三维度的成员的列 索引键,得到第三维度的所有成员对应的一个第二列索引键;定义第二维 度的每一个成员的第一列索引值,其中,所述每一个成员的第一列索引值 被定义为第三一维数组,所述第三一维数组中的元素为数据表中的列坐标; 定义第二维度的每一个成员的第一列索引值,其中,所述第二维度的每一 个成员的第一列索引值被定义为第三一维数组;定义第三维度的每一个成 员的第二列索引值,其中,所述第三维度的每一个成员的第一列索引值被 定义为第四一维数组。
在本实施例中,上述存储方法可适用于多个维度的数据,当数据维度 为三个维度时,可以将目标数据描述准确,且配置效率最高。在确定列索 引时,可以首先定义第二维度的成员、第三维度成员的列索引键,而后定 义第二维度每一个成员的第一列索引值,该列索引值被定义为第三一维数 组,再定义第三维度每一个成员的第二列索引值,该列索引值被定义为第 四一维数组。在该实施例下,优选第二维度的成员数量大于第三维度的成 员数量,可以实现减少存储配置的工作量。减少存储空间的占用。
在实际运用中,随着维度的增加,同一个值会出现在多列中,因此, 以存储某一行的列索引值=列索引数组
作为本实施例一种可选的实现方式,基于所述数据表中的行坐标和所 述数据表的列坐标,将目标数据进行对应存储包括:获取所述目标数据对 应的第一维度成员信息和剩余维度成员信息;基于所述第一维度成员信息 确定目标数据在数据表中的行坐标;基于所述剩余维度成员信息确定目标 数据在数据表中的列坐标;基于所述数据表中的行坐标和所述数据表中的 列坐标,将所述目标数据定义为二维数组。
以存储保险费率为例,当获取到目标数据第一维度的成员信为30岁、 剩余维度成员信息为“女”、“14年”,可以确定行索引数组proposer.age=30, 在数据表中的行坐标=12,而后通过组合主键proposer.sex=女得到第一组列 索引数组[5,6,7,8,9];通过组合主键huomianPlan.payDeadline=14年的到第二组 列索引数组[3,8];将所有索引数组取交集,得到唯一的列坐标8,data[12,8] 即为目标数据的存储位置。
从以上的描述中,可以看出,本公开实现了如下技术效果:可灵活适 应多维度组合,无需按照特定的主键顺序对数据进行排列;通过设置每个 维度的主键,可以实现在查询时,用一种与顺序无关的主键组合进行查询, 无需额外的配置数据;通过方便与各种类型的表格文档(例如:Excel、PDF、 HTML)进行相互转换;完整的表格数据占用存储空间非常小,方便用于各 种缓存中。
参考图2,图2示出了多维数据存储方法的应用场景示意图,数据表中 存储了保险费率数据。示意数据表可分为3个部分:以第一列作为行索引; 示意表的右上方头部为列索引,可以是一行或多行,列索引部分可以灵活 扩展,每一行指定一个数据维度,剩余的部分是一个数据正文二维数组。
行索引的头部即为主键,形式为:key=注释文字;行索引数据每行必 须唯一,作为定位正文二维数据的行而存在;读取(查询)时,通过key=索 引值即可立即定位至正文数据所属行坐标。
每一行的第一列,定义key=值,其余列只需定义值,无需重复定义key, 将key=值->值=列索引数组这样的两层结构展开,简化为一层:(key=值)= 列索引数组,得到一个更为直观的字典结构:LinkedHashMap<String, Set<Integer>>columnIndexSet。
在读取数据时查询时,取出每个维度所覆盖的列索引数组,然后通过 取交集的方式,得到最终唯一的列坐标值。具体地,通过传入的投保参数, 快速计算出行列坐标,即可在正文中读取到相应费率数据。例如, 投保参数为【投保人年龄:30岁,投保人性别:女,缴费期间:14年】则从 行索引数组中搜索proposer.age=30,得到行坐标=12。从列索引集合中,通 过组合主键proposer.sex=女得到第一组列索引数组[5,6,7,8,9];通过组合主键huomianPlan.payDeadline=14年的到第二组列索引数组[3,8];将所有索引数组 取交集,得到唯一的列坐标8。从费率表数据二维数组中,读取data[12,8]的 数据,得到费率:26.56。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可 执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序, 但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本公开实施例,还提供了一种用于实施上述多维数据存储方法的 装置,如图3所示,该装置包括:
第一确定单元301,将多维数据中所有第一维度的成员确定为行索引, 得到数据表的行坐标,包括:定义所述第一维度所有成员对应的一个行索 引键,以及定义所述第一维度所有成员的行索引值,其中,所述行索引值 被定义为第一一维数组;第二确定单元302,将多维数据中剩余多个维度中 每一个维度的成员确定为列索引,得到数据表的列坐标,包括:定义剩余N 个维度中每一个维度下的所有成员对应的一个列索引键,得到N个列索引 键的集合,以及定义剩余维度中每一个维度的每一个成员的列索引值,其 中,剩余维度中每一个维度的每一个成员的列索引值被定义为第二一维数 组;存储单元303,基于所述数据表中的行坐标和所述数据表的列坐标,将 目标数据进行对应存储。
可选地,装置还包括:比较单元,比较多维数据中每个维度成员的数 量的大小;第三确定单元,将数量最多的成员所对应的维度确定为所述第 一维度。
可选地,第二确定单元302包括:第一定义模块,定义第二维度的成 员的列索引键,得到第二维度的所有成员对应的一个第一列索引键;第二 定义模块,定义第三维度的成员的列索引键,得到第三维度的所有成员对 应的一个第二列索引键;第三定义模块,定义第二维度的每一个成员的第 一列索引值,其中,所述每一个成员的第一列索引值被定义为第三一维数 组,所述第三一维数组中的元素为数据表中的列坐标;第四定义模块,定 义第二维度的每一个成员的第一列索引值,其中,所述第二维度的每一个 成员的第一列索引值被定义为第三一维数组;第五定义模块定义第三维度 的每一个成员的第二列索引值,其中,所述第三维度的每一个成员的第一 列索引值被定义为第四一维数组。
可选地,存储单元303进一步被配置成包括:获取模块,获取所述目 标数据对应的第一维度成员信息和剩余维度成员信息;第一确定模块,基 于所述第一维度成员信息确定目标数据在数据表中的行坐标;第二确定模 块,基于所述剩余维度成员信息确定目标数据在数据表中的列坐标;第六 定义模块,基于所述数据表中的行坐标和所述数据表中的列坐标,将所述 目标数据定义为二维数组。
本公开实施例提供了一种电子设备,如图4所示,该电子设备包括一 个或多个处理器41以及存储器42,图4中以一个处理器41为例。
该控制器还可以包括:输入装置43和输出装置44。
处理器41、存储器42、输入装置43和输出装置44可以通过总线或者 其他方式连接,图4中以通过总线连接为例。
处理器41可以为中央处理器(CentralProcessingUnit,CPU)。处理器 41还可以为其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、 专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现场可编程门 阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分 立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组 合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器 等。
存储器42作为一种非暂态计算机可读存储介质,可用于存储非暂态软 件程序、非暂态计算机可执行程序以及模块,如本公开实施例中的控制方 法对应的程序指令/模块。处理器41通过运行存储在存储器42中的非暂态 软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理, 即实现上述方法实施例的数据存储方法。
存储器42可以包括存储程序区和存储数据区,其中,存储程序区可存 储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服 务器操作的处理装置的使用所创建的数据等。此外,存储器42可以包括高 速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器 件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器42 可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部 网、局域网、移动通信网及其组合。
输入装置43可接收输入的数字或字符信息,以及产生与服务器的处理 装置的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示 屏等显示设备。
一个或者多个模块存储在存储器42中,当被一个或者多个处理器41 执行时,执行如图1所示的方法。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各电机控制方法的 实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体 (Read-OnlyMemory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(FlashMemory)、硬盘(HardDiskDrive,缩写:HDD) 或固态硬盘(Solid-StateDrive,SSD)等;存储介质还可以包括上述种类的存 储器的组合。
虽然结合附图描述了本公开的实施方式,但是本领域技术人员可以在 不脱离本公开的精神和范围的情况下作出各种修改和变型,这样的修改和 变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种多维数据存储方法,其特征在于,包括:
将多维数据中所有第一维度的成员确定为行索引,得到数据表的行坐标,包括:定义所述第一维度所有成员对应的一个行索引键,以及定义所述第一维度所有成员的行索引值,其中,所述行索引值被定义为第一一维数组;
将多维数据中剩余多个维度中每一个维度的成员确定为列索引,得到数据表的列坐标,包括:定义剩余N个维度中每一个维度下的所有成员对应的一个列索引键,得到N个列索引键的集合,以及定义剩余维度中每一个维度的每一个成员的列索引值,其中,剩余维度中每一个维度的每一个成员的列索引值被定义为第二一维数组;
基于所述数据表中的行坐标和所述数据表的列坐标,将目标数据进行对应存储。
2.根据权利要求1所述的多维数据存储方法,其特征在于,在将多维数据中所有第一维度成员确定为行索引,得到数据表的行坐标之前,所述方法还包括:
比较多维数据中每个维度成员的数量的大小;
将数量最多的成员所对应的维度确定为所述第一维度。
3.根据权利要求1所述的多维数据存储方法,其特征在于,将多维数据中剩余多个维度中每一个维度的成员确定为列索引包括:
定义第二维度的成员的列索引键,得到第二维度的所有成员对应的一个第一列索引键;
定义第三维度的成员的列索引键,得到第三维度的所有成员对应的一个第二列索引键;
定义第二维度的每一个成员的第一列索引值,其中,所述每一个成员的第一列索引值被定义为第三一维数组,所述第三一维数组中的元素为数据表中的列坐标;
定义第二维度的每一个成员的第一列索引值,其中,所述第二维度的每一个成员的第一列索引值被定义为第三一维数组;
定义第三维度的每一个成员的第二列索引值,其中,所述第三维度的每一个成员的第一列索引值被定义为第四一维数组。
4.根据权利要求1所述的多维数据存储方法,其特征在于,基于所述数据表中的行坐标和所述数据表的列坐标,将目标数据进行对应存储包括:
获取所述目标数据对应的第一维度成员信息和剩余维度成员信息;
基于所述第一维度成员信息确定目标数据在数据表中的行坐标;
基于所述剩余维度成员信息确定目标数据在数据表中的列坐标;
基于所述数据表中的行坐标和所述数据表中的列坐标,将所述目标数据定义为二维数组。
5.一种多维数据存储装置,其特征在于,包括:
第一确定单元,将多维数据中所有第一维度的成员确定为行索引,得到数据表的行坐标,包括:定义所述第一维度所有成员对应的一个行索引键,以及定义所述第一维度所有成员的行索引值,其中,所述行索引值被定义为第一一维数组;
第二确定单元,将多维数据中剩余多个维度中每一个维度的成员确定为列索引,得到数据表的列坐标,包括:定义剩余N个维度中每一个维度下的所有成员对应的一个列索引键,得到N个列索引键的集合,以及定义剩余维度中每一个维度的每一个成员的列索引值,其中,剩余维度中每一个维度的每一个成员的列索引值被定义为第二一维数组;存储单元,基于所述数据表中的行坐标和所述数据表的列坐标,将目标数据进行对应存储。
6.根据权利要求1所述的多维数据存储装置,其特征在于,所述装置还包括:
比较单元,比较多维数据中每个维度成员的数量的大小;
第三确定单元,将数量最多的成员所对应的维度确定为所述第一维度。
7.根据权利要求1所述的多维数据存储装置,其特征在于,第二确定单元包括:
第一定义模块,定义第二维度的成员的列索引键,得到第二维度的所有成员对应的一个第一列索引键;
第二定义模块,定义第三维度的成员的列索引键,得到第三维度的所有成员对应的一个第二列索引键;
第三定义模块,定义第二维度的每一个成员的第一列索引值,其中,所述每一个成员的第一列索引值被定义为第三一维数组,所述第三一维数组中的元素为数据表中的列坐标;
第四定义模块,定义第二维度的每一个成员的第一列索引值,其中,所述第二维度的每一个成员的第一列索引值被定义为第三一维数组;
第五定义模块定义第三维度的每一个成员的第二列索引值,其中,所述第三维度的每一个成员的第一列索引值被定义为第四一维数组。
8.根据权利要求1所述的多维数据存储装置,其特征在于,所述存储单元进一步被配置成包括:
获取模块,获取所述目标数据对应的第一维度成员信息和剩余维度成员信息;
第一确定模块,基于所述第一维度成员信息确定目标数据在数据表中的行坐标;
第二确定模块,基于所述剩余维度成员信息确定目标数据在数据表中的列坐标;
第六定义模块,基于所述数据表中的行坐标和所述数据表中的列坐标,将所述目标数据定义为二维数组。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-4任意一项所述的多维数据存储方法。
10.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-4任意一项所述的多维数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011397260.9A CN112632061A (zh) | 2020-12-03 | 2020-12-03 | 一种多维数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011397260.9A CN112632061A (zh) | 2020-12-03 | 2020-12-03 | 一种多维数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112632061A true CN112632061A (zh) | 2021-04-09 |
Family
ID=75307605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011397260.9A Pending CN112632061A (zh) | 2020-12-03 | 2020-12-03 | 一种多维数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632061A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108021589A (zh) * | 2016-10-31 | 2018-05-11 | 腾讯科技(北京)有限公司 | 数据库的查询维度的配置方法和装置 |
CN108932257A (zh) * | 2017-05-25 | 2018-12-04 | 北京国双科技有限公司 | 多维度数据的查询方法及装置 |
CN109189777A (zh) * | 2018-06-28 | 2019-01-11 | 微梦创科网络科技(中国)有限公司 | 一种存储及查询多维信息的方法、装置及设备 |
CN109614402A (zh) * | 2018-12-11 | 2019-04-12 | 北京京东金融科技控股有限公司 | 多维数据查询方法和装置 |
CN109885570A (zh) * | 2019-01-30 | 2019-06-14 | 南京邮电大学 | 一种辅助索引结合散列表的多维范围查询方法 |
CN110175184A (zh) * | 2019-04-30 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 一种数据维度的下钻方法、系统及电子设备 |
CN111782742A (zh) * | 2020-06-06 | 2020-10-16 | 中国科学院电子学研究所苏州研究院 | 一种面向大规模地理空间数据的存储和检索方法及其系统 |
CN111881146A (zh) * | 2020-09-28 | 2020-11-03 | 南京吉拉福网络科技有限公司 | 用于收取费用的方法、计算设备和介质 |
-
2020
- 2020-12-03 CN CN202011397260.9A patent/CN112632061A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108021589A (zh) * | 2016-10-31 | 2018-05-11 | 腾讯科技(北京)有限公司 | 数据库的查询维度的配置方法和装置 |
CN108932257A (zh) * | 2017-05-25 | 2018-12-04 | 北京国双科技有限公司 | 多维度数据的查询方法及装置 |
CN109189777A (zh) * | 2018-06-28 | 2019-01-11 | 微梦创科网络科技(中国)有限公司 | 一种存储及查询多维信息的方法、装置及设备 |
CN109614402A (zh) * | 2018-12-11 | 2019-04-12 | 北京京东金融科技控股有限公司 | 多维数据查询方法和装置 |
CN109885570A (zh) * | 2019-01-30 | 2019-06-14 | 南京邮电大学 | 一种辅助索引结合散列表的多维范围查询方法 |
CN110175184A (zh) * | 2019-04-30 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 一种数据维度的下钻方法、系统及电子设备 |
CN111782742A (zh) * | 2020-06-06 | 2020-10-16 | 中国科学院电子学研究所苏州研究院 | 一种面向大规模地理空间数据的存储和检索方法及其系统 |
CN111881146A (zh) * | 2020-09-28 | 2020-11-03 | 南京吉拉福网络科技有限公司 | 用于收取费用的方法、计算设备和介质 |
Non-Patent Citations (4)
Title |
---|
徐江峰: "基于HBase的多维索引查询机制的优化", 《计算机应用》, vol. 40, no. 02, pages 571 - 577 * |
李钊伟;陈世平;: "支持多维查找的资源共享设计", 计算机应用研究, no. 07, pages 2156 - 2159 * |
窦轶: "无线传感器网络隐私数据查询技术研究", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》, no. 2015, pages 140 - 196 * |
赵霞琦;来玲;郭宝鹏;: "多维技术在面向学科知识仓库中的使用――以构建多维电子期刊数据库模型为例", 现代图书情报技术, no. 04, pages 56 - 59 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11573942B2 (en) | System and method for determining exact location results using hash encoding of multi-dimensioned data | |
US10747762B2 (en) | Automatic generation of sub-queries | |
CN108509547B (zh) | 一种信息管理方法、信息管理系统及电子设备 | |
US20170308571A1 (en) | Techniques for utilizing a natural language interface to perform data analysis and retrieval | |
US20130232157A1 (en) | Systems and methods for processing unstructured numerical data | |
CN113449187A (zh) | 基于双画像的产品推荐方法、装置、设备及存储介质 | |
US8463807B2 (en) | Augmented search suggest | |
CN112965645B (zh) | 页面拖拽方法、装置、计算机设备及存储介质 | |
CN111414375A (zh) | 基于数据库查询的输入推荐方法、电子装置及存储介质 | |
CN114547095A (zh) | 一种数据快速查询方法、装置、电子设备和存储介质 | |
CN116644729A (zh) | 表格文件处理方法、装置、计算机设备和存储介质 | |
CN109656947B (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN114444465A (zh) | 信息抽取方法、装置、设备及存储介质 | |
EP3404557A1 (en) | Worker thread processing | |
CN112632061A (zh) | 一种多维数据存储方法及装置 | |
CN111858581A (zh) | 一种分页查询的方法、装置、存储介质和电子设备 | |
US20160147879A1 (en) | Fuzzy Search and Highlighting of Existing Data Visualization | |
US9811931B2 (en) | Recommendations for creation of visualizations | |
US20070156775A1 (en) | Metadata transformation in copy and paste scenarios between heterogeneous applications | |
CN112015853A (zh) | 图书搜索方法、图书搜索系统、电子装置及介质 | |
US11599718B1 (en) | Database system for storing electronic spreadsheets | |
CN116226297B (zh) | 数据模型的可视化搜索方法、系统、设备及存储介质 | |
CN116702024B (zh) | 流水数据类型识别方法、装置、计算机设备和存储介质 | |
CN115827930B (zh) | 一种图数据库的数据查询优化方法、系统和装置 | |
US11036927B1 (en) | Relative positional parsing of documents using trees |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |