CN106484875B - 基于molap的数据处理方法及装置 - Google Patents

基于molap的数据处理方法及装置 Download PDF

Info

Publication number
CN106484875B
CN106484875B CN201610893549.7A CN201610893549A CN106484875B CN 106484875 B CN106484875 B CN 106484875B CN 201610893549 A CN201610893549 A CN 201610893549A CN 106484875 B CN106484875 B CN 106484875B
Authority
CN
China
Prior art keywords
data
calculation
dimension
open source
source database
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.)
Active
Application number
CN201610893549.7A
Other languages
English (en)
Other versions
CN106484875A (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.)
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Original Assignee
Guangzhou Shiyuan Electronics Thecnology 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 Guangzhou Shiyuan Electronics Thecnology Co Ltd filed Critical Guangzhou Shiyuan Electronics Thecnology Co Ltd
Priority to CN201610893549.7A priority Critical patent/CN106484875B/zh
Publication of CN106484875A publication Critical patent/CN106484875A/zh
Application granted granted Critical
Publication of CN106484875B publication Critical patent/CN106484875B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-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)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于MOLAP的数据处理方法及装置。该数据处理方法包括:根据事实表和维度表创建数据立方体;基于所述数据立方体中记录的数据,对维度的全部可能组合进行数据预计算;将预计算结果保存至开源数据库中,以便在查询时根据预计算结果确定查询结果。采用上述方法可以优化现有数据查询方案,使得非技术人员也可以实现基于海量数据的查询。

Description

