数据中台实践手记——数据体系搭建

数据体系搭建步骤

业务板块 -> 数据域 -> 事实表 -> 数据同步(ELT)

  1. 梳理业务数仓的数据流程图
  2. 业务表结构梳理
  3. 业务数仓分层规划
概念 理解
ODS 业务数据与数据仓库的一个隔离,该层数据结构与原始日志中的结构一致,存放的是原始日志数据。源头数据不能收到污染,必须保持和原始日志数据一致。因为数据可能存在冲突,所以最好加上时间版本用于区别相同数据。
DW DW层为数据公共层,由ods层数据关联得到,之后也无需求直接从dw层拉取,管理所有数据。
  dwd 明细事实表:组合相关数据,解决一些数据质量问题和数据的完全度问题,采用明细宽表减少扫描,例如订单表,dwd中每个订单都只会取订单的最新状态,当出现退款订单时,因为退款日期上限位3天,故该表需要三天回准。
  dws 数据宽表:通过dwd、ods层数据整理出来的基于某一个主题或者活动的详细数据宽表,为上层数据产品、服务提供公共指标。
dim 维表,例如国家代码+国家名,城市代码+城市名 之类的维表
ADS ADS是数据集市,DW层只有某一维度的明细数据,通过需求文档关联各维度的DW数据,求出最终的业务数据,提供给需求方。

在这里插入图片描述

  1. 资源准备(MaxCompute、DataWorks、RDS等)
  2. 配置数据上云、数据精炼任务,配置任务监控
  3. ODS(hive)-> 数据清洗(去重、脏数据)-> 数据开发(离线计算hive/spark sql)、流式开发(stream)、算法开发  -> 数据服务、报表/BI、智能应用

数据分层

1、贴源数据层ODS

原样copy业务系统的数据表过来,可以放在hive、maxcompute里,不做清洗和加工。

从ETL变为了ELT,抽取(extract)、转换(transform)、加载(load)。

入库后数据表命名规则:ods_业务系统简称_表名_dt/df

该层还可能包含技术缓冲表,是为了在数据加载中处理异常及类型转换时的临时表(表命名建议为xxx_tmp)。

抽取主要有2种:增量、全量。

  • 实体表:每日全量
  • 维度表:每日全量(不变的性别、民族等字典表可只全量一份)
  • 事务型事实表:生成后不变。每日增量,按时间创建分区。
  • 周期型事实表:每日新增及变化量更新,包括了当日新增和修改。
  • 举例可见:https://blog.csdn.net/weixin_43599377/article/details/106446191

2、统一数仓层DW

要把原本的关系型表结构,进行一定程度的维度退化,即表的合并,虽数据有些冗余,但能减少多个跨表操作的计算开销。
同步任务中可以走个分支写入一些日志,便于排查异常和问题。

维度建模是Kimball在《数据仓库工具箱》中所倡导的数据建模方法,也是目前在大数据场景下推荐使用的建模方法。因为维度建模以分析决策的需求出发来构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询性能

实体表、维表:统一以dwd/dim开头,dwd/dim_主题域_实体名_dt/df

事实表(主键、外键-维表、度量A、度量B...)

  • 明细数据层DWD:建议按数仓常见的维度建模来做,实现对贴源数据按主题域进行分类。
    • 比如银行业务:通常分为7-10个主题,包括当事人、协议、事件、渠道、产品主题等。
    • 比如建筑业务:包括项目、设备、物资、劳务人员、财务、主题等。
  • 汇总数据层DWS:汇总表,形成宽表,用于数据集市
    • 完成基础数据的预连接、预计算、预汇总,以应用为驱动。
    • 对多个应用中需要重复汇总计算的部分进行提炼的共性加工数据,做到一次加工,多次使用。
    • 为应用使用生成的计算结果表、可冗余,如按某一个维度进行的汇总表。

3、标签数据层TDM(可选)

面向对象建模,通过ID-Mapping把各业务板块、业务过程中的同一对象的数据打通。

数澜建议按“人、物、关系”来划分一级类目,再按照业务特性对每个一级类目进行二级、三级的拆分,通常我们建议将标签类目划分到三级

  • 基础标签:直接对应的业务表字段,如性别、城市

  • 统计标签:标签定义含有常规的统计逻辑,开发时需要通过简易规则进行加工,如年增长率、月平均收益率

  • 算法标签:标签定义含有复杂的统计逻辑,开发时需要通过算法模型进行加工,如企业信用分、预测年销量

4、应用数据层ADS

为固定报表等生成的数据表,一般会在RDS库里做持久化。

举例:https://blog.csdn.net/weixin_43599377/article/details/106446323


5、数据服务

主要有2类3形式。

一是实时数据服务。包括:数据查询,授权其他应用直接连接基础数据平台进行数据访问;API数据访问,将固化的数据访问需求封装为服务的方式发布,其他应用可以通过API服务进行数据访问。

二是批量数据服务。主要是数据供给,即将批量数据卸载为数据文件,通过数据交换平台向其他应用提供批量数据。

猜你喜欢

转载自blog.csdn.net/wildboy2001/article/details/106257000