本文为《维度建模权威指南-kimball》前两章的读书笔记,如有错误,请指正。
1. 维度建模是什么?
对一个产品,我们通常会存储用户行为日志等海量数据,这些数据通常被用来:
- 开发数据看板,作为产品核心指标与主要业务场景的数据监控与分析
- 数据分析/挖掘,从数据中洞察信息,为产品的优化和迭代提供有说服力的指导
在这个过程中,我们的数据仓库需要满足以下两个需求:
- 数仓中数据的组织形式是分析/开发人员易于理解与使用的
- 能提供高效的查询性能
通过维度建模的思想建设数仓,就可以满足上述需求。
维度建模,我理解为数仓建设中数据存储或组织方式的一种方法论,更具体地,维度模型表示每个业务过程包括事实表和若干个维度表,事实表存储该业务过程的度量信息,维度表与事实表相关联,存储业务相关维度的额外信息。
举个例子,在下图的零售事实中,会有一个事实表,记录本次零售的销量和销售额,而这个事实表可以关联多个维度表,得到这些维度的额外信息,如产品维度表中的商品名称、价格,客户维度表中的年龄、性别等。