[大数据之数仓建设理论】01 大数据维度建模理论

本文详细介绍了如何通过构建数据仓库,包括实体关系模型、数据规范化方法、维度模型的使用,以及事务事实表、周期快照事实表和累积型快照事实表的设计流程,旨在帮助企业高效组织和管理大规模数据,提升数据分析和决策支持的性能和质量。
摘要由CSDN通过智能技术生成

【文章说明】:本篇将介绍通过以下步骤,指导离线数仓建设,通过离线数仓建设,有效地组织和管理海量、多样化的数据,并为数据分析和决策提供支持

【思维导图】:

【文字大纲内容】:

  • 概述

    • 概念

      • 数据仓库是一个为数据分析而设计的企业级数据管理系统
    • 核心架构

    • 作用&意义

      • 数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。只有将数据有序的组织和存储起来之后,数据才能得到高性能、低成本、高效率、高质量的使用
        • 高性能:良好的数据模型能够帮助我们快速查询所需要的数据
        • 低成本:良好的数据模型能减少重复计算,实现计算结果的复用,降低计算成本
        • 高效率:良好的数据模型能极大的改善用户使用数据的体验,提高使用数据的效率
        • 高质量:良好的数据模型能改善数据统计口径的混乱,减少计算错误的可能性
  • 建模方法论

    • ER模型

      • 实体关系模型将复杂的数据抽象为两个概念——实体和关系。实体表示一个对象,例如学生、班级,关系是指两个实体之间的关系,例如学生和班级之间的从属关系
      • 数据库规范化
        • 第一范式
          • 属性不可切割
        • 第二范式
          • 不能存在部分函数依赖
        • 第三范式
          • 不能存在传递函数依赖
        • 函数依赖
          • 完全函数依赖
            • 通过AB能得出C,但是AB单独不能得出C,那么说C完全依赖于AB
          • 部分函数依赖
            • 通过AB能得出C,通过A也能得出C,或者通过B也能得出C,那么说C部分依赖于AB
          • 传递函数依赖
            • 通过A得到B,通过B得到C,但是C得不到A,那么说C传递依赖于A
    • 维度模型

      • 定义:维度模型将复杂的业务通过事实和维度两个概念进行呈现。事实通常对应业务过程,而维度通常对应业务过程发生时所处的环境。注:业务过程可以概括为一个个不可拆分的行为事件,例如在线教育交易中的下单,付款,加购等,都是业务过程
      • 示例
    • 维度建模理论之事实表

      • 概述
        • 事实表中的每行数据代表一个业务事件(下单、支付、退款、评价等),包含与该业务过程有关的维度引用(维度表外键)以及该业务过程的度量(通常是可累加的数字类型字段)
      • 特点:“细长”
      • 分类
        • 事务事实表
          • 事务事实表用来记录各业务过程,它保存的是各业务过程的原子操作事件,即最细粒度的操作事件。粒度是指事实表中一行数据所表达的业务细节程度
          • 设计流程:选择业务过程->声明粒度->确认维度->确认事实
            • 选择业务过程
              • 业务过程可以概括为一个个不可拆分的行为事件,例如在线教育交易中的下单,付款,加购等,都是业务过程。通常情况下,一个业务过程对应一张事务型事实表。
            • 声明粒度
              • 业务过程确定后,需要为每个业务过程声明粒度。即精确定义每张事务型事实表的每行数据表示什么,应该尽可能选择最细粒度,以此来应对各种细节程度的需求
                • 典型的粒度声明如下:订单事实表中一行数据表示的是一个订单中的一门课程
            • 确认维度
              • 确定维度具体是指,确定与每张事务型事实表相关的维度有哪些。确定维度时应尽量多的选择与业务过程相关的环境信息。因为维度的丰富程度就决定了维度模型能够支持的指标丰富程度
            • 确认事实
              • 此处的“事实”一词,指的是每个业务过程的度量值(通常是可累加的数字类型的值,例如:次数、个数、件数、金额等)
            • 经过上述四个步骤,事务型事实表就基本设计完成了。第一步选择业务过程可以确定有哪些事务型事实表,第二步可以确定每张事务型事实表的每行数据是什么,第三步可以确定每张事务型事实表的维度外键,第四步可以确定每张事务型事实表的度量值字段
        • 周期型快照事实表
          • 周期快照事实表以具有规律性的、可预见的时间间隔来记录事实,主要用于分析一些存量型(例如购物车存量,账户余额)或者状态型(空气温度,行驶速度)指标
          • 设计流程:确定粒度->确认事实
            • 确定粒度
              • 周期型快照事实表的粒度可由采样周期和维度描述,故确定采样周期和维度后即可确定粒度。采样周期通常选择每日。维度可根据统计指标决定,例如指标为统计每个用户每个科目的购物车存量,则可确定维度为用户和科目。确定完采样周期和维度后,即可确定该表粒度为每日-用户-科目
            • 确认事实
              • 事实也可根据统计指标决定,例如指标为统计每个用户每个科目的购物车存量,则事实为购物车存量
        • 累积型快照事实表
          • 累积型快照事实表是基于一个业务流程中的多个关键业务过程联合处理而构建的事实表,如交易流程中的试听、下单、支付等业务过程。累积型快照事实表通常具有多个日期字段,每个日期对应业务流程中的一个关键业务过程(里程碑)
          • 设计流程:选择业务过程→声明粒度→确认维度→确认事实
            • 选择业务过程
              • 选择一个业务流程中需要关联分析的多个关键业务过程,多个业务过程对应一张累积型快照事实表
            • 声明粒度
              • 精确定义每行数据表示的是什么,尽量选择最小粒度
            • 确认维度
              • 选择与各业务过程相关的维度,需要注意的是,每各业务过程均需要一个日期维度
            • 确认事实
              • 选择各业务过程的度量值
    • 维度建模理论之维度表

      • 概述
        • 维度表围绕业务过程所处的环境进行设计,主要包括一个主键和各种维度字段,维度字段称为维度属性
      • 设计步骤
        • 确定维表
          • 在设计事实表时,已经确定了与每个事实表相关的维度,理论上每个相关维度均需对应一张维度表
        • 确定主维表和相关维表
          • 此处主维表和相关维表均指业务系统中与某维度相关的表,例如业务系统中与课程相关的表有course_info,chapter_info,base_subject_info,base_category_info,video_info等,其中course_info就称为课程维度的主维表,其余表称为课程维度的相关维表。维度表的粒度通常与主维表相同。
        • 确定维度属性
          • 维度属性主要来自于业务系统中与该维度对应的主维表和相关维表。维度属性可直接从主维表或相关维表中选择,也可通过进一步加工得到
            • 尽可能生成丰富的维度属性
            • 尽量不使用编码,而使用明确的文字说明,一般可以编码和文字共存
            • 尽量沉淀出通用的维度属性
      • 设计要点
        • 规范化
          • 优点:减少数据冗余,增强数据的一致性
            • 雪花模型
        • 反规范化
          • 优点:减少join操作,提高查询性能
            • 星型模型
      • 拓展
        • 全量快照表
          • 适用范围:数据量小且变化频率较高的数据
            • 通过生效开始日期<=某个日期且生效结束日期>=某个日期,能够得到某个时间点的数据全量切片
        • 拉链表
          • 适用范围:数据会发生变化,但是变化频率并不高的维度
        • 多值维度
          • 解决方案:降低事实表的粒度,例如将订单事实表的粒度由一个订单降低为一个订单中的一门课程
          • 思路:调整两边的粒度,尽量保证一对一
        • 多值属性
          • 解决方案:将多值属性放到多个字段,每个字段对应一个属性。这种方案只适用于多值属性个数固定的情况
          • 思路:调整两边的粒度,尽量保证一对一
  • 29
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值