基于MOLAP的数据处理方法及装置
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及基于MOLAP的数据处理方法及装置。
背景技术
联机分析处理(Online Analytical Processing,OLAP)***是数据仓库***最主要的应用,专门用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持。OLAP可以根据分析人员的要求进行大数据量的复杂查询处理,并且以一种直观的形式将查询结果提供给决策人员,以便他们准确掌握企业(公司)的经营状况,了解对象的需求,制定正确的方案。
OLAP***按照其存储器的数据存储格式可以分为关系OLAP(RelationalOLAP,ROLAP)、多维OLAP(MultidimensionalOLAP,MOLAP)和混合型OLAP(HybridOLAP,HOLAP)三种类型。其中,MOLAP将OLAP分析所用到的多维数据物理上存储为多维数组的形式,形成“立方体”的结构。
传统的MOLAP引擎受到软硬件资源的限制,仅能处理千兆或<10太字节级别的数据,并且,在计算多维立方体的数据时,对服务器配置要求较高。同时,基于MOLAP针对海量数据实时查询时,常采用基于分布式***基础架构的结构化查询语言(SQL on Hadoop)方案,一方面,其时延高达数秒、数十秒乃至数十分钟,另一方面,针对一些列式数据库,通常只能根据行健进行快速查询,而列级别的查询则仅能在特定查询场景中使用。此外,在查询时,需要涉及SQL语句的编写,使得非技术人员无法进行查询。
发明内容
有鉴于此,本发明实施例提供一种基于MOLAP的数据处理方法及装置,以优化现有数据查询方案,使得非技术人员也可以实现基于海量数据的查询。
第一方面,本发明实施例提供了一种基于MOLAP的数据处理方法,包括:
根据事实表和维度表创建数据立方体;
基于所述数据立方体中记录的数据,对维度的全部可能组合进行数据预计算;
将预计算结果保存至开源数据库中,以便在查询时根据预计算结果确定查询结果。
第二方面,本发明实施例还提供了一种基于MOLAP的数据处理装置,包括:
立方体创建模块,用于根据事实表和维度表创建数据立方体;
预计算模块,用于基于所述数据立方体中记录的数据,对维度的全部可能组合进行数据预计算;
保存模块,用于将预计算结果保存至开源数据库中,以便在查询时根据预计算结果确定查询结果。
本发明实施例提供的基于MOLAP的数据处理方法及装置,根据事实表和维度表创建数据立方体,并根据数据立方体中记录的数据对全部可能的维度组合进行数据预计算,并将预计算结果保存在开源数据库中,实现了在用户进行数据查询时,仅需要在客户端的页面中拖拽维度和度量,服务器便可以根据相应的预计算结果确定查询结果,并不需要用户编写SQL语句。同时,充分利用大数据组件特性和MOLAP特性,简化了数据查询过程,提高了查询响应速度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一提供的一种基于MOLAP的数据处理方法的流程图;
图2为本发明实施例二提供的一种基于MOLAP的数据处理方法的流程图;
图3为一个数据立方体的维度的全部可能组合在数据预计算时层级关系示意图;
图4为本发明实施例二提供的一种开源数据库表的创建方法的流程图;
图5为本发明实施例二提供的一种数据查询方法的流程图;
图6为客户端查询时用户界面示意图;
图7为本发明实施例三提供的一种基于MOLAP的数据处理装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
图1为本发明实施例一提供的一种基于MOLAP的数据处理方法的流程图。本实施例提供的方法可以由基于MOLAP的数据处理装置来执行,该装置可以通过软件和/或硬件的方式实现,并集成在服务器中。参考图1,本实施例提供的方法可以包括:
S110、根据事实表和维度表创建数据立方体。
其中,事实表和维度表存储在大数据平台的数据仓库中。维度表存储该维度下所有属性的值以及每一条记录的ID。比如销售地域维度包括:地域ID、该地域所属省份、所属市、所属县等信息,以广州天河区为该销售地域维度下的一个值为例,则维度表中关于天河区的记录为:01(即值的ID)、广东省、广州市、天河区。事实表中存储着事实数据,包括各维度的值的ID、销售数量、销售金额等。比如销售事实表的字段包括每一条销售记录的:销售地域ID(对应销售地域维度表的ID)、产品ID(对应产品维度表的ID)、销售时间ID(对应时间维度表的ID)、销售数量、销售金额等,根据某一销售数量对应的各ID,便可以知道该销售数量是哪个地域何种产品在哪段时间内的销售数量。
可选的,预先创建事实表和维度表,其中,具体的创建规则,例如,挑选哪些维度创建维度表,以及创建几个维度表,可以根据实际情况进行设定。通常情况下,维度表的个数不作限定,事实表的个数为一。
典型的,在创建事实表和维度表后,从当前服务器可以访问的外部数据库中获取数据,并全部导入至对应的事实表和维度表中。
具体的,数据立方体也可以称为多维立方体,其可以包含设定的至少一个维度。比如,一个数据立方体可以包括:地域维度(值包括:北京、天津、上海和广东)、时间维度(值包括:一季度、二季度、三季度和四季度)、商品维度(值包括:运动服、水壶、运动鞋、遮阳伞以及遮阳帽)和用户年龄维度(值包括:0-18岁、19-40岁、41-60岁以及60岁以上),其中各维度对应的事实数据(包括销售金额和销售数量)存储在关联的事实表中,即该数据立方体包括四张维度表和一张事实表,且通过维度表和事实表中记录的维度表中值的ID进行关联。根据确定的数据立方体便可以确定事实数据。如,根据上述数据立方体便可以确定北京地区一季度运动服的销售金额,再如,还可以确定天津地区水壶的销售金额,又如,还可以确定上海地区四季度19-40岁消费者运动鞋的销售数量。
可选的,根据事实表和关联的维度表可以创建至少一个数据立方体,其中,具体的创建规则可以根据实际情况进行设定。
S120、基于数据立方体中记录的数据,对维度的全部可能组合进行数据预计算。
其中,数据立方体中可以包括不同的维度,对不同的维度之间可以任意的组合。以步骤S110中举例的数据立方体来说,共包含四个维度,则维度的全部可能组合共有16个,具体的计算方式可以是为例,对应的维度组合包括(地域维度、时间维度和商品维度)、(地域维度、商品维度和用户年龄维度)、(地域维度、时间维度和用户年龄维度)以及(时间维度、商品维度和用户年龄维度)。当然,当数据立方体仅包含一个维度时,全部可能组合仅有包含该维度的组合和空集。
进一步的,确定数据立方体的全部可能组合后,对各组合对应的事实数据进行数据预计算,以得到各组合的预计算结果。可选的,根据确定的度量进行数据预计算。在本实施例中,度量是对数据预计算如何计算或计算结果设定的要求,优选包括聚合类型(聚合类型包括聚合最大值和/或聚合最小值)。假设维度组合包括地域维度和时间维度,聚合类型为聚合最大值,则对维度组合数据预计算时便是分别确定(地域维度,时间维度)、(地域维度)、(时间维度)、以及对应的事实数据的聚合最大值。以(地域维度)为例,数据预计算便是取得地域维度中的北京、天津、上海和广东对应的事实表中事实数据的聚合最大值。
据此,可以对数据立方体对应的全部可能的维度组合进行数据预计算。
S130、将预计算结果保存至开源数据库中,以便在查询时根据预计算结果确定查询结果。
在本实施例中,开源数据库优选为Hbase。Hbase为分布式存储***,利用Hbase可以在普通的服务器当中搭建大规模非结构化存储集群。
进一步的,当用户进行查询时,仅需要在客户端选择需要的维度组合和度量,服务器便可以在Hbase中查找到对应的预计算结果,并将该预计算结果反馈给客户端。
本实施例提供的技术方案,通过事实表和关联的维度表创建数据立方体,对数据立方体中维度的全部可能组合进行数据预计算,并将预计算结果保存在开源数据库中,可以实现基于MOLAP的大数据计算和存储。同时,在用户进行查询时,无需编写SQL语句,仅需要在客户端的页面中拖拽需要的维度和度量,服务器便可以根据相应的预计算结果确定查询结果,简化了数据查询过程,提高了查询响应速度。
实施例二
图2为本发明实施例二提供的一种基于MOLAP的数据处理方法的流程图。本实施例提供的数据处理方法是在上述实施例提供的数据处理方法的基础上,进行优化。参考图2,本实施例提供的数据处理方法,具体包括:
S210、根据预设的数据分析模型中对事实表和维度表的表项需求,创建对应的事实表和维度表。
具体的,预设的数据分析模型中包括对事实表和维度表的表项需求,其中,表项需求可以包括维度表的维度值和维度层级,以及事实表的事实数据属性(如销售金额等)。另外,数据分析模型中还可以包括数据预计算时的度量(如聚合最大值等)。数据分析模型中的具体内容可以根据实际情况设定。一般而言,可以将数据分析模型看做是本实施例中数据处理方法的计划,即本实施例中数据处理方法根据数据分析模型执行。
示例性的,根据表项需求,创建事实表和与事实表关联的维度表。
S220、按照事实表和维度表的表项需求,将外部数据库中的数据导入至事实表和维度表中。
具体的,根据表项需求访问外部数据库,并从外部数据库中找到对应的数据导入事实表和维度表中。其中,外部数据库可以包括相关各业务管理***的数据库和企业外部数据库等。
进一步的,向事实表和维度表导入数据时,数据仓库可以判断用户是否设定特定的数据格式,若设定特定的数据格式,则将数据的原有格式转换成特定的数据格式,并导入事实表和维度表中,若没有设定特定的数据格式,则按照数据的原有格式,将数据导入事实表和维度表中。
S230、根据数据分析模型中的元数据,利用事实表和维度表创建数据立方体。
示例性的,数据分析模型中包括元数据,其中,元数据用于指示数据立方体的属性参数和创建规则。可选的,元数据可以包括下述至少一项:数据立方体的创建时间、数据立方体的创建位置、数据立方体的名称、数据立方体的事实、数据立方体的维度及其顺序、数据立方体的度量、聚合类型、与编程模型对应的配置信息、与开源数据库对应的配置信息、预计算时间以及预计算结果的存储信息等。其中,与编程模型对应的配置信息为在启动编程模型时,告知编程模型数据立方体需要占用的内存大小的信息。与开源数据库对应的配置信息是数据立方体预计算结果与开源数据库表的对应关系的信息。预计算结果的存储信息包括预计算结果保存在开源数据库中行主键涉及的多个维度编码的顺序(如有维度A和维度B,其中,维度A中包括三个值,分别为1、2和3,在将对应的预计算结果存储至开源数据库时,对1、2和3进行编码的顺序,以及对维度A和维度B编码的顺序)。可选的,与开源数据库对应的配置信息、预计算时间以及预计算结果的存储信息中的数据可以在完成存储预计算结果后进行更新。
根据上述元数据便可以确定数据立方体在创建时的基本信息,如创建时间、创建位置、名称、事实、维度及其顺序以及度量等。可选的,上述元数据的基本信息存储在Hbase中。即,当需要数据立方体的基本信息时,可以访问Hbase查询。
S240、根据数据分析模型中的元数据,启动预计算编程模型任务,并读取与数据立方体对应的全部维度表和事实表的数据。
具体的,根据元数据创建并启动对应预计算编程模型的任务。在本实施例中,预计算编程模型为MapReduce,其可以实现大规模数据集的并行运算。
可选的,通过预计算编程模型读取数据平台中与数据立方体对应的全部维度表和事实表的数据。
S250、将全部维度表的维度进行排列组合,得到包括空集在内的全部可能组合。
S260、按照设定的聚合规则,对包含全部维度的组合进行聚合运算,得到聚合值。
例如,若数据立方体包括4个维度,分别用A、B、C和D表示,则包含全部维度的组合为(A、B、C、D)。
可选的,聚合规则可以包括聚合最大值和/或聚合最小值。以聚合最大值为例,则聚合运算为利用聚合函数返回(A、B、C、D)对应事实数据的最大值MAX(M),并将MAX(M)作为聚合值。
可选的,可以对各维度对应的值进行字典编码,并计算编码后的包含全部维度的组合的聚合值。
S270、将包含全部维度的组合作为预计算编程模型的关键值输入,将聚合值作为预计算编程模型的关键字输入。
具体的,预计算编程模型在计算时采用逐级计算的方式。其中,在计算时,将包含全部维度的组合作为预计算编程模型的关键值输入,即key输入。将聚合值作为预计算编程模型的关键字输入,即value输入。
S280、利用预计算编程模型得到新的维度组合以及与新的维度组合对应的聚合值。
由于采用逐级计算的方式,则计算得到的新的维度组合为包含全部维度的组合的上级维度组合,聚合值为新的维度组合的聚合值。
例如,图3为一个数据立方体的维度的全部可能组合在数据预计算时层级关系示意图。参考图3,可以确定当前数据立方体包含四个维度值,分别为A、B、C以及D。其中,最底级为最先计算聚合值的维度组合,即包含全部维度的组合,按照图3中的层级关系,逐级向上计算,直到计算到空集为止。
S290、判断是否完成对全部可能组合的数据预计算。若是,则执行S2120,否则,执行S2100。
其中,可以通过判断是否完成对空集的数据预计算,确认是否完成对全部可能维度组合的数据预计算。
S2100、将新的维度组合作为预计算编程模型的关键值输入,新的维度组合对应的聚合值作为预计算编程模型的关键字输入。
示例性的,若没有完成对全部可能组合的数据预计算,则可以将预计算编程模型最近一次计算得到的新的维度组合作为key输入,对应的聚合值作为value输入,以继续进行数据预计算。
S2110、利用预计算编程模型得到新的维度组合以及与新的维度组合对应的聚合值。返回执行S290。
进一步的,在得到预计算结果后,可以将预计算时间保存在元数据中。
下面示例性的说明某一数据立方体的数据预计算过程。
设定该数据立方体包含4个维度,分别为A、B、C以及D,其中维度A的值为1,维度B的值为2,维度C的值为(3、4),维度D的值为(4、6、3、8)。即该数据立方体共包含4个维度表和1个事实表。
进一步的,根据数据分析模型中元数据,启动预计算编程任务模型,并确定该数据立方体的维度的全部可能组合共有16个。设定的聚合规则为聚合最大值和聚合最小值。对各维度对应的值进行字典编码后,对维度组合(A、B、C、D)进行数据预计算,得到了聚合最大值MAX(M)和聚合最小值MIN(N),即完成了第一级计算。
表1
通过表1可以确定(A、B、C、D)维度组合的聚合计算结果。其中,将(A、B、C、D)作为MapReduce的key输入,将MAX(M)和MIN(N)作为MapReduce的value输入,则可以得到新的维度组合,包括(A、B、C)、(A、B、D)、(A、C、D)和(B、C、D),以及各新的维度组合对应的聚合值,即完成了第二级计算。
表2仅示例性的列出维度组合(A、B、C)的数据预计算结果。
表2
A B C MAX(M) MIN(N)
1 2 3 300 50
1 2 4 500 20
进一步的,将MapReduce在第二级计算时得到的新的维度组合作为key输入,即将(A、B、C)、(A、B、D)、(A、C、D)和(B、C、D)作为key输入,将各维度组合对应的MAX(M)和MIN(N)作为value输入,便可以得到新的维度组合,以及各新的维度组合对应的聚合值,即完成了第三级计算。其中,得到的新的维度组合包括(A、B)、(A、C)、(A、D)、(B、C)、(B、D)和(C、D)。
表3仅示例性的列出维度组合(A、B)的数据预计算结果。
表3
A B MAX(M) MIN(N)
1 2 500 20
进一步的,将MapReduce在第三级计算时得到的新的维度组合(A、B)、(A、C)、(A、D)、(B、C)、(B、D)和(C、D)作为key输入,将各维度组合对应的MAX(M)和MIN(N)作为value输入,便可以得到新的维度组合以及各新的维度组合对应的聚合值,即完成了第四级计算。其中,该级计算得到的新的维度组合包括:(A)、(B)、(C)和(D)。
表4仅示例性的列出维度组合(A)的数据预计算结果。
表4
A MAX(M) MIN(N)
1 500 20
进一步的,将MapReduce在第四级计算中得到的新的维度组合(A)、(B)、(C)和(D)作为key输入,将各维度组合对应的MAX(M)和MIN(N)作为value输入,便可以得到新的维度组合以及各新的维度组合对应的聚合值,即完成了最后一级的计算。其中,该级计算得到的新的维度组合为
表5列出维度组合的数据预计算结果。在得到空集的数据预计算结果后,确认完成对该数据立方体的预计算。
表5
S2120、创建用于存储预计算结果的开源数据库表。
由于在开源数据库中存入预计算结果时,是将预计算结果存入逻辑上的开源数据库表中。因此,预先创建用于存储预计算结果的开源数据库表。其中,不同数据立方体的预计算结果对应不同的开源数据库表。
其中,参考图4,该步骤可以包括:
S2121、确定开源数据库中为开源数据库表设定的存储区的容量。
其中,存储区为逻辑上的存储区。在开源数据库中查询数据是通过查询开源数据库表实现的。若存入开源数据库表中的数据量不断增大,则查询数据的速度就会变慢。此时,就可以对开源数据库表进行分区,即分成多个逻辑上的存储区。开源数据表分区后,表现形式仍然是一张完整的表,只是在查询数据时,查询开源数据库表中的存储区。
典型的,开源数据库会预先设定各开源数据库表在分区时各存储区的容量。通常,该容量设定后尽可能的保持不变。如,设定存储区的容量为256M,即各存储区最多可以存储256M的数据。
S2122、根据预计算结果的大小,确定预计算结果存入开源数据库表时所需要的存储区的数量值。
例如,预计算结果的大小为3G,存储区的容量为256M,则用3G除以256M得到12(3×1024÷256=12),即确定需要存储区的数量值为12个。
可选的,在计算预计算结果需要的存储区数量值时,若不能得到整数数量值,则对得到的结果进行上取整,如,预计算结果的大小为3.1G,每个存储区的容量为256M,则用3.1G除以256M得到12.4,对12.4上取整得到13。即该预计算结果对应的存储区的数量值为13。
S2123、将数量值发送至开源数据库中,以使开源数据库根据数量值创建用于存储预计算结果的开源数据库表。
进一步的,在确定预计算结果需要的存储区的数量值后,将该数量值发送至开源数据库中,即通知开源数据库存储当前预计算结果需要的开源数据库表的大小。
具体的,开源数据库收到数量值后,创建对应的开源数据库表,该开源数据库表包含该数量值的存储区。
例如,确定当前预计算结果需要的存储区为12个,则开源数据库创建开源数据库表,其中,该开源数据库表实际上包括12个存储区。
S2130、启动存储编程模型任务,将预计算结果作为存储编程模型任务的输入。
具体的,根据元数据启动存储编程模型任务。在本实施例中,存储编程模型为MapReduce。其中,可以将预计算结果作为MapReduce的输入。
S2140、利用存储编程模型生成对应的二进制格式文件。
进一步的,存储编程模型输出的结果为开源数据库默认的二进制格式文件,即HFile格式的文件。这样做的好处是,可以避免预计算结果逐条***开源数据库中带来的性能影响。
S2150、利用开源数据库的BulkLoad,将二进制格式文件导入至所述开源数据库表中,以实现在开源数据库中存储所述预计算结果。
具体的,将二进制格式文件导入至开源数据库表时,利用开源数据库的BulkLoad,可以实现将二进制格式文件同时导入至开源数据库表对应的存储区中。
例如,二进制格式文件包括1G的预计算结果,且对应的开源数据库表包含4个存储区,则利用BulkLoad时,可以实现前256M预计算结果导入第1存储区、接下来256M预计算结果导入第2存储区、再接下来256M预计算结果导入第3存储区以及最后256M的预计算结果导入第4存储区的导入过程同时进行。
本实施例中,对开源数据库表进行分区存储的好处是:一方面,在将预计算结果导入时,能够有多个节点同时进行写的操作,通过负载均衡的原理加快数据写入的速度;另一方面,在查询数据时,能够将查询能力分散到各个目标节点(即存储区),有效地避免数据倾斜,加快数据查询的速度。
S2160、保存预计算结果与所述开源数据库表的对应关系至所述数据分析模型的元数据中。
具体的,在保存预计算结果时,将预计算结果与开源数据库表的对应关系保存在元数据的与开源数据库对应的配置信息中。在查询数据时,便可以根据对应关系确定预计算结果对应的开源数据库表。
可选的,上述方法还可以包括:间隔设定时间,管理数据立方体以及数据分析模型中的元数据。
其中,可以间隔设定时间,管理平台中的全部数据立方体以及对应的元数据。对数据立方体的管理可以包括:修改、查询、计算和删除等。
例如,间隔设定时间,将外部数据库中的新记录数据导入数据立方体对应的事实表和维度表中,并结合新导入的数据修改数据立方体、对应的预计算结果以及预计算结果的存储位置。并且,将修改后的数据立方体相关信息保存至对应的元数据中,以完成对数据立方体的修改和计算。
可选的,间隔的时间可以根据时间情况设定。如在业务淡季时,可以每隔两个星期完成对数据立方体以及元数据的管理。在业务旺季时,每隔一个星期完成对数据立方体以及元数据的管理。
上述步骤为查询准备过程,下面为具体的查询过程。参考图5,本实施例提供的数据查询方法具体包括:
S510、在获取到客户端发送的查询请求时,解析查询请求并转换成开源数据库查询语句。
图6为客户端查询时用户界面示意图。用户可以通过用户界面选择需要查询的维度和度量。如图6所示,用户将维度A编码1、维度C1层级1、维度D1层级1和度量MAX1(聚合最大值)拖拽至列主键61中作为查询的列,当然,用户可以根据实际需求任意拖拽用户资产分析模型1的维度和指标。具体的,客户端根据用户的选择生成查询请求并发送至服务器。可选的,用户还可以通过图6中的过滤栏62输入过滤条件,以对查询请求进行过滤。
进一步的,服务器在获取到查询请求时,将该查询请求转换成开源数据库可识别的查询语句。
S520、将开源数据库查询语句发送至开源数据库中,以根据开源数据库查询语句调取预计算结果,并形成查询结果。
具体的,开源数据库接收到开源数据库查询语句时,根据预计算结果与开源数据库表的对应关系确定该开源数据库查询语句对应的开源数据库表,在开源数据库表中查询与该开源数据库查询语句对应的预计算结果,并形成查询结果。
进一步的,在查询开源数据库表时,可以仅对各存储区中存储的头数据和尾数据进行查询,若确认开源数据库查询语句对应的结果在某个存储区存储的数据范围内,则在该存储区进行数据查询,以确定开源数据库查询语句对应的预计算结果。
S530、将查询结果封装并返回至客户端,以使客户端响应查询结果。
具体的,客户端在接收到查询结果时,解析该查询结果,并在图6的用户图形界面的显示区域63显示该查询结果,其中,默认的显示形式表格形式。可选的,用户还可以通过图6中显示类型模块64确定查询结果的显示类型,通过条数模块65输入显示条数。
本实施例提供的技术方案,通过MOLAP与大数据的结合,实现了海量数据的查询,且提高了查询速度。同时,在查询时,无需编写SQL语句,使得非技术人员用户也可以执行查询工作,提升了用户的使用体验。
实施例三
图7为本发明实施例三提供的一种基于MOLAP的数据处理装置的结构示意图。参考图7,本实施例提供的数据处理装置具体包括:立方体创建模块701、预计算模块702和保存模块703。
其中,立方体创建模块701,用于根据事实表和维度表创建数据立方体;预计算模块702,用于基于数据立方体中记录的数据,对维度的全部可能组合进行数据预计算;保存模块703,用于将预计算结果保存至开源数据库中,以便在查询时根据预计算结果确定查询结果。
本实施例提供的技术方案,通过事实表和关联的维度表创建数据立方体,对数据立方体中维度的全部可能组合进行数据预计算,并将预计算结果保存在开源数据库中,可以实现基于MOLAP的大数据计算和存储。同时,在用户进行查询时,无需编写SQL语句,仅需要在客户端的页面中拖拽维度和度量,服务器便可以根据相应的预计算结果确定查询结果,简化了数据查询过程,提高了查询响应速度。
在上述实施例的基础上,立方体创建模块701包括:数据表创建单元,用于根据预设的数据分析模型中对事实表和维度表的表项需求,创建对应的事实表和维度表;数据导入单元,用于按照事实表和维度表的表项需求,将外部数据库中的数据导入至事实表和维度表中;立方体创建单元,用于根据数据分析模型中的元数据,利用事实表和维度表创建数据立方体,其中,元数据用于指示数据立方体的属性参数和创建规则。
在上述实施例的基础上,预计算模块702包括:预计算任务启动单元,用于根据数据分析模型中的元数据,启动预计算编程模型任务,并读取与数据立方体对应的全部维度表和事实表的数据;组合单元,用于将全部维度表的维度进行排列组合,得到包括空集在内的全部可能组合;聚合单元,用于按照设定的聚合规则,对包含全部维度的组合进行聚合运算,得到聚合值;输入值确定单元,用于将包含全部维度的组合作为预计算编程模型的关键值输入,将聚合值作为预计算编程模型的关键字输入;结果生成单元,用于利用预计算编程模型得到新的维度组合以及与新的维度组合对应的聚合值;循环单元,用于依次将新的维度组合作为预计算编程模型的关键值输入,新的维度组合对应的聚合值作为预计算编程模型的关键字输入,并利用预计算编程模型得到新的维度组合以及与新的维度组合对应的聚合值,直到得到全部可能组合以及全部可能组合的聚合值为止。
在上述实施例的基础上,保存模块703包括:建表单元,用于创建用于存储预计算结果的开源数据库表;存储任务建立单元,用于启动存储编程模型任务,将预计算结果作为存储编程模型任务的输入;文件生成单元,用于利用存储编程模型生成对应的二进制格式文件;结果导入单元,用于利用开源数据库的BulkLoad,将二进制格式文件导入至开源数据库表中,以实现在开源数据库中存储预计算结果;关系存储单元,用于保存预计算结果与开源数据库表的对应关系至数据分析模型的元数据中。
在上述实施例的基础上,建表单元包括:容量确定子单元,用于确定开源数据库中为开源数据库表设定的存储区的容量;数量值确定子单元,用于根据预计算结果的大小,确定预计算结果存入开源数据库表时所需要的存储区的数量值;创建子单元,用于将数量值发送至开源数据库中,以使开源数据库根据数量值创建用于存储预计算结果的开源数据库表。
在上述实施例的基础上,还包括:管理模块,用于间隔设定时间,管理数据立方体以及数据分析模型中元数据。
在上述实施例的基础上,还包括:语句获取模块,用于在获取到客户端发送的查询请求时,解析查询请求并转换成开源数据库查询语句;结果查询模块,用于将开源数据库查询语句发送至开源数据库中,以根据开源数据库查询语句调取预计算结果,并形成查询结果;结果返回模块,用于将查询结果封装并返回至客户端,以使客户端响应查询结果。
上述实施例的基础上,元数据包括下述至少一项:数据立方体的创建时间、数据立方体的创建位置、数据立方体的名称、数据立方体的事实、数据立方体的维度及其顺序、数据立方体的度量、聚合类型、与编程模型对应的配置信息、与开源数据库对应的配置信息、预计算时间以及计算结果的存储信息。
本发明实施例提供的基于MOLAP的数据处理装置适用于上述任意实施例提供的基于MOLAP的数据处理方法,具备相应的功能和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种基于MOLAP的数据处理方法,其特征在于,包括:
根据事实表和维度表创建数据立方体;
基于所述数据立方体中记录的数据,对维度的全部可能组合进行数据预计算;
将预计算结果保存至开源数据库中,以便在查询时根据预计算结果确定查询结果;
基于所述数据立方体中记录的数据,对维度的全部可能组合进行数据预计算,包括:
根据数据分析模型中的元数据,启动预计算编程模型任务,并读取与所述数据立方体对应的全部维度表和事实表的数据;
将所述全部维度表的维度进行排列组合,得到包括空集在内的全部可能组合;
按照设定的聚合规则,对包含全部维度的组合进行聚合运算,得到聚合值;
将包含全部维度的组合作为预计算编程模型的关键值输入,将所述聚合值作为预计算编程模型的关键字输入,所述预计算编程模型在计算时采用逐级计算的方式;
利用所述预计算编程模型得到新的维度组合以及与新的维度组合对应的聚合值;
依次将新的维度组合作为预计算编程模型的关键值输入,新的维度组合对应的聚合值作为预计算编程模型的关键字输入,并利用所述预计算编程模型得到新的维度组合以及与新的维度组合对应的聚合值,直到得到全部可能组合以及全部可能组合的聚合值为止。
2.根据权利要求1所述的数据处理方法,其特征在于,根据事实表和维度表创建数据立方体包括:
根据预设的数据分析模型中对事实表和维度表的表项需求,创建对应的事实表和维度表;
按照所述事实表和维度表的表项需求,将外部数据库中的数据导入至事实表和维度表中;
根据所述数据分析模型中的元数据,利用所述事实表和所述维度表创建数据立方体,其中,所述元数据用于指示所述数据立方体的属性参数和创建规则。
3.根据权利要求1所述的数据处理方法,其特征在于,将预计算结果保存至开源数据库中包括:
创建用于存储预计算结果的开源数据库表;
启动存储编程模型任务,将预计算结果作为所述存储编程模型任务的输入;
利用所述存储编程模型生成对应的二进制格式文件;
利用开源数据库的BulkLoad,将二进制格式文件导入至所述开源数据库表中,以实现在开源数据库中存储所述预计算结果;
保存所述预计算结果与所述开源数据库表的对应关系至所述数据分析模型的元数据中。
4.根据权利要求3所述的数据处理方法,其特征在于,创建用于存储预计算结果的开源数据库表包括:
确定开源数据库中为开源数据库表设定的存储区的容量;
根据预计算结果的大小,确定所述预计算结果存入开源数据库表时所需要的存储区的数量值;
将所述数量值发送至所述开源数据库中,以使所述开源数据库根据所述数量值创建用于存储预计算结果的开源数据库表。
5.根据权利要求1所述的数据处理方法,其特征在于,还包括:
间隔设定时间,管理所述数据立方体以及所述数据分析模型中元数据。
6.根据权利要求1所述的数据处理方法,其特征在于,将预计算结果保存至开源数据库中之后,还包括:
在获取到客户端发送的查询请求时,解析所述查询请求并转换成开源数据库查询语句;
将所述开源数据库查询语句发送至开源数据库中,以根据开源数据库查询语句调取预计算结果,并形成查询结果;
将所述查询结果封装并返回至所述客户端,以使所述客户端响应所述查询结果。
7.根据权利要求2-5任一项所述的数据处理方法,其特征在于,所述元数据包括下述至少一项:
数据立方体的创建时间、数据立方体的创建位置、数据立方体的名称、数据立方体的事实、数据立方体的维度及其顺序、数据立方体的度量、聚合类型、与编程模型对应的配置信息、与开源数据库对应的配置信息、预计算时间以及预计算结果的存储信息。
8.一种基于MOLAP的数据处理装置,其特征在于,包括:
立方体创建模块,用于根据事实表和维度表创建数据立方体;
预计算模块,用于基于所述数据立方体中记录的数据,对维度的全部可能组合进行数据预计算;
保存模块,用于将预计算结果保存至开源数据库中,以便在查询时根据预计算结果确定查询结果;
所述预计算模块包括:预计算任务启动单元,用于根据数据分析模型中的元数据,启动预计算编程模型任务,并读取与数据立方体对应的全部维度表和事实表的数据;组合单元,用于将全部维度表的维度进行排列组合,得到包括空集在内的全部可能组合;聚合单元,用于按照设定的聚合规则,对包含全部维度的组合进行聚合运算,得到聚合值;输入值确定单元,用于将包含全部维度的组合作为预计算编程模型的关键值输入,将聚合值作为预计算编程模型的关键字输入,所述预计算编程模型在计算时采用逐级计算的方式;结果生成单元,用于利用预计算编程模型得到新的维度组合以及与新的维度组合对应的聚合值;循环单元,用于依次将新的维度组合作为预计算编程模型的关键值输入,新的维度组合对应的聚合值作为预计算编程模型的关键字输入,并利用预计算编程模型得到新的维度组合以及与新的维度组合对应的聚合值,直到得到全部可能组合以及全部可能组合的聚合值为止。
9.根据权利要求8所述的数据处理装置,其特征在于,所述立方体创建模块包括:
数据表创建单元,用于根据预设的数据分析模型中对事实表和维度表的表项需求,创建对应的事实表和维度表;
数据导入单元,用于按照所述事实表和维度表的表项需求,将外部数据库中的数据导入至事实表和维度表中;
立方体创建单元,用于根据所述数据分析模型中的元数据,利用所述事实表和所述维度表创建数据立方体,其中,所述元数据用于指示所述数据立方体的属性参数和创建规则。
CN201610893549.7A 2016-10-13 2016-10-13 基于molap的数据处理方法及装置 Active CN106484875B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610893549.7A CN106484875B (zh) 2016-10-13 2016-10-13 基于molap的数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610893549.7A CN106484875B (zh) 2016-10-13 2016-10-13 基于molap的数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN106484875A CN106484875A (zh) 2017-03-08
CN106484875B true CN106484875B (zh) 2019-12-31

