数据仓库与数据库的区别
数据库:用于日常的事务处理,存储数据量相对较小,对于存储和查询都有相应的优化,但是对于历史数据量很大的情况下就不适用了。
数据仓库:OLAP 用于大数据量的数据分析处理,优化了查询对于写操作并没太大的优化,因此在大数量方面的查询,支持复杂的查询分析,侧重于决策支持。
数据仓库建模方式通常使用维度建模法,建立相应的事实表与维度表。例如星型模型,雪花模型和星座模型。
- 星型模型
每一个维表都与都与事实表相关联。数据冗余量较大 - 雪花模型
有些维表可能不与事实表直接关联,而是通过其他维表关联到事实表。数据冗余量较小 - 星座模型
由多个事实表相组合,维表是公共的。企业中一般都是星座模型
星型模型和雪花模型的区别
星型模型的数据冗余量相对于雪花模型要大,但是在复杂分析的效率上面来讲,星型模型的效率会更高一点,因为在复杂分析时Join的次数可以减少。
维度设计
维度设计的过程其实就是确定维度属性的过程,维度属性的优劣决定了维度使用的方便性。数据仓库的能力与维度属性的广度和深度成正比。
维度设计方法
- 选择维度或新建维度 在数据仓库中维度必须唯一,只允许有一个维度定义 如商品
- 确定主维表
- 确定相关维表 从业务过程出发 确定哪些相关维表与主维表存在关联。
- 确定维度属性
以淘宝商品维度为例,从主维表( s_auction_auctions )和类目、SPU 、卖家、店铺等相关维表中
选择维度属性或生成新的维度属性。<