一、建模设计参考规范
1、建模原则
-
高内聚和低耦合
-
核心模型与扩展模型分离
-
公共处理逻辑下沉及单一
-
成本与性能平衡
-
数据可回滚
-
一致性
-
命名清晰、可理解表命名需清晰、一致,表名需易于使用方理解
2、建模评价指标
-
完善度
-
汇总数据能直接满足多少查询需求
-
跨层引用比列(业务方直接从dwd、dws、ads层直接拿到想要的数据)
-
快速相应业务方的需求
-
-
复用度
-
模型被读取并产出下游模型的平均数量(模型引用系数)
-
DWD平均模型引用系数一般低于2比较差,3以上相对比较好
-
-
-
规范度
-
主题域归属
-
分层信息
-
脚本及任务命名规范
-
表命名符合规范(清晰、一致、见名知意)
-
字段命名是依赖于词根
-
-
稳定性
-
能否保证日常的sla
-
通过任务历史执行情况,自动判断任务预期可能性,进行破线预警
-
失败和逾期报警
-
评价指标
-
-
扩展性
-
新增加的模型是否和老的模型出现冲突
-
-
准确性与一致性
-
输出的指标数据质量能够保证
-
-
健壮性
-
业务快速更新迭代不太影响底层模型
-
-
低成本
-
衡量数仓成本的指标
-
任务数
-
存储成本
-
模型依赖度
-
计算时间成本
-
计算资源成本
-
-
-
易用
-
数仓提供的数据对于业务应用是易用的
-
衡量数仓的易用性
-
下游数据系统数
-
数据产品PV、UV、使用时长
-
数据用户占比
-
-
-
质量
-
数据本身质量
-
数据建设质量
-
超时任务数
-
失败任务数
-
ADS模型热度
-
ODS模型热度
-
DQC成功率
-
-
-
安全
-
密集覆盖度
-
高密表热度
-
二、数仓分层设计规范
1、数仓分层的作用
- 清晰数据结构 - 减少重复开发 - 把复杂的问题简单化
2、数仓分层及分层定义
-
原始数据层:也成接口层,用于解决系统的数据快速介入的问题
-
操作数据层:基于原始数据,剔除重复冗余的数据,生成供下游可用的操作数据
-
明细数据层:建立相对完整、原子粒度的公共数据,加强数据共享、模型稳定与重用,面向未来需求具备良好的可适配性。
-
以Kimball维度模型为理论基础建模
-
-
明细数据层 面向主题,提供最细粒度的、完整业务属性的、历史可追溯的公共原子数据
-
围绕业务过程的原子指标进行建模
-
提供公共一致性维度
-
-
汇总数据层:基于明细层数据进行适度的数据汇总,或进行跨主题、整合的拉通数据,为应用提供预加工数据,降低数据消费难度
-
对公用、常用以及稳定的衍生/复合指标数据,沉淀在该层建设
-
提供跨模块或跨主题的整合拉通数据及标签数据
-
该层的模型设计应更多考虑消费的便利性以及查询性能
-
-
应用集市层:面向业务应用需求的个性化设计,通常使用宽表的形式或者服用明细层和汇总层的星型模型
-
安全面向应用需求建设,个性化、频繁变动的衍生/复合指标数据
-
进行基于应用的数据组装,如宽表集市、横表转纵表、趋势指标等,满足前端报表查询、分析图标、仪表盘等
-
更多考虑满足应用功能使用,尽量减少数据访问时计算,提升查询性能,同时将事实拉宽,冗余常用属性字段
-
3、ADS层数据输出下游系统数据应用及建议方案
数仓ADS层加工完毕的数据,经传输工具推送给下游数据应用数据库,应避免数据出现读取断层。