维度建模技术(1)核心概念

1.维度建模技术背景

    在基于Hadoop的数据仓库(如Hive),或基于传统MPP架构的数据仓库(如Teradata),抑或是基于传统关系型数据库的数据仓库,都会面临一系列问题:
  • 如何设计数据仓库中的数据存放?
  • 如何设计才能使得数据的使用最为简便?
  • 如何设计才能使数据仓库有良好的可扩展性和可维护性?
    在数据仓库建模里面中,有两大派:
  • Bill Inmon范式: 数据仓库是一个整体的商业智能系统的一部分。 一家企业只有一个数据仓库,数据集市的信息来源出自数据仓库。在数据仓库中,信息存储 符合第三范式
  • Ralph Kimball范式:数据仓库是企业内所有数据集市的集合,信息总是被存储 在多维模型当中。
    很明显, Bill Inmon范式更规范化,使用起来更简便,但是忽略了数据仓库的可扩展性和可维护性。而Ralph Kimball范式站在大数据角度,考虑未来数据仓库的发展战略。因此,维度建模技术将以Ralph Kimball范式展开。
    
2.维度建模核心概念

(1)度量和环境
    ① 度量:对业务过程进行度量,如公司当月销售额如何,官网访问情况如何?
    ② 环境:直接度量业务过程数值很难理解其中的意义,如公司销售额是上月多还是当月多,官网访问量为多少才算好。因此环境可以理解为上下文的意思。
(2)事实和维度
    在kimball范式中,度量称为事实,上下文和环境称为维度。一般,事实以数值表现,而且被大量文本形式的上下文包围。这些文本上下文描述了事实的"5个W" 维度信息(When、Where、What、Who、Why)。
    例如需求为:"按照一级类目,统计本店上月的销售额情况"。这里"一级类目"为一个维度,"上月"为另一个维度,而销售是 事实
(3)事实表
    它包含了最底层、最原子性的细节,提高了灵活性。 简单理解,就是超市结账时的小票,上面详细记录了所有交易记录、商品信息等
    事实表根据XX粒度可划分为:事实事实表、周期快照表和累积快照事务表。
  • 事务事实表:用于承载事务数据,通常粒度比较低(细节很多),例如产品交易事务事实、ATM交易事务事实。
  • 周期快照事实表:记录有规律、固定时间间隔的业务累积数据,粒度比较大,例如账户月平均余额事实表。
  • 累积快照事实表:记录具有时间跨度的业务处理过程信息,例如产品从上线到淘汰事务事实。
(4)维度表
    维度可以理解为属性,通常一张表可能有数十或上百列属性。属性时查询约束条件(where)、分组(group)等基本元素。而属性尽可能体现出文字意义,而不是一些简单地符号编码。
    有时设计数据库时,不能从字段(如数字型)中分析是事实还是维度。通常,如果字段有许多取值并参与运算的度量值则看出事实、如果字段变换不多并作为离散取值描述则看成维度属性。
(5)星型架构和雪花架构
    维度建模存在两种组合事实表和维度表的基本架构: 星型和雪花
  • 星型架构所有维度表直接连接到事实表。非规范化结构,存储有冗余,例如在商品的维度表中,其品牌信息每一行都存在,包括品牌ID,名称、拥有者。但很多商品品牌一样,导致重复存储了很多次存在冗余。
  • 雪花架构不是 所有维度表直接都连接到事实表,而是通过其他维度表连接到事实表中。例如存储商品表中,每一行仅存储品牌ID,而品牌的所有其他信息(包括品牌名称、拥有者、注册地等)都存储在单独的品牌维度表中。通过品牌ID外键,商品表可以间接获取到所有品牌详细信息。 这样虽然可以节省存储空间,但下游用户分析品牌销售额时,必须先用订单表关联商品表,然后用商品表再关联品牌表
    因此,星型架构类似于所有信息放在表一行中,无需额外关联表。 这会造成空间浪费,但效率高和查询方便。雪花结构相反,因为表连接操作通常需要进行大量优化操作才能提高查询效率。所以, 数据仓库一般采用星型架构,关系型数据库采用雪花架构
    
3.维度建模常见过程

    一般采用4步进行设计,即业务过程、定义粒度、确定维度和确定事实。
    
(1)选取业务过程
    这个就是产品经理的活了,就不多说了...
(2)定义粒度
    即事实表事实细节所达到的程度。本质就是如何描述事实表的单行信息。常见例如:
  • 收费小票上的每一个子项
  • 银行账户的每一次存款记录
(3)确定维度
    确定了粒度之后,那么我们可以继续从维度角度出发。例如订单表中,常见维度包括商品、日期、卖家、买家、门店等。每一个维度可以包含大量描述性信息,如商品维度表会包含商品名称、标签价、商品品牌、商品类目、商品上线时间。
(4)确定事实
    现在需要确定事实和度量,比如超时的订单活动,相关的度量为销售数量和销售金额。
    
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值