前言
因近期以数据分析师身份全程参与了一个数据中台项目。针对繁琐的元数据及多变的需求,归纳整理出一套方法或者叫工作规范流程亦可。范围覆盖了自下而上[1]的元数据梳理、数据定义、数据模型构建及原型图设计,和自上而下[2]的业务理解、业务指标体系搭建、指标管理及指标可视化。
文中举例电商的商品与订单,仅为形象表述定义,与项目无关。
01、数据定义-自下而上
要理解业务,就要对元数据进行梳理,避免毫无章法的查表,建议先对元数据进行数据定义,主要是分为单表属性定义和表字段定义。
表级属性
- 实体(Entity) 具有唯一主键ID(Key),以及包含基本信息(名称、属性等)的对象 人、物、地点、组织等
- 行为(Behavior) 在某个时间(或时间段内),由某个实体进行某项动作,并产生某种结果(如度量、事件) 交易、出站、入住、申报、选课、考试等
- 扩展(supplement) 用来修饰或补充实体、行为的属性、状态、度量等 企业的研发投入占比、企业的主营业务
- 轨迹(Track) 在某个时间(或时间段内),由某个实体进行某项动作,并产生某种轨迹 位置定位数据、地点(卡口)等
- 关系(Relation) 实体与实体之间的关系 上下级、父子、所属部门等
- 码表(Code) 用于表示某种状态、属性 1 = 是,0 = 否
字段级属性
-
维度(Dimension) 用来描述实体或者行为的某种属性、类别 年龄段、性别、职业、账户类型、户口类型等
-
度量(Counter) 某种行为产生的数值型结果 买入500个、考试得分20分等
-
事件(Event) 某种行为产生的非数值型结果 工单(包含标题、内容)
-
image
02、数据关系定义-自下而上
在“01、数据定义” 完成后,需要考虑表与表之间的关系。以实体出发寻找其行为、扩展信息等,划分出不同的业务域。
![](https://img.haomeiwen.com/i22209200/b1496a7b611838c0.jpg)
03、数据模型搭建
数据模型搭建的目的就是为指导ETL工程师能快速的清洗、加工、处理数据。即告诉ETL工程师取哪些表,怎么构建dwd、dws、adm表。
其中ods、dwd层是必须构建的,dws层基于数据复杂度及数据量而定,可直接构建ods、dwd、adm 三层。
思路参考: [https://www.cnblogs.com/lxbmaomao/p/9821209.html]
模型管理
image.png
ER图示意
image
数据分层:
![](https://img.haomeiwen.com/i22209200/e65c0aa0baba5fbd.jpg)
ods元数据层-数据分层
- 一般为元数据,例如 <01、数据定义的表>
- 表ods_aaa1_xxx
- 信息表 ods_aaa2_xxx
- 定价表 ods_aaa3_xxx
- 厂商表 ods_aaa4_xxx
- 订单表 ods_aaa5_xxx
dwd主题层-数据分层
一般建立大宽表,以事实表或者实体表尽可能的关联信息,避免百分比数据(因为比率数据无法做累加累减),此处dwd表不一定追求一步生成,“目标dwd表”可由多张“过程dwd表”生成。
- 例如 02、数据关系定义划分的域
- 订单域 dwd_order_xx
- 商品域 dwd_sku_xxx
dws专题层-数据分层
该层的建立就要考虑应用了(指标),思维方向是<自上而下>的。即从业务指标出发,考虑指标维度,从而去搭建适配的dws层。
- 按照实体进行维度聚合,例如:
- 订单销售额、客单价等订单指标: dws_orderinfo_xx,
adm应用层-数据分层
既可以用作BI可视乎展示也可以用于结果集数据分享。其构建思路,是要考虑服务器的性能和指标的耦合性,要做到一定的平衡。例如adm层的应用表大而宽,对于指标取数是友好的,即可从一张表获取多个指标,但是adm层每天的日增或者全量运行,服务器压力可能会很大;反之应用表假如只针对一个指标,则耦合性太高,扩展性低,适合于业务固定场景。
04、页面指标管理
此步骤主要是针对BI数据可视化,便于管理大屏指标与“03、数据模型搭建”构建的数据模型关系。
-
例如:
-
指标:订单数环比
-
来源模型:订单信息(adm_dws_orderinfo_xx<---dws_orderinfo_xx)
image.png
-
网友评论