离线数仓—数据仓库设计
前言
前面对数据仓库做了简要介绍,并了解了数仓建模的相关知识,下面对数据仓库进行设计。
一、数据仓库设计
1.数据仓库分层规划
就像做java web系统一样要使用MVC架构分为三层,也好比计算机网络五层协议一样,这里数据仓库也需要进行分层,不同的层负责的部分不同,里面的数据也不相同。
数据从HDFS初始地出发,要依次经过以下五层:
第一层是ODS层:建立相应的Hive表,使用load命令(剪切操作)将HDFS数据初始位置放到Hive表对应的路径下。只是将数据原封不动的拿过来,基本上不做任何处理。
第二层是DWD层:基于维度建模理论进行构建,根据ODS的初始数据建立事实表,保存各业务过程最小粒度的操作记录
第三层是DIM层:基于维度建模理论进行构建,根据ODS的初始数据建立维度表,保存一致性的维度信息。
第四层是DWS层:保存一些需求计算的中间结果,主要目的是减少重复计算,优化数据仓库。
第五层是ADS层:存放的是需求对应的各项统计指标结果。
2.数据仓库构建流程
1)数据调研:
业务调研:调研的是业务系统的数据和业务系统的业务逻辑(数仓前)
业务分析:分析的书数仓下游的需求(数仓后)
2)明确数据域:
数据域(可以不划分,对表没有影响):数据域就是对数据进行分类(分类没有具体的规定,只要合理即可)。例如厨师要去做菜,首先要去找食材,食材比较多,不容易找到,因此要先对食材进行分类,这样就能够根据分类先找到一小部分食材,然后就方便进一步寻找。
3)构建业务总线矩