此规范源自滴滴工作期间的实践
一、数仓层级
层级 | 全拼 | 中文说明 | 备注 | dim | dimension
| 维度层 | DIM数据层的表主要存放维度数据。数据表可以由手动维护的一个文件生成,或者先将mysql的原始数据表拉取到ods层,在通过HQL转换为dim表。
该层为维度数据,维度是对具体分析对象的分析角度,维度要具备丰富的属性,历史信息的可追溯性,对通用的维表要保持一致性,避免维度二义性。
| dm | data market
| 集市层
| DM数据层的表存放统计结果表,用于报表页面展示。
按业务主题组织高度汇总数据,产出通用的指标数据,统一指标计算口径和方法,避免指标冗余计算导致数据不一致。 面向具体统计需求的;按业务主题划分;对数据进行高度汇总;同一指标只能存储在一张表中;尽量避免dm层表依赖dm表。
粒度:对于多粒度多层级的汇总。
| dwm | data warehouse model | 汇总层 | DWM数据层的表是对ODS层或DWV的数据表进行微聚合。
按业务主题组织轻度汇总数据,产出通用、稳定的预处理数据,尽可能多的满足数据需求,避免后期重复计算。尽量避免dw层表依赖dw表。
| dwv / dwd | data warehouse view / detail | 明细层 | DWV数据层的表是对ODS层数据表的关联、字段重命名或类型转换。
按业务主题组织明细数据,产出数据格式统一、质量可靠、易于应用的业务明细数据。 按业务主题划分;对数据进行清洗、转换、聚合,一般不做汇总操作。
为缩短数据计算的链路,没有必要每个ods表都一一建立dwd表。最多的场景是做数据聚合时建立。
| ods | operational data store
| 源数据层
| ODS数据层的表主要存放原始数据信息。
该层接收来自不同源系统数据,只用于数据仓库内部使用,不对外开放。为方便问题跟踪和抽取效率,同时保持响应相关需求的能力, 该层数据原则上和源系统数据保持一致,不做任何处理。
|
|
|
|
|
字段规范- ODS数据表中从mysql数据源中抓取的表字段名称按照原始名称存放,保持不变。
- ODS数据表中从public数据源中抓取的表字段只有prefix_key和param字段(map类型)。
- 字段中涉及乘客司机订单信息,分别用passenger、driver、order来表示,不要简写。其他单词可以简写。
- order_id、passenger_id、driver_id统一使用bigint类型。
- 经纬度统一使用double类型。
- city_id统一使用int类型,其中用-1代表其他。
- 涉及到钱的字段必须在字段注释中标注是分或元。
- DWV、DWM、DM层的表中涉及到钱的字段统一用decimal字段类型,单位元。ODS层的表按原始mysql类型存储。
- DWV、DWM层的如订单数、支付数这样的统计字段统一使用bigint类型。
- 字段中多个单词以下划线进行连接。
二、主题
主题是根据本公司的业务进行划分的。 主题可以分主题、子主题两级:对于按业务群建立的数仓,先按业务线分主题,然后再分子主题。
主题英文命名保存业务线内一致即可。
主题举例如下。 主题 | 主题类型 | 用户 | 通用 | 订单 | 通用 | 交易 | 通用 | 营销 | 通用 | 访问 | 通用 |
|