最强最全面的数仓建设规范指南 (一)-二、数仓公共开发规范
最编程
2024-01-16 09:41:49
...
1. 层次调用规范
稳定业务按照标准的数据流向进行开发,即 ODS –> DWD –> DWS –> APP。非稳定业务或探索性需求,可以遵循 ODS -> DWD -> APP 或者 ODS -> DWD -> DWM ->APP 两个模型数据流。
在保障了数据链路的合理性之后,也必须保证模型分层引用原则:
- 正常流向:ODS -> DWD -> DWM -> DWS -> APP,当出现 ODS -> DWD -> DWS -> APP 这种关系时,说明主题域未覆盖全。应将 DWD 数据落到 DWM 中,对于使用频度非常低的表允许 DWD -> DWS。
- 尽量避免出现 DWS 宽表中使用 DWD 又使用(该 DWD 所归属主题域)DWM 的表。
- 同一主题域内对于 DWM 生成 DWM 的表,原则上要尽量避免,否则会影响 ETL 的效率。
- DWM、DWS 和 APP 中禁止直接使用 ODS 的表, ODS 的表只能被 DWD 引用。
- 禁止出现反向依赖,例如 DWM 的表依赖 DWS 的表。
举例:
2. 数据类型规范
需统一规定不同的数据的数据类型,严格按照规定的数据类型执行:
- 金额:double 或使用 decimal(28,6) 控制精度等,明确单位是分还是元。
- 字符串:string。
- id类:bigint。
- 时间:string。
- 状态:string
3. 数据冗余规范
宽表的冗余字段要确保:
- 冗余字段要使用高频,下游3个或以上使用。
- 冗余字段引入不应造成本身数据产生过多的延后。
- 冗余字段和已有字段的重复率不应过大,原则上不应超过60%,如需要可以选择join或原表拓展。
4. NULL字段处理规范
- 对于维度字段,需设置为-1
- 对于指标字段,需设置为 0
5. 指标口径规范
保证主题域内,指标口径一致,无歧义。
通过数据分层,提供统一的数据出口,统一对外输出的数据口径,避免同一指标不同口径的情况发生。