数仓事实层DWB层构建
01:项目回顾
- 项目中有哪些主题域?
- 服务域:工单主题、安装主题
- 客户域:客户事主题
- 仓储域:物料主题
- 运营域:工时主题
- 市场域:工单主题
- 项目中有哪些核心维度?
- 时间维度
- 地区维度
- 油站维度
- 服务站点维度
- 组织机构维度
- 物流维度
- 仓库维度
- ……
- 行政地区维度中有哪些核心字段?
省份id 省份名称 城市id 城市名称 县区id 县区名称 乡镇id 乡镇名称
- 定期或者按照变化,全量同步到数据仓库中
- 时间维度中有哪些核心字段?
年 季度 月 周 日 年的第几天 周的第几天 工作日 节假日 周日
- 每一年提前将下一年的时间维度信息生成,增量放入数据仓库中
- 服务网点维度中有哪些核心字段?
服务网点id 编码 名称 省份 城市 县区 组织机构id 组织机构名称
- 油站维度中有哪些核心字段?
油站id 油站编码 油站名称 省份 城市 县区 乡镇 客户id 客户名称 公司id 公司名称
- 组织机构维度中有哪些核心字段?
工程师id 工程师名称 岗位id 岗位名称 部门id 部门名称
- 集中问题
- DG连接不上:YARN的进程故障,导致ThriftServer无法运行
- Hadoop:NameNode、DataNode、ResourceManager、NodeManager
- Hive:Metastore、Hiveserver2
- Spark:ThriftServer
- 异常:ProtocolBuffer 不匹配:dim_date
- 数据文件与表的定义是不匹配的
- step1:检查建表语法
- step2:文件:上传时候文件是不对的
- 语法 + 函数 + 数据关系
- 语法 + 函数 :计算
- 数据关系:逻辑
02:项目目标
- 整体目标:构建数仓中的DWB:主题事务事实表
- 核心的主题事实的构建:SQL实现 + 主题的指标
- 原始事务事实数据【DWD】:订单数据
o001 userid1 2021-01-01 200.00
- 主题事务事实数据【DWB】:订单主题
o001 userid1 2021-01-01 订单总金额:200 订单总个数:1
- 主题周期快照事实表:数据应用层【ST:维度【DWS】 + 事实指标【DWB】】
2021-01-01 订单总金额:xxxx 订单总个数:xxxx
- 重点内容:SQL以及数据关系
03:分层回顾
- 目标:回顾一站制造项目分层设计
- 实施
- ODS层 :原始数据层:101张表:AVRO
- DWD层:明细数据层:101张表:ORC
- DWS层:维度数据层:维度表
- DWB层:轻度汇总层:Join + 构建基础指标
- 小结
- 回顾一站制造项目分层设计
04:DWB层的设计
- 目标:掌握DWB层的设计
- 路径
- step1:功能
- step2:来源
- step3:需求
- 实施
- 功能:存储每个事实主题需要的事务事实数据以及轻度聚合的结果,供ST层基于DWS层进行统计聚合得到最终每个主题的指标
- 关联:将事实主题需要的字段进行关联合并到一张事实表中,构建基于主题的事实
- 聚合:对常用的基础指标基于细粒度实现轻度聚合
- 来源:对DWD层的数据进行关联或者轻度聚合
- 需求:按照一站制造的业务主题的划分需求,构建每个主题的DWB层的数据
- 小结
- 掌握DWB层的设计