kylin学习(一)

来源:互联网 发布:淘宝店铺管理教程 编辑:程序博客网 时间:2024/06/05 14:43


1,事实表和维度表


事实表用来记录具体事件,包含每个事件的具体要素。

维度表是对事实表中要素的描述信息。


比如事实表中地点可能一串数字,而具体含义是在地点维度表获取。


2,星型模型和雪花模型


基于事实表和维度表,可以构建多种模型,包括星型模型,雪花模型,还有星座模型。星座模型由星型模型扩展来的,为了表示多个事实之间的关系,可以共享多个维度,这些共享维度对于每个拥有它的事实表来说都具有相同意义

星型模型是一种多维的数据关系,它由一个或多个事实表和一组维度表组成。所有维度表都直接连接到事实表上。

星型模型是一种非正规化的结构,多维数据集中的每个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定冗余,比如在地域维度表,存在国家A省B城市C,以及国家A省B城市D,那么国家A和省B就存储了两次,存在冗余。


当有一个或多个维度表没有直接连接到事实表,而是通过其他维度表连接到事实表,为雪花模型。它是对星型模型维度表进一步层次化,原有的各维度表可能扩展成小的事实表,形成一些局部的“层次”区域。比如可以将国家地域维度表分解为国家,身份,城市等维度表。它减少了数据冗余,但是效率比星型模型降低了。


3,olap

olap联机分析系统,oltp联机事务处理(传统数据库)


olap分类:按照其存储器的数据存储格式:

1),ROLAP 关系olap

将分析用的多维数据存储在关系型数据库中,选择频率高,计算工作量大的保存为实视图

2),molap,多维olap

存储为多维数组形式,形成立方体结构,维的属性被映射成数组下标值。汇总数据放在对应数组单元中


3),holap,混合型olap

低层是关系型的,高层是多维矩阵型的。


4,olap基本操作

1),钻取:将数据从上层降到下一层,或者说从汇总数据拆分到更细节的粒度

2),上卷:钻取的逆操作。

3),切片:选择维中特定值进行分析

4),切块,多个切片的组成

5)旋转:维的位置的互换。


5,数据立方体(Data Cube)

数据立方体允许多个维度对数据建模和观察,由事实和维定义。只是对多维模型的一个形象说法

kylin生成多维指标时,即生成cube的过程。将所有的维度组合,维度的不同组合,称为cubeid,比如包含n个维度的cube有2的n次方个cubeid


对于cube的构建,kylin提供一个称为layer cubing的算法,简单来说,就是按照维度数量从大到小的顺序,从base cubid开始,依次基于上一层cuboid的结果进行再聚合。每一层计算都是一个单独的mapreduce任务


0-D Cuboid                                                                              *

      个   MR

1-D Cuboid                                                       A                  B                   C           D

     个   MR

2-D  Cuboid                                       A,B          A,C        A,D           B,C      B,D        C,D

     个   MR

3-D  Cuboid                                          A,B,C               A,B,D                  A,c,D          B,C,D

    个     MR

  4-D  Cuboid                                                                    A,B,C,D

    个    MR

   全数据


会启动N+1轮MapReduce计算