数据仓库是一种体系结构,而不是一种技术。数据仓库最为核心的内容分类两部分:
维度
维度建模的语境下,维度指的是环境,如你所处的城市、小区、公司、部门,商品所归属的一级大类、二级大类等。更通俗地理解是,维度指的是where和by后面跟着的字段,用来查询约束、分类汇总和排序。
事实
其实这里的事实指的是度量,如商品数量、成交金额、利润率等。度量业务过程的事实,一般为整型或浮点型的十进制数值,可分为可加、半可加和不可加三种类型。
可加的事实 指能够以任意维度直接汇总;
半可加事实 只能以特定维度汇总,如房屋面积可以按小区汇总,但不能按时间汇总,因为今天的房屋面积加昨天的房屋面积是没有意义的;
不可加事实 不具有可加性,如比率型事实,在任何维度下利润率加利润率都不具有实际含义。
维度表
维度表又称维表,维表存储的一般是对事实描述的信息。每一张维表对应现实世界中的一个对象或者概念。例如:用户、商品、日期、地区等。

事实表
事实表主要围绕业务过程设计,表中的每行数据代表一个业务事件(下单、支付、退款、评价等)。
每一个事实表的行包括:具有可加性的数值型的度量值、与维表相连接的外键。通常具有两个和两个以上的外键,外键之间表示维表之间多对多的关系。

就应用场景而言,事实表主要包括如下三种类型:
1. 事务事实表
用于描述业务过程,按业务过程的单一性或多业务过程可进一步分为单事务事实表和多事务事实表。
其中单事务事实表分别记录每个业务过程,如下单业务记入下单事实表,支付业务记入支付事实表。
多事务事实表在同一个表中包含了不同业务过程,如下单、支付、签收等业务过程记录在一张表中,通过新增字段来判断属于哪一个业务过程。
2. 周期快照事实表
在一个确定的时间间隔内对业务状态进行度量,如用户每月使用信用卡的消费情况。
3. 累计快照事实表
用于查看不同事件之间的时间间隔,例如分析用户从购买到支付的市场、从下单到订单完结的时长等,一般适用于有明确时间间隔的业务过程。
《BI那点儿事-数据的艺术》理解维度数据仓库--事实表、维度表、聚合表
缓慢变化维指维度并不是静态的,而是会随着时间的推移发生缓慢变化。通用的处理方法是,在不考虑存储成本的情况下可通过每天保留一份全量的快照数据来处理变化的维度,当有需要的时候取最近的维度表进行关联。除此之外,还有全量重写、增加行、增加列、开发拉链表等方法来处理这个问题。