admin 发表于 2017-8-24 14:44:45

数仓设计规范

此规范源自滴滴工作期间的实践

一、数仓层级

层级全拼中文说明备注
dim dimension
维度层 DIM数据层的表主要存放维度数据。数据表可以由手动维护的一个文件生成,或者先将mysql的原始数据表拉取到ods层,在通过HQL转换为dim表。

该层为维度数据,维度是对具体分析对象的分析角度,维度要具备丰富的属性,历史信息的可追溯性,对通用的维表要保持一致性,避免维度二义性。


dmdata market
集市层
DM数据层的表存放统计结果表,用于报表页面展示。

按业务主题组织高度汇总数据,产出通用的指标数据,统一指标计算口径和方法,避免指标冗余计算导致数据不一致。面向具体统计需求的;按业务主题划分;对数据进行高度汇总;同一指标只能存储在一张表中;尽量避免dm层表依赖dm表。
粒度:对于多粒度多层级的汇总。

dwmdata warehouse model汇总层 DWM数据层的表是对ODS层或DWV的数据表进行微聚合。

按业务主题组织轻度汇总数据,产出通用、稳定的预处理数据,尽可能多的满足数据需求,避免后期重复计算。尽量避免dw层表依赖dw表。


dwv / dwddata warehouse view / detail明细层 DWV数据层的表是对ODS层数据表的关联、字段重命名或类型转换。

按业务主题组织明细数据,产出数据格式统一、质量可靠、易于应用的业务明细数据。按业务主题划分;对数据进行清洗、转换、聚合,一般不做汇总操作。
为缩短数据计算的链路,没有必要每个ods表都一一建立dwd表。最多的场景是做数据聚合时建立。

odsoperational 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类型。
[*]字段中多个单词以下划线进行连接。



二、主题
主题是根据本公司的业务进行划分的。主题可以分主题、子主题两级:对于按业务群建立的数仓,先按业务线分主题,然后再分子主题。
主题英文命名保存业务线内一致即可。
主题举例如下。
主题主题类型
用户 通用
订单 通用
交易 通用
营销 通用
访问 通用






页: [1]
查看完整版本: 数仓设计规范