1.数据仓库和数据库的区别:数据库是在用户与服务器交互的过程中逐渐完善的,而数据仓库主要是对数据库以及日志数据进一步处理。
2.数据仓库主要分五个层,分别是ODS,DWD,DWS,DWT,ADS层。中文名分别对应原始数据层,数据明细层,数据服务层,数据主题层,数据应用层。
3.数据库采用关系模型,现代数据库中的关系表一般满足三范式,第一范式1NF要求属性满足原子性(不可分割),第二范式2NF要求不存在部份依赖(部分依赖是说表中的某个属性仅仅依赖于主键的一部分,而不是依赖于主键的全部;解决办法就是拆分),第三范式3NF要求不存在传递依赖(传递依赖的例子:学号可以唯一确定院系,院系可以唯一确定院长,学号确定院长就是传递依赖)。
4.数据仓库采用维度模型,维度模型包含事实表和维度表。事实表记录了业务事实,主要包括指向维度表的外键和度量值(统计信息);维度表主要是对事实表中外键的扩展,都是描述性的信息。
5.上4已经写道,维度建模包括事实表和维度表;但事实表还包括了三种组织方式。第一种事务性事实表,比如订单记录;第二种是周期性快照事实表,对于这种事实表来说,完整的记录不是很重要,重要的是某一个时刻的数据,比如购物车——对于购物车来说,每次的变化不重要,关键是每天结束时用户的购物车里有什么;第三是累积型快照事实表,适合周期性变化的业务,比如订单——订单会经历下单、打包、运输等几个周期。
6.(bilibili 电商数仓V4.0 74节)维度模型也分为三种——星型模型,雪花模型和星座模型;其中,星型模型和雪花模型是基于一张事实表,星座模型是多张事实表,事实表之间可能共用维度表。星型模型和雪花模型的区别主要在于维度表,雪花模型的维度表冗余性更低,更接近3NF(但仅仅是接近)。
7.1ODS层解析。ODS也叫原始数据层,基本上就是把日志数据和数据库里的业务数据提取出来。
7.2DWD层和DIM层解析。DWD的第二个D是detail,所以叫数据明细层。DWD层和DIM层可以说是数仓建模过程中最重要的部分,会构建业务总线矩阵,从而形成事实表和维度表。
7.3DWS和DWT层解析。S是summary,T是topic,所以分别叫数据汇总层和数据主题层。s是按天汇总,t是按多天汇总。这里的汇总其实是以多个维度为主题,分别对事实表的度量值进行聚合计算(比如sum,max,aver这些)。