数据仓库的架构:星型模型和雪花模型架构
星型模型是确定了一个事实表和多个维度表
雪花模型是:事实表两边的维度表可以再有子表,主要是表达清洗的维度层次关系(例如地区维度省市,品类维度一级品类二级品类)
构建企业级数据仓库的流程:
1、确定主题
确定数据分析或前端展现的主题
2、确定量度
技术指标的统计值,例如数据汇总的最大值最小值,年销售额等
3、确定粒度
量度的聚合程度,一般采用最小粒度原则,即数据保留的时间单位,通常为天
4、确定维度
数据分析的各个角度,时间、地区、产品等,基于不同的维度,可以看到各量度的汇总情况,如时间维度,某月销售额,维度交叉分析的情况,如某个地区某个品类的销售量
5、确定事实表
思想上是将原始表与维度表进行关联,生成事实表。
做法是加载原始表中量度数据,同时取出维度表的主键放入事实表中作为关联,没有描述性信息
采用瘦高原则,要求事实表数据条数多,描述性信息尽量少
事实表是数据仓库的核心,join得到的事实数据表,一般记录条数都比较大,需要设置索引,提高数据仓库的查询性能优化,
如果前端连接数据仓库进行查询,可以建立相关的中间汇总表或物化视图,方便查询
数仓实践技巧:
1、准备区运用
在数据服务器和数仓服务器中间加一台服务器,专门用于数据ETL
2、时间戳运用
时间维度统计
缓慢变化维 ->拉链表
3、日志表运用
ETL结果统计
方法是我们使用一张或多张Log日志表,将出错信息记录下来,在日志表中我们将记录每次抽取的条数、处理成功的条数、处理失败的条数、处理失败的数据、处理时间等等。这样,当数据发生错误时,我们很容易发现问题所在,然后对出错的数据进行修正或重新处理。
4、调度运行
确定需要多久更新一次
增量更新
事实数据量大,可以按天更新,数据量不大,可以按月或半年更新一次
如果有缓慢变化维,更新事实数据表之前要先更新维度表