此规范源自滴滴工作期间的实践
一、数仓层级
层级 | 全拼 | 中文说明 | 备注 |
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类型。
- 字段中多个单词以下划线进行连接。
二、主题
主题是根据本公司的业务进行划分的。
主题可以分主题、子主题两级:对于按业务群建立的数仓,先按业务线分主题,然后再分子主题。
主题英文命名保存业务线内一致即可。
主题举例如下。
主题 | 主题类型 |
用户 | 通用 |
订单 | 通用 |
交易 | 通用 |
营销 | 通用 |
访问 | 通用 |