6.1 使用维度建模的场景
维度建模和关系建模都能通过ER模型描述,维度建模和关系建模主要区别是规范化程度不同
Demo:
四步维度设计
业务过程:用户购买商品的订单记录表
申明粒度:每一条记录代表一个有效订单
确认维度:商户,用户,支付,收货
确认事实:订单总金额
构建数据表时会有多个数值,通过对不同维度的统计组合,得到了多维数据集,可以从多角度观察业务的好坏
事实表键(多方键)、事实表粒度
6.2.2 维度表
特点:名称由完整词汇组成,具有描述性、完整性(没有遗漏值)、离散取值(维度表中的每一行仅取一个值)、质量保证(没有拼写错误、无效取值范围)
空值用NA或类似描述代替,字段使用描述性名称优于代码缩写
维度表必然用于表示层次关系,产品上卷到品牌,品牌上卷到类别,用一个单独的产品维度即可表示关系
维度表键
建议使用从1开始的数字序列,称之为代理键
代理键的好处:性能、运营键管理实践提供的缓冲、通过映射集成不同数据源、处理位置或者不适用的条件、跟踪维度属性值的变化
代理键的代价:ETL系统负担
一致性维度
两种情况:
1、如果两个一致性维度是完全相同的,则它们有相同的键、属性名、属性定义和域值,不管它们连接什么样的事实表
demo,销售订单事实表 的产品维 和 库存量事实表 的 产品维是相同的。
2、当一个维整正好是另一个更为详细的粒度维度表的完全子集时,这两个维也是一致的。
一致性维度的优点
● 一致性。确保每个事实表都使用一致的过滤条件,查询的结果集也被唯一标识
● 集成。使查询可以横向钻取描述不同业务过程的事实表,也就是首先单独查询每个事实表,然后再将结果集连接到一个公共维度属性上。
● 缩减了开发周期,系统可以快速上市。
一致性维度即DW/BI中的描述性主数据。
一致性维度达成共识见第7章,ETL一次性创建一致性维度见第9章。