主要讨论的概念如下
1. 维度模型设计的4步过程
2. 事实表粒度
3. 事务类型事实表
4. 可加、不可加以及抽取的事实
维度属性,包括指标、数字话描述以及多层次
日历日期维度,加上当天时间维度
因果维度,例如:促销维度
退化维度,例如:交易数据号码
维度模型中的空值
维度模型的可扩展性
无事实的事实表
代理键,自然间,持久键
基于雪花模式的维度属性
包含太多维度的蜈蚣事实表
维度模型设计的4步过程
维度模型设计的4步过程
第一步:选择业务过程
通过业务对业务需求以及可用数据源的综合考虑,了解需求,分析需求背后的业务过程,决定对那个业务过程开展建模工作。
关注最为关键、最易实现的用户业务业务过程。最易涉及一系列的考虑,包括数据可用性与质量,以及组织的准备工作等。
第二步:声明粒度
以最低的原子粒度处理数据。原子粒度具有强大的多维性。可以适应商业用户比较随意的查询请求
尽可能最细粒度来处理数据,不是因为需要查询单独的某行,而是因为查询需要非常精确的方式对细节切分
第三步:确定维度
详细的粒度说明了确定了事实表的主要维度。然后可以将更多维度增加到事实表上,只要这些额外的维度自然承担主维度合并的某个值。如果附加的维度会产生与粒度不符的其他事实行,则取消该维度或者重新考虑粒度声明
第四步:确定事实
1,可加事实。我们可以尝试将这类事实物理存储。存储就意味可以能和ETL过程保持一致性。
2,不可加事实。例如利润率,他不能从任何维度被汇总。单价是另外一种不可加事实。
零售模式中的可度量事实
3,事务事实表。表示事务型业务过程具有以下特征:
原子事务事实表的粒度可在事务环境下被简洁地描述,例如,每个事务一行或者每个事务线一行。
此类事实表记录的是一个事务过程,通常比较稀疏,但是又可能回很庞大,数亿行,甚至更多
事务事实表趋向多维化
事务事件返回的度量通常是可加的,只要它们通过数量来扩展,而不是获取单位来度量。
小结:
维度设计4不过程的关键输入
在设计之初,估计事实表的行数是非常有必要的。作为设计者始终通过多角度测量来确定计算是否合理。
作者:数据僧
链接:https://www.jianshu.com/p/029cb71706ff