数仓设计核心知识点

一、分层

Q1:什么是分层?

  • 本质:规范化数据的处理流程。
  • 实现:每一层在Hive中就是一个数据库。

Q2:为什么要分层?

  • 清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
  • 数据血缘追踪:简单来讲可以这样理解,我们最终给业务诚信的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
  • 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
  • 把复杂问题简单化:一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。
  • 屏蔽原始数据的异常对业务的影响:不必改一次业务就需要重新接入数据

Q3:怎么分层?

  • ODS:原始数据层/操作数据层,最接近与原始数据的层次,数据基本与原始数据保持一致(数据备份)

  • DW:数据仓库层,实现数据的处理转换

    • DWD:实现ETL(数据清洗)

    • DWM:轻度聚合(数据聚合)

    • DWS:最终聚合(数据统计)

  • ADS/APP/DA:数据应用层

二、建模

Q1:什么是建模?

  • 本质:决定了数据存储的方式,表的设计

Q2:为什么要建模?

  • 大数据系统需要数据模型方法来帮助更好地组织和存储数据,以便在性能、成本、效率和质量之间取得最佳平衡。

  • 性能:良好的数据模型能帮助我们快速查询所需要的数据,减少数据的I/O吞吐

  • 成本:良好的数据模型能极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低大数据系统中的存储和计算成本

  • 效率:良好的数据模型能极大地改善用户使用数据的体验,提高使用数据的效率

  • 质量:良好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性

Q3:有哪些建模方法?

  • ER模型:从全企业的高度设计一个 3NF 【三范式】模型,用实体关系模型描述企业业务,满足业务需求的存储

  • 维度模型:从分析决策的需求出发构建模型,为分析需求服务,重点关注用户如何更快速的完成需求分析,具有较好的大规模复杂查询的响应性能

  • Data Vault:ER 模型的衍生,基于主题概念将企业数据进行结构化组织,并引入了更进一步的范式处理来优化模型,以应对源系统变更的扩展性

  • Anchor:一个高度可扩展的模型,核心思想是所有的扩展知识添加而不是修改,因此将模型规范到 6NF,基本变成了 k-v 结构化模型

Q4:构建维度模型步骤?

  • 1.选择业务过程:你要做什么?

  • 2.声明粒度:你的分析基于什么样的颗粒度?

  • 3.确认环境的维度:你的整体有哪些维度?

  • 4.确认用于度量的事实:你要基于这些维度构建哪些指标?

Q5:具体的实施流程是什么?

  • 1.需求调研:业务调研和数据调研
    • 数据调研:数据的内容是什么

    • 业务调研:明确分析整个业务实现的过程

  • 2.划分主题域:面向业务将业务划分主题

  • 3.构建维度总线矩阵:明确每个业务主题对应的维度关系

        • 主题域:主题时间维度地区维度
          工单主题YY
          回访主题NY
          物料主题YN
  • 4.明确指标统计:明确所有原生指标与衍生指标

    • 工单主题:安装工单个数、维修工单个数……

    • 回访主题:用户满意个数、不满意个数、服务态度不满意个数、技术能力不满意个数

  • 5.定义事实与维度规范

    • 分层规范

    • 开发规范

  • 6.代码开发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值