多维数据库

目录

1. 多维数据是什么?

2. 多维数据库用来做什么?

3. 为什么要多维分析?

4. 多维数据分析领域中的概念

5. OLAP(Online Analyze Process 在线分析处理)

6. Mondrain

7. Kylin


1. 多维数据是什么?

        多维数据库(Multi Dimensional Database,MDD)可以简单理解为把数据存放在一个n维数组中,而不是像关系数据库那样以记录形式存放,因此它存在大量稀疏矩阵(因为很多维度可能没有数据)。它的优势在于可以提高数据处理速度,加快反应时间,相当于是以空间换时间的做法。

多维数据库_第1张图片

稀疏矩阵:

        在矩阵中,如果数值为0的元素数目远远多于非0元素,则为稀疏矩阵;反之,则为稠密矩阵。

(关系型)数据库、数仓、多维数据库:

  1. 数据库中一般存放的是业务属性的表
  2. 为了进行数据分析和挖掘,建设数仓
  3. 为了更强、更快,且面向业务的数据分析,就会建立多维数据库

2. 多维数据库用来做什么?

        多维数据库主要用于OLAP(Online Analyze Process 在线分析处理)。它们可用于向用户显示多维数据。

3. 为什么要多维分析?

  • 为什么要分析:(1) 看清业务现状;(2) 预测业务走势;(3) 数字驱动业务,发现问题并调整
  • 为什么要多维:(1) 不同角色关注不同维度;(2) 人岗匹配,不同岗位的关键指标不同

不同角色关注不同维度:

  • 销售经理关心各个地区的销售情况,希望找出销售增长率在平均水平之下的地区
  • 产品总监则希望了解近期内各种产品的销量对比,以作为后期产品研发方向的参考
  • CEO想要知道近六个月内整体销售环比信息,用以评估是否达到公司运营目标

多维数据库_第2张图片

  • 同比:与去年同时期相比的变化比
  • 环比:与上个统计周期相比的变化比

4. 多维数据分析领域中的概念

  • 数据立方体(Cube)
  • 维度(Dimension)
  • 维度成员(Member)
  • 度量(Measure)
  • 级别(Level)

数据立方体(Cube):                                                       

多维数据库_第3张图片

维度(Dimension):                                维度成员(Member):维度是坐标轴,维度成员是坐标值

 多维数据库_第4张图片多维数据库_第5张图片

度量(Measure):多维数组的取值                       级别(Level):维度成员观察数据的粒度

多维数据库_第6张图片 多维数据库_第7张图片

5. OLAP(Online Analyze Process 在线分析处理)

        OLAP是一项在线数据分析技术。它能够基于数仓看清业务现状,预测业务走势,为业务决策提供数据支撑。

 OLAP如何工作?

  • 从多个数据源(如mysql、excel、xml)收集数据并存储到数仓
  • 然后清理并组织成数据立方体

OLAP可以对 多维数据库 执行的5种操作:

  • 汇总:汇总数据和维度
  • 下钻:在数据维度中更深入分析,省下钻市,年下钻月
  • 切片:执行分析显示一级信息,如“2022年销售额”
  • 切块:多个维度进行分析,如“陕西省2022年手机销售额”
  • 旋转:通过旋转多维数据集的数据轴来获得新数据视图

OLAP(在线分析处理)分为三种类型:

  • MOLAP(多维OLAP):MOLAP是一种基于多维数据库索引的OLAP
  • ROLAP(Relational OLAP):ROLAP是基于关系型数据库的动态多维OLAP
  • HOLAP(混合OLAP):HOLAP是MOLAP和ROLAP的集成

6. Mondrain

        mondrain是基于java语言的OLAP引擎,它接收MDX查询语句,从关系型数据库中读取数据,然后通过java API以多维度的形式展示查询结果。

mondrain架构:

        mondrain机构可以分为四个层次,表现层、计算层、聚合层、存储层

  • 表现层:用多种方法展现多维数据,包括饼、柱、线状图、数据透视表。特殊点在于,它是基于taglib而不是SpringMVC
  • 计算层:分析、验证、执行MDX语句,先计算坐标轴,再计算单元格。计算层从聚合层批量获取单元格数据集合
  • 聚合层:聚合层中缓存了多维查询结果,即单元格数据集合。如果计算层所需的数据不在缓存中,就从存储层查询数据并缓存。
  • 存储层:采用关系数据库实现,一般采用星型模型,提供维表、事实表和聚合表 

多维数据库_第8张图片


7. Kylin

        Kylin是一个OLAP系统,主要用于大数据分析。它对Hive中的数据预计算,充分利用Hadoop中的MapReduce框架的并行处理能力实现,将计算好的结果保存成Cube并存储到HBase中,供查询时直接访问。是一种用空间换时间的解决方案。

        Mondrain是一个ROLAP系统,所有的查询可以通过实时的数据库查询完成,而不会有任何预计算,但是会将查询结果缓存在程序内存中。

        Kylin是一个MOLAP系统,对多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube并存储到HBase中,供查询时直接访问。

Kylin架构:

        Kylin默认的数据源是Hive,构建技术主要是MapReduce,将构建好的Cube保存在存储引擎(默认HBase)中。

核心组件:

  • REST Server:让用户能通过Restful接口实现SQL查询、构建Cube等
  • 查询引擎:当Cube准备就休后,通过查询引擎获取并解析用户查询
  • 元数据管理工具:对Cube元数据进行管理
  • 任务引擎:处理所有的离线任务,包括Java API、MapReduce任务等

        

你可能感兴趣的:(数据库,大数据)