CN110019195A - 一种数据的存储方法及装置 - Google Patents
一种数据的存储方法及装置 Download PDFInfo
- Publication number
- CN110019195A CN110019195A CN201710892087.1A CN201710892087A CN110019195A CN 110019195 A CN110019195 A CN 110019195A CN 201710892087 A CN201710892087 A CN 201710892087A CN 110019195 A CN110019195 A CN 110019195A
- Authority
- CN
- China
- Prior art keywords
- data
- dimension
- level
- hierarchy
- tables
- 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
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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据的存储方法及装置,涉及计算机技术领域,主要目的在于解决关联操作以及层次聚合过程中的数据迁移,提高数据查询性能,本发明的主要技术方案为:获取维度表和事实表;将所述维度表合并进所述事实表中,得到合并后的数据表;从合并后的数据表中提取每个维度对应的维度层次信息;对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表;将所述压缩后的数据表进行存储。本发明主要用于数据的存储。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据的存储方法及装置。
背景技术
随着计算机与互联网的快速发展,各行各业每天都会产生上亿条数据,甚至更多,如何能够利用这些数据为企业的战略决策和后续发展提供数据支持在企业发展中起着至关重要的作用。通常情况下,企业会利用数据仓库所具有的数据架构,将企业生产环境所产生的数据存储起来,以便于数据分析和挖掘,帮助决策者在众多资料中快速和有效的分析出有效信息。
现有的数据仓库中在进行数据存储时会将存储数据的维度表和事实表分别进行存储,而在联机分析处理中会涉及到数据查询操作,当需要通过通过干练表格进行数据查询时,将需要查询的维度表和事实表进行关联操作以及层次聚合等,而在进行数据关联操作以及层次聚合的过程中产生了数据迁移问题。
为了解决数据查询操作是产生的数据迁移问题,可以将维度表和数据表合并为一张表格,从而方便数据查询。然而,在将维度表合并进事实表后,由于两张表格合并导致数据仓库中数据量急剧膨胀,占用数据仓库大量的存储空间。
发明内容
有鉴于此,本发明提供一种数据的存储方法及装置,主要目的在于减少表格合并后数据仓库中的数据量,避免占用过多的存储空间。
为了解决上述问题,本发明主要提供如下技术方案:
一方面,本发明实施例提供了一种数据的存储方法,包括:
获取维度表和事实表;
将所述维度表合并进所述事实表中,得到合并后的数据表;
从合并后的数据表中提取每个维度对应的维度层次信息;
对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表;
将所述压缩后的数据表进行存储。
进一步地,所述维度层次信息包括层次属性,每个层次属性对应一个预设压缩策略,在所述对所述维度层次信息按照对应的预设压缩策略进行压缩之前,所述方法还包括:
从合并后的数据表中获取每个维度所包含的多个层次以及每个层次对应的层次属性;
根据所述层次属性,确定每个层次所对应的预设压缩策略。
进一步地,所述层次属性包括全局属性和局部属性,所述全局属性适用于一个维度的所有层次,所述局部属性适用于一个维度的一个层次,在所述从合并后的数据表中获取每个层次对应的层次属性之前,所述方法还包括:
确定每个层次对应的层次属性。
进一步地,所述确定每个层次对应的层次属性,包括:
设置所述维度中最高层次的层次属性为全局属性;
逐一判断所述维度中最高层次对应的数据取值范围分别与该维度中任一剩余层次对应的数据取值范围是否存在交集;
如果不存在,则将相应层次的层次属性确定为局部属性;
如果存在,则计算所述交集对应的数据与所述最高层次对应的数据的比值;
如果所述比值大于预设数值,则将相应层次的层次属性确定为全局属性;
否则,将相应层级的层次属性确定为局部属性。
进一步地,所述维度层次信息还包括数据内容,不同的层次属性与不同的预设压缩策略对应,所述预设压缩策略为预设编码规则,所述对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表包括:
分别获取所述维度中的每个层次对应的预设编码规则;
采用所述预设编码规则分别对每个层次的数据内容和层次属性进行压缩;
将所述压缩后的内容按照层次顺序进行整合,得到压缩后的数据表。
为了实现上述目的,根据本发明的另一方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的数据的存储方法。
为了实现上述目的,根据本发明的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的数据的存储方法。
另一方面,本发明实施例还提供了一种数据的存储装置,包括:
第一获取单元,用于获取维度表和事实表;
合并单元,用于将所述维度表合并进所述事实表中,得到合并后的数据表;
提取单元,用于从合并后的数据表中提取每个维度对应的维度层次信息;
压缩单元,用于对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表;
存储单元,用于将所述压缩后的数据表进行存储。
进一步地,所述维度层次信息包括层次属性,每个层次属性对应一个预设压缩策略,所述装置还包括:
第二获取单元,用于从合并后的数据表中获取每个维度所包含的多个层次以及每个层次对应的层次属性;
第一确定单元,用于根据所述层次属性,确定每个层次所对应的预设压缩策略。
进一步地,所述层次属性包括全局属性和局部属性,所述全局属性适用于一个维度的所有层次,所述局部属性适用于一个维度的一个层次,所述装置还包括:
第二确定单元,用于确定每个层次对应的层次属性。
进一步地,所述第二确定单元包括:
设置模块,用于设置所述维度中最高层次的层次属性为全局属性;
判断模块,用于逐一判断所述维度中最高层次对应的数据取值范围分别与该维度中任一剩余层次对应的数据取值范围是否存在交集;
第一确定模块,用于如果不存在,则将相应层次的层次属性确定为局部属性;
计算模块,用于如果存在,则计算所述交集对应的数据与所述最高层次对应的数据的比值;
第二确定模块,用于如果所述比值大于预设数值,则将相应层次的层次属性确定为全局属性;
第三确定模块,用于如果所述比值小于或等于预设数值,将相应层级的层次属性确定为局部属性。
进一步地,所述维度层次信息还包括数据内容,不同的层次属性与不同的预设压缩策略对应,所述预设压缩策略为预设编码规则,所述压缩单元包括:
获取模块,用于分别获取所述维度中的每个层次对应的预设编码规则;
压缩模块,用于采用所述预设编码规则分别对每个层次的数据内容和层次属性进行压缩;
整合模块,用于将所述压缩后的内容按照层次顺序进行整合,得到压缩后的数据表。
借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
本发明实施例提供的一种数据的存储方法及装置,通过将维度表合并进事实表中,得到合并后的数据表,从而在数据查询时无需将事实表和维度表进行关联,避免了关联操作以及层次聚合过程中的大量数据迁移,痛感对维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表,由于压缩后的数据表在各个维度层次信息上的占用字节变小,节省了数据空间的占用。与现有技术中采用列式存储数据的方法相比,本发明实施例为了避免分布式列式数据存储在进行数据查询过程中的数据迁移,利用数据特征通过对维度层次信息进行压缩,使得压缩后的数据不影响事实表以及维度表的数据信息,消除了数据查询过程中维度表和事实表之间的链接操作,同时减少了数据的迁移,从而提高了数据查询性能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的一种数据的存储方法流程图;
图2为本发明实施例提供的另一种数据的存储方法流程图;
图3为本发明实施例提供的一种数据的存储装置的组成框图;
图4为本发明实施例提供的另一种数据的存储装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种数据的存储方法,如图1所示,该方法通过从合并后的数据表中提取每个维度对应的维度层次信息,并且对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表,从而解决关联操作以及层次聚合过程中的数据迁移,提高数据查询性能,对此本发明实施例提供以下具体步骤:
101、获取维度表和事实表。
每个数据仓库都包含一个或多个事实表,以及多个维度表,事实数据表可能包含业务销售数据,如现金登记事务所产生的数据,事实数据表通常包含大量的行。维度表在数据仓库中主要对事实表中的事实指标进行过滤和重新组织提供指导,比如分析产品销售情况,可以选择按区域来分析或者按照年龄层等维度进行分析。在用户进行查询的时候,通常需要将事实表中的数据聚合后依据某个维度生成结果表,进而将用户对事实的查询结果按照维度指标进行筛选,从而将筛选结果反馈给用户。
需要说明的是,现有的数据仓库会将具有关联关系的数据分别存储在不同的事实表以及维度表中,当需要进行数据查询时会将具有关联关系的数据所在的事实表与一个或多个维度表进行关联。
102、将所述维度表合并进所述事实表中,得到合并后的数据表。
在数据仓库中,常常不只是一个数据表,而且表与表之间也不是相互独立的,不同表之间需要有关联关系,当用户在进行数据查询时,通过将具有关联的数据表进行合并,才能实现数据的互通,从而查询到用户所需要的数据,例如表A中记录有员工的姓名、身份证号、籍贯等维度特征,表B中记录有员工的工作时长、加班时长等维度特征,由于两个表分别记录有公司员工的基本信息以及日常工作量,说明两个表之间具有关联关系,在月底或者年底统计工作量时可以通过将两个表进行合并后计算员工的工作量等信息,从而方便数据查询。
需要说明的是,在数据表合并过程中涉及到表中数据的迁移,影响数据的查询性能。而本发明实施例在进行数据存储之前通过将维度表合并进事实表中,无需在数据查询时引入数据的迁移,提高了数据的查询性能。
103、从合并后的数据表中提取每个维度对应的维度层次信息。
其中,数据表可能包含有多个维度,例如,描述企业的销售信息这样一个事实,可能用到客户维度、时间维度、产品维度、仓库维度等,而每个维度可能包含有多个维度层次,例如,对于客户维度中可能包含的名字属性,所在国家,所在城市以及省,性别,教育情况,职业等信息,通过分析这些属性的值,可以发现,城市是属于某个省的,而省有事属于某个国家的,所以这些属性的值中就表现了一种层次关系。
104、对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表。
在本实施例中,在将维度表合并进事实表后,虽然减少了在数据查询时表格之间的关联操作,但在数据查询之前预先将数据关联后存储也会带来了数据空间占用问题,本发明实施例通过对维度层次信息按照对应的预设压缩策略进行压缩,从而解决数据空间占用的问题。
其中,预设压缩策略为从合并后的数据表中的各个维度出发,对每个维度对应的维度层次信息进行压缩,进而将各个维度层次信息对应的压缩数据进行整合。例如,合并后的数据表红包括有时间、性别以及地域等维度,而对于时间维度涉及到年、月、日等不同的维度层次信息,对于不同的维度层次信息采用对应的压缩编码进行压缩,如对于时间为年的维度层次在整数类型下的占用字节为4个字节,对于时间为月的维度层次在整数类型下的占用字节为1或2个字节,通过压缩编码将不同维度层次的占用字节进行压缩,将时间为年的维度层次在整数类型下的占用字节压缩为2个字节,将时间为月的维度层次在整数类型下的占用字节压缩为1个字节,进一步将各个维度层级信息压缩后的数据进行整合。
对于本发明实施例,通过对维度层次信息按照对应的预设压缩策略进行压缩,消除了由于数据合并所带来数据仓库中数据表格存储空间占用的问题。
105、将所述压缩后的数据表进行存储。
对于本发明实施例,压缩后的数据表不仅减少了存储空间的占用,同时还包含了合并后数据表格的所有维度层次信息,使得用户在进行数据查询时无需对数据进行关联操作,优化了数据查询性能。
针对本发明的实施例提供的一种数据的存储方法,通过将维度表合并进事实表中,得到合并后的数据表,从而在数据查询时无需将事实表和维度表进行关联,避免了关联操作以及层次聚合过程中的大量数据迁移,痛感对维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表,由于压缩后的数据表在各个维度层次信息上的占用字节变小,节省了数据空间的占用。与现有技术中采用列式存储数据的方法相比,本发明实施例为了避免分布式列式数据存储在进行数据查询过程中的数据迁移,利用数据特征通过对维度层次信息进行压缩,使得压缩后的数据不影响事实表以及维度表的数据信息,消除了数据查询过程中维度表和事实表之间的链接操作,同时减少了数据的迁移,从而提高了数据查询性能。
以下为了更加详细地说明本发明提出的一种数据的存储方法,特别是对维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表的步骤,本发明实施例还提供了另一种数据的存储方法,如图2所示,该方法的具体的步骤包括:
201、获取维度表和事实表。
通常情况下,每个数据仓库都包含一个或多个事实表,以及维度表,用户在利用事实表创建多维度数据集时,由于维度表包含汇总数据特性的层析结构,例如包含产品信息的维度特征通常包含将产品分为食品、饮料、非消费品等若干类的层次结构,这些产品中的每一类进一步多次细分,直到各产品达到最低级别。
202、将所述维度表合并进所述事实表中,得到合并后的数据表。
现有的数据仓库会将具有关联关系的数据分别存储在不同的事实表以及维度表中,当需要进行数据查询时会将具有关联关系的数据所在的事实表与一个或多个维度表进行合并,而在合并过程中涉及到关联数据的迁移,影响数据的查询性能。对于本发明实施例,在进行数据存储之前通过将数据仓库中具有关联关系的维度表预先合并进事实表中,无需在数据查询时引入数据的迁移,提高了数据的查询性能。
203、从合并后的数据表中提取每个维度对应的维度层次信息。
由于合并后的数据表中汇总有不同维度的事实数据,如产品的种类、产品的产地等维度,而各个维度汇总有不同的维度层次信息,如产品的产地维度中有国家、省份以及城市的维度层次,时间维度中有年、月、日的维度层次。
需要说明的是,维度中层次关系有时候是隐含的,由数据的意义表示。所以维度层次有时候可以自动生成,但更多时候需要人为定义,进一步在定义好维度层次关系后,从合并后的数据表中提取每个维度对应的维度层次信息。
204、确定每个层次对应的层次属性。
其中,每个维度层次对应有各自的层次属性,如产品的产地维度中有国家属性、省份属性以及城市属性,时间维度中有年属性、月属性以及日属性,这里的层次属性包括全局属性和局部属性,全局属性适用于一个维度的所有层次,通常全局属性对应的取值范围较少且有限的,同时对应数据的编码规则适用于一个维度的所有层次,如国家属性中所包含的国家数量较少,属性适用于涉及地域维度的所有层次,时间年属性包含的取值范围为1至2017中的整数,时间月属性包含的取值范围为1-12中的整数,时间日属性对应的取值范围为1-31中的整数,属性适用于涉及时间维度的所有层次;局部属性适用于一个维度的一个层次,通常对应的取值范围较多且无限的,如城市属性中所包含的城市数量较多,适用于涉及地域维度的城市层次属性,时间小时属性包含的取值范围为1-24,适用于时间维度的小时层次属性,时间分钟属性对应的取值范围为0-60,适用于时间维度的分钟层次属性。
通常情况下,对于各个维度中最高层次的层次属性对应的取值范围都较少,如对于地域维度中的国家属性,对于时间维度的年属性,因此,在确定每个层次对应的层次属性时首先设置维度中最高层次的层次属性为全局属性,进一步逐一判断维度中最高层次的对应的数据的取值范围分别与该维度中任一剩余层级对应的数据的取值范围是否存在交集,如果不存在交集,说明该层级的层次信息对应的取值范围与最高层次的层次属性对应的取值范围没有任何交集,不适用于与最高层次的层次属性同样的方式进行压缩,将相应层次的层次属性确定为局部属性,如果存在,则说明该层次的层次属性对应的取值范围与最高层次的层次属性对应的取值范围有交集,进一步获取交集,通过计算交集对应的数据与最高层次对应的数据的比值,如果比值越大则说明该层次的层次属性对应取值范围与最高层次的层次属性对应取值范围所具有的共同取值较多,适用于与最高层次的层次属性同样的方式进行压缩,将相应层次的层次属性确定为全局属性,如果比值越小则说明该层次的层次属性对应取值范围与最高层次的层次属性对应取值范围具有的共同取值较少,不适用于与最高层次对应的层次属性同样的方式进行压缩,将相应层次的层次属性确定为局部属性,对于本发明实施例,通常会设置预设数值,如果比值大于预设数值,则将相应层次的层级属性确定为全局属性,如果比值小于或等于预设数值,则将相应的层次属性确定为局部属性。举例来说,如果地域维度中的最高层次的层次属性为国家,国家对应在全世界共包含有224个,设置国家属性为全局属性,而对于城市属性,对应在全世界包含的数量已经很难确认,进一步查找国家属性与城市属性的交集范围后发现以国家为名称命名城市的数量更少,将城市属性确定为局部属性。
需要说明的是,在获取交集之后,如果计算交集对应的数据与最高层次对应的数据中的比值小于预设数值时,通常会将该层次属性确定为局部属性,而此时可能是由于该层次属性对应的数据的取值范围比较小,仅仅包括几个值,还可能是由于该层次属性对应的数据的取值范围较大,所以使得比值小于预设数值,对于该层次属性对应的数据的取值范围比较小的情况,更适用于与最高层次对应的层次属性同样的方式进行压缩,因此,将相应层级的层次属性修改为全局属性。
205、从合并后的数据表中获取每个维度所包含的多个层次以及每个层次对应的层次属性。
对于本发明实施例,在设计表格的时候将具有关联关系的维度表与事实表合并在一张数据表格中,使得在用户进行数据查询时无需表格之间的数据关联以及数据迁移。由于合并后的数据表可能具有更多的维度、更多的维度层次信息以及层次属性等,进一步从合并后的数据表中获取每个维度所包含的多个层次以及每个层次对应的层次属性。
206、根据所述层次属性,确定每个层次所对应的预设压缩策略。
对于合并后的数据表格中数据量远远大于未合并时数据表格中的数据量,占用了数据仓库中的存储空间,对于本发明实施例,通过对于不同的层次属性,确定该层次属性对应的预设压缩策略,从而对合并后数据表格中的数据进行压缩,从而节省数据仓库中的占用空间。
需要说明的是,上述的预设压缩策略可以是预设编码规则,还可以是无损压缩算法等,本发明实施例对预设压缩策略不进行限定。
207、对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表。
由于全局属性适用于一个维度的所有层次,而局部属性适用于一个维度的一个层次,不同的层次属性与不同的预设压缩策略对应,对于本发明实施例,分别获取维度中的每个层次对应的预设压缩编码规则,全局属性适用于全局编码规则,局部属性适用于局部编码规则,采用预设编码规则分别对每个层次的数据内容和层次属性进行压缩,为了保证压缩后各个维度上数据内容的规范性,进而将压缩后的内容按照层次顺序整合,形成多维度的复合编码,得到压缩后的数据表。
208、将所述压缩后的数据表进行存储。
对于本发明实施例,压缩后的数据不仅减少了存储空间的占用,同时还包含了维度表和事实表中数据的所有层次信息,使得用户在进行数据查询时无需对数据进行关联操作,优化了数据查询性能。
针对本发明实施例提供的另一种数据的存储方法,通过将维度表合并进事实表中,得到合并后的数据表,从而在数据查询时无需将事实表和维度表进行关联,避免了关联操作以及层次聚合过程中的大量数据迁移,痛感对维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表,由于压缩后的数据表在各个维度层次信息上的占用字节变小,节省了数据空间的占用。与现有技术中采用列式存储数据的方法相比,本发明实施例为了避免分布式列式数据存储在进行数据查询过程中的数据迁移,利用数据特征通过对维度层次信息进行压缩,使得压缩后的数据不影响事实表以及维度表的数据信息,消除了数据查询过程中维度表和事实表之间的链接操作,同时减少了数据的迁移,从而提高了数据查询性能。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的数据的存储方法。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的数据的存储方法。
进一步的,作为对上述图1及图2所示方法的实现,本发明另一实施例还提供了一种数据的存储装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够解决关联操作以及层次聚合过程中的数据迁移,提高数据查询性能,具体如图3所示,该装置包括:
第一获取单元31,可以用于获取维度表和事实表;
合并单元32,可以用于将所述维度表合并进所述事实表中,得到合并后的数据表;
提取单元33,可以用于从合并后的数据表中提取每个维度对应的维度层次信息;
压缩单元34,可以用于对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表;
存储单元35,可以用于将所述压缩后的数据表进行存储。
针对本发明的实施例提供了一种数据的存储装置,通过将维度表合并进事实表中,得到合并后的数据表,从而在数据查询时无需将事实表和维度表进行关联,避免了关联操作以及层次聚合过程中的大量数据迁移,痛感对维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表,由于压缩后的数据表在各个维度层次信息上的占用字节变小,节省了数据空间的占用。与现有技术中采用列式存储数据的方法相比,本发明实施例为了避免分布式列式数据存储在进行数据查询过程中的数据迁移,利用数据特征通过对维度层次信息进行压缩,使得压缩后的数据不影响事实表以及维度表的数据信息,消除了数据查询过程中维度表和事实表之间的链接操作,同时减少了数据的迁移,从而提高了数据查询性能。
进一步的,如图4所示,所述装置还包括:
第二确定单元36,可以用于确定每个层次对应的层次属性;
第二获取单元37,可以用于从合并后的数据表中获取每个维度所包含的多个层次以及每个层次对应的层次属性;
第一确定单元38,可以用于根据所述层次属性,确定每个层次所对应的预设压缩策略。
进一步地,所述第二确定单元36包括:
设置模块361,可以用于设置所述维度中最高层次的层次属性为全局属性;
判断模块362,可以用于逐一判断所述维度中最高层次对应的数据取值范围分别与该维度中任一剩余层次对应的数据取值范围是否存在交集;
第一确定模块363,可以用于如果不存在,则将相应层次的层次属性确定为局部属性;
计算模块364,可以用于如果存在,则计算所述交集对应的数据与所述最高层次对应的数据的比值;
第二确定模块365,可以用于如果所述比值大于预设数值,则将相应层次的层次属性确定为全局属性;
第三确定模块366,可以用于如果所述比值小于或等于预设数值,将相应层级的层次属性确定为局部属性。
进一步地,所述压缩单元34包括:
获取模块341,可以用于分别获取所述维度中的每个层次对应的预设编码规则;
压缩模块342,可以用于采用所述预设编码规则分别对每个层次的数据内容和层次属性进行压缩;
整合模块342,可以用于将所述压缩后的内容按照层次顺序进行整合,得到压缩后的数据表。
针对本发明实施例提供的另一种数据的存储装置,通过将维度表合并进事实表中,得到合并后的数据表,从而在数据查询时无需将事实表和维度表进行关联,避免了关联操作以及层次聚合过程中的大量数据迁移,痛感对维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表,由于压缩后的数据表在各个维度层次信息上的占用字节变小,节省了数据空间的占用。与现有技术中采用列式存储数据的方法相比,本发明实施例为了避免分布式列式数据存储在进行数据查询过程中的数据迁移,利用数据特征通过对维度层次信息进行压缩,使得压缩后的数据不影响事实表以及维度表的数据信息,消除了数据查询过程中维度表和事实表之间的链接操作,同时减少了数据的迁移,从而提高了数据查询性能。
所述数据的存储装置包括处理器和存储器,上述第一获取单元31、合并单元32、提取单元33、压缩单元34和存储单元35等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来减少表格合并后数据仓库中的数据量,避免占用过多的存储空间。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据的存储方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据的存储方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
一种数据的存储方法,包括:获取维度表和事实表;将所述维度表合并进所述事实表中,得到合并后的数据表;从合并后的数据表中提取每个维度对应的维度层次信息;对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表;将所述压缩后的数据表进行存储。
进一步地,所述维度层次信息包括层次属性,每个层次属性对应一个预设压缩策略,在所述对所述维度层次信息按照对应的预设压缩策略进行压缩之前,所述方法还包括:从合并后的数据表中获取每个维度所包含的多个层次以及每个层次对应的层次属性;根据所述层次属性,确定每个层次所对应的预设压缩策略。
进一步地,所述层次属性包括全局属性和局部属性,所述全局属性适用于一个维度的所有层次,所述局部属性适用于一个维度的一个层次,在所述从合并后的数据表中获取每个层次对应的层次属性之前,所述方法还包括:确定每个层次对应的层次属性。
进一步地,所述确定每个层次对应的层次属性,包括:设置所述维度中最高层次的层次属性为全局属性;逐一判断所述维度中最高层次对应的数据取值范围分别与该维度中任一剩余层次对应的数据取值范围是否存在交集;如果不存在,则将相应层次的层次属性确定为局部属性;如果存在,则计算所述交集对应的数据与所述最高层次对应的数据的比值;如果所述比值大于预设数值,则将相应层次的层次属性确定为全局属性;否则,将相应层级的层次属性确定为局部属性。
进一步地,所述维度层次信息还包括数据内容,不同的层次属性与不同的预设压缩策略对应,所述预设压缩策略为预设编码规则,所述对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表包括:分别获取所述维度中的每个层次对应的预设编码规则;采用所述预设编码规则分别对每个层次的数据内容和层次属性进行压缩;将所述压缩后的内容按照层次顺序进行整合,得到压缩后的数据表。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取维度表和事实表;将所述维度表合并进所述事实表中,得到合并后的数据表;从合并后的数据表中提取每个维度对应的维度层次信息;对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表;将所述压缩后的数据表进行存储。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备
上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据的存储方法,其特征在于,包括:
获取维度表和事实表;
将所述维度表合并进所述事实表中,得到合并后的数据表;
从合并后的数据表中提取每个维度对应的维度层次信息;
对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表;
将所述压缩后的数据表进行存储。
2.根据权利要求1所述的方法,其特征在于,所述维度层次信息包括层次属性,每个层次属性对应一个预设压缩策略,在所述对所述维度层次信息按照对应的预设压缩策略进行压缩之前,所述方法还包括:
从合并后的数据表中获取每个维度所包含的多个层次以及每个层次对应的层次属性;
根据所述层次属性,确定每个层次所对应的预设压缩策略。
3.根据权利要求2所述的方法,其特征在于,所述层次属性包括全局属性和局部属性,所述全局属性适用于一个维度的所有层次,所述局部属性适用于一个维度的一个层次,在所述从合并后的数据表中获取每个层次对应的层次属性之前,所述方法还包括:
确定每个层次对应的层次属性。
4.根据权利要求3所述的方法,其特征在于,所述确定每个层次对应的层次属性,包括:
设置所述维度中最高层次的层次属性为全局属性;
逐一判断所述维度中最高层次对应的数据取值范围分别与该维度中任一剩余层次对应的数据取值范围是否存在交集;
如果不存在,则将相应层次的层次属性确定为局部属性;
如果存在,则计算所述交集对应的数据与所述最高层次对应的数据的比值;
如果所述比值大于预设数值,则将相应层次的层次属性确定为全局属性;
否则,将相应层级的层次属性确定为局部属性。
5.根据权利要求4所述的方法,其特征在于,所述维度层次信息还包括数据内容,不同的层次属性与不同的预设压缩策略对应,所述预设压缩策略为预设编码规则,所述对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表包括:
分别获取所述维度中的每个层次对应的预设编码规则;
采用所述预设编码规则分别对每个层次的数据内容和层次属性进行压缩;
将所述压缩后的内容按照层次顺序进行整合,得到压缩后的数据表。
6.一种数据的存储装置,其特征在于,包括:
第一获取单元,用于获取维度表和事实表;
合并单元,用于将所述维度表合并进所述事实表中,得到合并后的数据表;
提取单元,用于从合并后的数据表中提取每个维度对应的维度层次信息;
压缩单元,用于对所述维度层次信息按照对应的预设压缩策略进行压缩,得到压缩后的数据表;
存储单元,用于将所述压缩后的数据表进行存储。
7.根据权利要求6所述的装置,其特征在于,所述维度层次信息包括层次属性,每个层次属性对应一个预设压缩策略,所述装置还包括:
第二获取单元,用于从合并后的数据表中获取每个维度所包含的多个层次以及每个层次对应的层次属性;
第一确定单元,用于根据所述层次属性,确定每个层次所对应的预设压缩策略。
8.根据权利要求7所述的装置,其特征在于,所述层次属性包括全局属性和局部属性,所述全局属性适用于一个维度的所有层次,所述局部属性适用于一个维度的一个层次,所述装置还包括:
第二确定单元,用于确定每个层次对应的层次属性。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求5中任意一项所述的数据的存储方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至权利要求5中任意一项所述的数据的存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710892087.1A CN110019195A (zh) | 2017-09-27 | 2017-09-27 | 一种数据的存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710892087.1A CN110019195A (zh) | 2017-09-27 | 2017-09-27 | 一种数据的存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110019195A true CN110019195A (zh) | 2019-07-16 |
Family
ID=67186327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710892087.1A Pending CN110019195A (zh) | 2017-09-27 | 2017-09-27 | 一种数据的存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019195A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113486006A (zh) * | 2021-06-18 | 2021-10-08 | 深圳市迈安信科技有限公司 | 数据模型的构建方法及数据查询方法和计算机存储介质 |
CN113704259A (zh) * | 2021-08-24 | 2021-11-26 | 北京仁科互动网络技术有限公司 | 数据汇总方法、装置、电子设备、存储介质及程序产品 |
CN113934782A (zh) * | 2021-09-22 | 2022-01-14 | 易联众智鼎(厦门)科技有限公司 | 一种基于dag模型的数据etl系统及使用方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090271345A1 (en) * | 2008-04-25 | 2009-10-29 | Lawrence Scott Rich | Method and Apparatus for Declarative Data Warehouse Definition for Object-Relational Mapped Objects |
CN102156725A (zh) * | 2011-04-01 | 2011-08-17 | 中国测绘科学研究院 | 一种提高数据仓库查询性能的方法 |
US20120054249A1 (en) * | 2010-08-25 | 2012-03-01 | International Business Machines Corporation | Data warehouse data model adapters |
CN103853820A (zh) * | 2014-02-20 | 2014-06-11 | 北京用友政务软件有限公司 | 一种数据处理方法及系统 |
CN104391948A (zh) * | 2014-12-01 | 2015-03-04 | 广东电网有限责任公司清远供电局 | 数据仓库的数据标准化构建方法及系统 |
CN104965886A (zh) * | 2015-06-16 | 2015-10-07 | 广州市勤思网络科技有限公司 | 数据维度处理方法 |
-
2017
- 2017-09-27 CN CN201710892087.1A patent/CN110019195A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090271345A1 (en) * | 2008-04-25 | 2009-10-29 | Lawrence Scott Rich | Method and Apparatus for Declarative Data Warehouse Definition for Object-Relational Mapped Objects |
US20120054249A1 (en) * | 2010-08-25 | 2012-03-01 | International Business Machines Corporation | Data warehouse data model adapters |
CN102156725A (zh) * | 2011-04-01 | 2011-08-17 | 中国测绘科学研究院 | 一种提高数据仓库查询性能的方法 |
CN103853820A (zh) * | 2014-02-20 | 2014-06-11 | 北京用友政务软件有限公司 | 一种数据处理方法及系统 |
CN104391948A (zh) * | 2014-12-01 | 2015-03-04 | 广东电网有限责任公司清远供电局 | 数据仓库的数据标准化构建方法及系统 |
CN104965886A (zh) * | 2015-06-16 | 2015-10-07 | 广州市勤思网络科技有限公司 | 数据维度处理方法 |
Non-Patent Citations (2)
Title |
---|
尤毅 方云安: "多维数据仓库设计", 《系统工程理论方法应用》 * |
徐晓锦 孙蕾: "基于列存储机制下多维数据仓库模型的优化与研究", 《计算机应用与软件》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113486006A (zh) * | 2021-06-18 | 2021-10-08 | 深圳市迈安信科技有限公司 | 数据模型的构建方法及数据查询方法和计算机存储介质 |
CN113704259A (zh) * | 2021-08-24 | 2021-11-26 | 北京仁科互动网络技术有限公司 | 数据汇总方法、装置、电子设备、存储介质及程序产品 |
CN113934782A (zh) * | 2021-09-22 | 2022-01-14 | 易联众智鼎(厦门)科技有限公司 | 一种基于dag模型的数据etl系统及使用方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109858970B (zh) | 一种用户行为预测方法、装置及存储介质 | |
US8886654B2 (en) | Infrastructure and architecture for development and execution of predictive models | |
US10115058B2 (en) | Predictive modeling | |
Gupta | An introduction to data warehousing | |
US10726005B2 (en) | Virtual split dictionary for search optimization | |
CN107729330B (zh) | 获取数据集的方法和装置 | |
CN110019195A (zh) | 一种数据的存储方法及装置 | |
Hancock et al. | Practical Business Intelligence with SQL Server 2005 | |
US20160162821A1 (en) | Comparative peer analysis for business intelligence | |
Uvidia Fassler et al. | Moving towards a methodology employing knowledge discovery in databases to assist in decision making regarding academic placement and student admissions for universities | |
CN110858214B (zh) | 推荐模型训练、及进一步审计程序推荐方法、装置及设备 | |
CN110941952A (zh) | 一种完善审计分析模型的方法及装置 | |
US20110231360A1 (en) | Persistent flow method to define transformation of metrics packages into a data store suitable for analysis by visualization | |
CN114265842A (zh) | 基于erp系统的审计数据处理方法、装置、设备和存储介质 | |
CN109525863A (zh) | 收视数据展示方法和装置 | |
Bachtiar et al. | Considering Factors for Cloud Accounting Adoption in SME: A Systematic Literature Review | |
CN110019771B (zh) | 文本处理的方法及装置 | |
CN114880394B (zh) | 一种sql脚本的共享方法、设备及介质 | |
Plattner et al. | The Impact of HANA on the Design of Enterprise Applications | |
Stackowiak et al. | Big data solutions and the internet of things | |
Schön | IT Support | |
Lu | Digital Knowledge Transfer for Banks: From a Lean Data Management Perspective | |
CN112580840A (zh) | 一种数据分析方法及装置 | |
CN117573757A (zh) | 一种业务数据的处理方法、系统、电子设备及存储介质 | |
CN115358205A (zh) | 一种指标卡片的生成方法及装置 |
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 | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190716 |
|
RJ01 | Rejection of invention patent application after publication |