168大数据

标题: 维度表设计细节(第一篇) [打印本页]

作者: 168主编    时间: 2019-5-15 16:34
标题: 维度表设计细节(第一篇)

一、文章概述

维度表数据仓库中承担着一个非常重大的角色。它们实际上是数据计算的约束条件与报表标签的来源。数据仓库在一些情况下可以说是维度属性的展现。数据仓库的健壮程度直接与维度属性的质量和深度正相关。


下面我们主要讨论多种维度表的设计方案:日期维度、因果维度、退化维度、多值维度与桥连接表、文本注释维度等。


二、维度表设计细节

1、日期维度

日期维度是一种特殊的维度,它几乎出现在所有的维度模型中。与其他维度不同的是,可以其他建立日期维度表。由于一年只有365/366天,因此可以在表中存储30年的数据,无非也就是365*30条。维度表可以包含历史和未来几十年的数据。建议将维度表按照下面的方式设计:

对于报表,需要增加长标识和缩写标识。例如月份有1月、年-月(YYYY-MM);季度(Q1)和2019年-Q1等写法。


2、产品维度

产品维度描述的是数据仓库中每个产品的维度信息。为每种产品定义一系列的描述信息,有助于数据仓库的管理。


3、商店维度

商店描述的是每个连锁门店。数据小组必须从数据源中提取信息,以构建商店维度所需的各种元素。


4、促销维度

促销维度主要是包含促销商品的促销条件。促销条件包含临时降价、广告投放、代金券等。促销维度通常被认为是一种因果维度,因为它描述了可能导致产品销售发生改变的因素。

各种可能存在的因果条件是高度关联的。临时降价通常与广告或者PUSH相关。纯粹的从逻辑上考虑,通过将4个不同的因果机制(广告、降价、PUSH、代金券)区分开,建立不同的维度而不是将他们合并在一个维度中。


注意:许多销售事务中包括未促销的产品。客户的购物车中可能会包含非促销产品,因此,促销维度中必须包含一行,具有唯一键0或者-1,用来表示不包含促销条件,避免事实表中出行空的促销键。


5、退化维度

退化维度顾名思义就是把部分维度信息退化到事实表中,增加事实表的可读性。把一些微博的状态(原创、转发、删除),发票代码、发票号码或者微博的mid直接放在事实表中,而没有对应的维度表与之关联。这种操作在互联网的hive事实表中非常常见,可以优化查询性能和增加可读性。




作者:清和  来源:大数据漫路求索





欢迎光临 168大数据 (http://www.bi168.cn/) Powered by Discuz! X3.2