Family

ID=58270539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610893549.7A Active CN106484875B (zh) 2016-10-13 2016-10-13 基于molap的数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN106484875B (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106997386B (zh) * 2017-03-28 2019-12-27 上海跬智信息技术有限公司 一种olap预计算模型、自动建模方法及自动建模***
CN107229730A (zh) * 2017-06-08 2017-10-03 北京奇虎科技有限公司 数据查询方法及装置
CN109213829A (zh) * 2017-06-30 2019-01-15 北京国双科技有限公司 数据查询方法及装置
CN107729399B (zh) * 2017-09-21 2020-06-05 北京京东尚科信息技术有限公司 数据处理的方法和装置
CN110019357B (zh) * 2017-09-29 2021-06-29 北京国双科技有限公司 数据库查询脚本生成方法及装置
CN108280046A (zh) * 2017-11-30 2018-07-13 深圳市科列技术股份有限公司 一种电池数据处理的方法、电池数据服务器及用户终端
CN108334554B (zh) * 2017-12-29 2021-10-01 上海跬智信息技术有限公司 一种新型的olap预计算模型及构建方法
CN108875008A (zh) * 2018-06-15 2018-11-23 湖北德普电气股份有限公司 一种大容量数据分析方法和装置
CN110781228B (zh) * 2018-07-13 2021-07-13 马上消费金融股份有限公司 基于数据仓库的数据查询方法、***、装置及存储介质
CN109241159B (zh) * 2018-08-07 2021-07-23 威富通科技有限公司 一种数据立方体的分区查询方法、***及终端设备
CN109308301A (zh) * 2018-09-28 2019-02-05 中国银行股份有限公司 测试数据的获得方法及装置
CN111061758B (zh) * 2018-10-16 2023-10-20 杭州海康威视数字技术股份有限公司 数据存储方法、装置及存储介质
CN109710859A (zh) * 2019-01-21 2019-05-03 北京字节跳动网络技术有限公司 数据查询方法和装置
CN109885609B (zh) * 2019-01-31 2024-05-07 平安科技(深圳)有限公司 基于组合的数据范围控制方法、装置及存储介质
CN109976910A (zh) * 2019-03-20 2019-07-05 跬云(上海)信息科技有限公司 基于预计算olap模型的查询方法及装置
CN109992594A (zh) * 2019-03-22 2019-07-09 跬云(上海)信息科技有限公司 基于预计算优化的分布式执行优化方法及***
CN110008239A (zh) * 2019-03-22 2019-07-12 跬云(上海)信息科技有限公司 基于预计算优化的逻辑执行优化方法及***
CN110110165B (zh) * 2019-04-01 2021-04-02 跬云(上海)信息科技有限公司 用于预计算***中查询引擎的动态路由方法及装置
CN110222124A (zh) * 2019-05-08 2019-09-10 跬云(上海)信息科技有限公司 基于olap的多维数据处理方法及***
CN110275920B (zh) * 2019-06-27 2021-08-03 中国石油集团东方地球物理勘探有限责任公司 数据查询方法、装置、电子设备及计算机可读存储介质
CN110674117A (zh) * 2019-09-26 2020-01-10 京东数字科技控股有限公司 数据建模方法、装置、计算机可读介质及电子设备
CN110704514A (zh) * 2019-10-25 2020-01-17 南京录信软件技术有限公司 一种基于Lucene的预计算方法
CN112835966A (zh) * 2019-11-22 2021-05-25 北京金山云网络技术有限公司 数据查询方法、装置以及电子设备
CN111125264B (zh) * 2019-12-12 2021-05-28 跬云(上海)信息科技有限公司 基于扩展olap模型的超大集合分析方法及装置
CN111125266B (zh) * 2019-12-24 2024-01-12 建信金融科技有限责任公司 数据处理方法、装置、设备及存储介质
CN111563123B (zh) * 2020-05-07 2023-08-22 北京首汽智行科技有限公司 一种hive仓库元数据实时同步方法
CN112100177A (zh) * 2020-09-04 2020-12-18 北京三快在线科技有限公司 数据存储方法、装置、计算机设备及存储介质
CN113094409A (zh) * 2021-04-08 2021-07-09 国网电子商务有限公司 业务数据的处理方法及装置、计算机存储介质
CN113220719A (zh) * 2021-06-04 2021-08-06 上海天旦网络科技发展有限公司 一种海量维度数据关联查询优化方法及***
CN113641669B (zh) * 2021-06-30 2023-08-01 北京邮电大学 一种基于混合引擎的多维数据查询方法及装置
CN113407587B (zh) * 2021-07-19 2023-10-27 北京百度网讯科技有限公司 用于联机分析处理引擎的数据处理方法、装置、设备
CN114547054A (zh) * 2022-02-15 2022-05-27 上海跬智信息技术有限公司 相关系数计算方法、装置、设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164222A (zh) * 2013-02-25 2013-06-19 用友软件股份有限公司 多维建模***和多维建模方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164222A (zh) * 2013-02-25 2013-06-19 用友软件股份有限公司 多维建模***和多维建模方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于MapReduce的数据聚集运算算法研究与实现;高伟;《中国优秀硕士学位论文全文数据库信息科技辑》;20130315(第3期);第I138-842页 *
联机分析处理的研究与应用;郭文君;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20021215(第2期);第I138-398页 *

Also Published As

Publication number Publication date
CN106484875A (zh) 2017-03-08

Similar Documents

Publication Publication Date Title
CN106484875B (zh) 基于molap的数据处理方法及装置
JP6827127B2 (ja) 多次元データベース環境において1回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムおよび方法
EP3188043B1 (en) Indirect filtering in blended data operations
TWI525457B (zh) Information processing methods and equipment
CN106528787B (zh) 一种基于海量数据多维分析的查询方法及装置
CN101916261B (zh) 一种分布式并行数据库***的数据分区方法
CN112269792B (zh) 数据查询方法、装置、设备及计算机可读存储介质
US9747349B2 (en) System and method for distributing queries to a group of databases and expediting data access
US9652497B2 (en) Processing queries using hybrid access paths
CN107943952B (zh) 一种基于Spark框架进行全文检索的实现方法
CN112115227B (zh) 数据的查询方法、装置、电子设备及存储介质
CN112015741A (zh) 一种海量数据的分库分表存储方法与装置
CN112835966A (zh) 数据查询方法、装置以及电子设备
WO2018059298A1 (zh) 模式挖掘方法、高效用项集挖掘方法及相关设备
US20140095490A1 (en) Ranking supervised hashing
Chambi et al. Optimizing druid with roaring bitmaps
US20200257684A1 (en) Higher-order data sketching for ad-hoc query estimation
CN110874366B (zh) 数据处理、查询方法和装置
CN112800023B (zh) 基于语义分类的多模型数据分布式存储和分级查询方法
CN104794237A (zh) 网页信息处理方法及装置
Karras et al. Query optimization in NoSQL databases using an enhanced localized R-tree index
Scriney et al. Efficient cube construction for smart city data
Nguyen et al. Semantic cubing platform enabling interoperability analysis among cloud-based linked data cubes
CN114880393A (zh) 基于多维索引的海量时空数据可视化性能优化方法及***
CN111639099A (zh) 全文索引方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant