数仓开发流程
1.数据调研:和业务方沟通进行业务调研和需求分析,充分了解业务场景和业务含义
2.明确数据域:按照业务的特定标准对数据进行划分
3.构建业务总线矩阵:根据业务数据进行分析 抽象出业务过程和维度
4.明确统计指标:对报表需求进行分析 整理出指标体系 包括原子指标 派生指标 和衍生指标
5. 维度模型设计:构建DWD和DM层
6.汇总模型设计: 构建DWS层
7.进行开发调度
维度建模过程
选择业务过程:对业务进行理解 进行详细的需求分析 对业务生命周期进行分析 明确业务步骤
声明粒度:精确定义每一行事实表所代表的业务含义,粒度传递的是与事实表度量相关的细节层次 一般是原子粒度 来保证事实表最大的灵活度
确认维度:业务确定后 可以确认相关维度 应该选择能够清晰描述业务过程所处环境的维度信息
确认事实:确认事实表的度量值
模型选择: 雪花模型: 数据冗余量小 但是业务实现难度大 sql复杂 维护困难
星型模型: 数据冗余量大 业务实现相对简单 关系更加直观 sql逻辑更清晰
DWD建模: 事务事实表: 每条记录事实事务
周期快照事实表: 保存某个业务的全周期变化数据
数据库三范式
第一范式 : 字段必须为原子性 信息不可再分
第二范式 : 联合主键需要完全依赖每个字段
第三范式 : 确保每列都是与主键直接相关而不是间接相关