OLAP基本概念

维度和度量

维度和度量是数据分析中的两个基本概念。

维度是指审视数据的角度,它通常是数据记录的一个属性,例如时间、地点等。度量是基于数据所计算出来的考量值;它通常是一个数值,如销售额、不同的用户数等。分析人员往往要结合若干个维度来审查度量值,以便在其中找到变化规律。在一个sql查询中,group by的属性通常就是维度,而所计算的值则是度量。如下面的示例:

select part_dt,lstg_site_id,sum(price) as total_selled,count(distinct seller_id) as sellers from kylin_sales group by part_dt,lstg_site_id

在上面的这个查询中,part_dt和lstg_site_id是维度,sum(price)和count(distinct seller_id)是度量。

维度的基数(Cardinality)

维度的基数(Cardinality)指的是该维度在数据集中出现的不同值的个数。

例如“国家”是一个维度,如果有200个不同的值,那么此维度的基数就是200。通常一个维度的基数会从几十到几万个不等,个别维度如“用户ID”的基数会超过百万甚至千万。基数超过一百万的维度通常被称为超高基数维度(Ultra High Cardinality,UHC),需要引起设计者的注意。

事实表和维度表

事实表(Fact Table)是指存储有事实记录的表,如系统日志、销售记录等;事实表的记录在不断地动态增长,所以它的体积通常远大于其他表。

维度表(Dimension Table)或维表,有时也称查找表(Lookup Table),是与事实表相对应的一种表;它保存了维度的属性值,可以跟事实表做关联;相当于将事实表上经常重复出现的属性抽取、规范出来用一张表进行管理。常见的维度表有:日期表(存储与日期对应的周、月、季度等的属性)、地点表(包含国家、省/州、城市等属性)等。使用维度表有诸多好处,具体如下。

  • 缩小了事实表的大小。
  • 便于维度的管理和维护,增加、删除和修改维度的属性,不必对事实表的大量记录进行改动。
  • 维度表可以为多个事实表重用,以减少重复工作。

Cube、Cuboid和Cube Segment

Cube(或Data Cube),即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过Cube对数据进行分析,可以大大加快数据的查询效率。

Cuboid在Kylin中特指在某一种维度组合下所计算的数据。

Cube Segment是指针对源数据中的某一个片段,计算出来的Cube数据。通常数据仓库中的数据数量会随着时间的增长而增长,而Cube Segment也是按时间顺序来构建的。

数据挖掘常见多维数据模型

星形模型(star Schema)

星形模型中有一张事实表,以及零个或多个维度表;事实表与维度表通过主键外键相关联,维度表之间没有关联,就像很多星星围绕在一个恒星周围,故取名为星形模型。

雪花模型(Snowflake Schema)

如果将星形模型中某些维度的表再做规范,抽取成更细的维度表,然后让维度表之间也进行关联,那么这种模型称为雪花模型。

事实星座模型(Fact Constellation)

星座模型是更复杂的模型,其中包含了多个事实表,而维度表是公用的,可以共享。

你可能感兴趣的:(OLAP)