数仓建模篇(三)

维度建模技术概述

1.基本概念

  • 收集业务需求与数据实现

    • 理解业务需求+作为基础的源数据的实际情况

      • 与业务代表交流发现需求

    • 理解关键性能指标、竞争性商业问题、决策制定过程、支持分析需求的目标

    • 源数据专家沟通,构建高层次数据分析访问数据可行性

  • 协作维度建模研讨

    • 维度模型应该由主题专家与企业数据管理代表合作设计而成

    • 工作由数据建模者负责

      • 模型应该通过与业务代表开展一系列高级别交互讨论获得

    • 维度建模不由那些不懂业务以及业务需求的人来设计

  • 4步骤维度设计过程

    • 选择业务过程

      • 业务过程是组织完成的操作性活动

        • 获得订单、处理保险索赔

      • 业务过程事件建立或获取性能度量,并转换为事实表中的事实

      • 多数事实表关注某一业务过程

      • 过程定义了后续的工作

      • 每个业务过程对应企业数据仓库总线矩阵的一行

    • 声明粒度

      • 声明粒度是维度设计的重要步骤

      • 选择维度或事实前必须声明粒度

      • 从原子粒度开始设计

      • 同一个事实表不要混用多种不同的粒度

    • 确认维度

      • 维度表包含BI应用所需要的用于过滤及分类事实的描述性属性

      • 掌握事实表的粒度,就能够将所有存在的维度区分开

      • 主要工作都放着数据管理与维度表的开发

    • 确认事实

      • 一个事实表行与按照事实表粒度描述的度量事件之间存在一对一关系

      • 事实表对应一个物理可观察的事件

    • 星型模型与OLAP多维数据库

    • 方便地扩展到维度模型

      • 当事实与已存在的事实表粒度一致时,可以创建新列

      • 可以在维度表上通过新列添加属性

      • 事实表粒度更原子化=》在维度表上添加属性,然后以更细的粒度重置事实表,小心保存事实表与维度表的列名

2.事实表技术基础

  • 事实表结构

    • 发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中

    • 事实表行对应一个度量事件

    • 包含外键、退化维度键、日期、时间戳等

    • 查询请求的目标是基于事实表开展计算和聚合操作

  • 可加、半可加、不可加事实

    • 可加性度量可以按照与事实表关联的任意维度汇总

    • 半可加变量可以对某些维度汇总,但不能对所有维度汇总=》差额

  • 事实表中的空值

    • 事实表可以存在空值度量

    • 事实表的外键不能存在空值

  • 一致性事实

    • 需要比较或计算不同事实表中的事实,应保证针对事实的技术定义是相同的

    • 如果不同的事实表定义是一致的,则这些一致性事实应该命名相同,如果不兼容,则命名不同,以不同的命名用于告诫业务用户和BI应用

  • 事务事实表

    • 事务事实表的一行对应空间或时间上某点的度量事件

    • 原子事务粒度事实表是维度化及可表达的事实表,这类健壮的维度确保对事务数据的最大化分片和分块

    • 可以是稠密的,也可以是稀疏的,仅当存在度量时才会建立行

    • 事实表总是包含一个与维度表关联的外键,也可能包含精确的时间戳和退化维度键

  • 周期快照事实表

    • 每行汇总在某一标准周期,如某一天、某周、某月的多个度量事件

    • 粒度是周期性的,而不是个体的事务

    • 周期性快照通常包含许多实时

  • 累计快照事实表

    • 汇总了发现在过程开始和结束之间可预测步骤内的度量事件

      • 关键步骤都含日期外键

    • 累计快照事实表中的一行,对应某一具体的订单

    • 包含维度、退化维度的外键

  • 无事实的事实表

    • 某些事件仅仅记录一系列某一时刻发生的多维实体

      • 某一天中发生的学生参加课程事件,具体课程内容无记录

  • 聚集事实表或OLAP多维数据库

    • 简单的数字化上卷操作,目的是提高查询效率

    • 聚集事实的构建=》多个原子事实表的汇总

  • 合并事实表

    • 以相同粒度表示的事实合并为一个单一的合并事实表

3.维度表技术基础

  • 维度表结构

    • 每个维度表都包含单一的主键列

    • 维度表的主键作为事实表的外键

    • 维度表行的描述环境与事实表行完全对应

    • 扁平型非规范表,包含大量的低粒度的文本属性

      • 操作代码与指示器可作为属性对待

      • 最强有力的维度属性采用冗长的描述填充

  • 维度代理键

    • 区别于自然键

    • 以值1开始

  • 自然键、持久键和超自然键

    • 雇员重新工作,雇员号码可能变更(自然键)

    • 数仓为该雇员创建单一键,需要建立新的持久键,雇员号保持持久性,不会发生改变。

      • 有时称为持久性超自然键

      • 独立于原始的业务系统过程,并从整数1开始进行分配

  • 下钻

    • 商业用户分析数据的最基本的方法

  • 退化维度

    • 维度除了主键外没有其他内容

      • 发票包含多个数据项

      • 常见于交易和累计快照事实表

  • 非规范扁平维度

    • 抵制操作型数据库的设计要求

      • 简化及速度

  • 多层次维度

    • 多数维度包含不止一个自然层次

      • 日期

        • 财务周期层次从天到周进行划分

        • 天、月、年

      • 位置密集维度

        • 多个地理层次

  • 文档属性的标识与指示器

    • 命名缩写=》解释=》操作码值作为不同的表示不同描述性维度属性

  • 维度表中的空值属性

    • 当给定维度行没有被全部填充

      • 使用unkown or not applicable

  • 日历日期维度

    • 根据日期、月份、财务周期、日历上的特殊日期进行导航

    • YYYYMMDD 而不是 代理健

    • time-of-day外键

  • 扮演角色的维度

    • 单个物理维度可以被事实表多次引用,每个引用连接逻辑上存在差异的角色维度

  • 杂项维度

    • 事务型商业过程通常产生一系列混杂的、低粒度的标识和指示器

    • 3个yes or no=》2 * 2 * 2 +1种形式

  • 雪花维度

    • 当维度表中的层次关系是规范的时,低粒度属性作为辅助表通过属性键连接到基本维度表

    • 这一过程包含多维度表层次,建立的多层级结构被称为雪花模式

    • 雪花模式查询难度大并且查询性能差

  • 支架维度

    • 维度包含对其他维度的引用

      • 银行账户维度可以引用表示开户日期的维度

4.使用一致性维度集成

  • 一致性维度

    • 当不同维度表的属性具有相同列名和领域内容时,称维度表具有一致性

    • 利用一致性维度属性与每个事实表关联,可将来自不同事实表的信息合并到同一报表中

  • 缩减维度

    • 缩减维度是一种一致性维度,由基本维度的列与行的子集构成

    • 当构建聚集事实表时需要缩减上卷维度

  • 跨表钻取

    • 当每个查询的行头包含相同的一致性属性,使不同的查询能针对两个或多个事实表进行查询

  • 价值链

    • 价值链用于区分组织中主要业务过程的自然流程

      • 销售商的价值链

        • 购买、库存、零售额等

  • 企业数据仓库总线架构

    • 通过关注业务过程将DW/BI规划过程分解为可管理的模块,通过重用跨不同过程的标准化一致性维度发布实现集成

  • 企业数据仓库总线矩阵

    • 设计并与企业数据仓库总线架构交互的基本工具

    • 矩阵的行表示业务过程

    • 列表示维度

  • 总线矩阵实现细节

    • 更加粒度化的总线矩阵

    • 扩展每个业务行以展示特定事实表或OLAP多维数据库

  • 机会/利益相关方矩阵

    • 替换包含业务功能的维度列规划不同的矩阵

    • 确定矩阵点以表示哪些业务功能与哪些业务过程行相关

5.处理缓慢变化维度属性

  • 类型0

    • 原样保留

  • 类型1

    • 重写

  • 类型2

    • 添加新行

  • 类型3

    • 添加新属性

  • 类型4

    • 增加微型维度

  • 类型5

    • 增加微型维度及类型1支架

  • 类型6

    • 增加类型1属性到类型2维度

  • 类型7

    • 双类型1和类型2维度

6.处理维度层次关系

  • 固定深度位置的层次

    • 多对一的一种

      • 产品到品牌,再到分类,到部门

    • 层次级别作为维度表中的不同位置属性出现

  • 轻微参差不齐/可变深度层次

    • 层次深度优先,通常包含3-6层

  • 具有层次桥接表的层次不齐。。

    • 不能替换层次不齐层次、不支持对自身层级结构的共享。。

  • 具有路径字符属性的可变深度层次

    • 在维度中采用路径字符属性,以避免使用桥接表表示可变深度层次

7.高级事实表技术

  • 事实表代理键

    • 作为事实表的唯一主键列

    • 在ETL中,用作事实表的直接标识符,不必查询多个维度

    • 允许将事实表更新操作分解为风险更小的插入和删除操作

  • 蜈蚣事实表

    • 多对一层次的每层建立不同的规范化维度

      • 日期、月份、季度等维度,并将所有外键包含在一个事实表中

  • 属性或事实的数字值

    • 将数字值即建模为维度又建模为属性是非常有益的

  • 日志、持续时间事实

    • 累积快照事实表获取多个过程里程碑,每个都包含日期外键并可能包含日期、时间戳

      • 流水线步骤包含上百个延迟,根据过程的开始时间点为每个度量步骤存储一个时间延迟

  • 头、行事实表

    • 操作型交易系统通常包括事务头指针行,头指针行与多个事务行关联

  • 分配的事实

    • 头指针、行事务数据与对应的事实具有不同粒度这样的情况经常发生

      • 头表示货运费用

  • 利用分配建立利润与损失事实表

    • 利润方程=收入-开销=利润

      • 理想地实现利润方程的事实表应为原子收入事务粒度并包含许多开销项

  • 多种货币事实

    • 事实表有一个货币维度用于区分事务的真正货币

  • 多种度量事实单位

    • 某些业务过程需要事实同时以多种度量单位表示

      • 将事实以工人的标准度量单位存储,同时存储标准度量与其他度量的转换系数

        • 不同用户,不同的转换系数

  • 年-日事实

    • 商业用户在事实表中通常需要年-日值

  • 多遍SQL以避免事实表间的连接

    • bi应用绝不应该跨事实表的外键处理两个事实表的连接操作

  • 针对事实表的时间跟踪

    • 事实表粒度

      • 事务级别

      • 周期快照

      • 累计快照

    • 加入行有效日期、行截止日期和当前行标识

  • 迟到的事实

    • 如果用于新事实行的多数当前维度内容无法匹配输入行的情况

8.高级维度技术

  • 维度表连接

    • 维度表包含其他维度表的引用

  • 多值维表与桥接表

    • 每个与事实表关联的维度都有一个与事实表粒度一致的单一值,单某些情况下,维度存在多个合理的多指

      • 健康体检有多个诊断

  • 随时间变化的多指桥接表

    • 多值桥接表可能基于缓慢变化2维度

  • 标签的时间序列行为

    • 跨时间范围的客户行为度量称为由这些行为标签构成的一种序列

  • 行为研究分组

    • 有时可以通过多次迭代分析,发现复杂的客户行为

    • 通过约束研究组表的列与目标模式中客户维度的持久建,该静态表可当成一种可应用于任何带有客户维度维度模式过滤器

  • 聚集事实作为维度属性

    • 选择聚集事实可以放入作为约束和作为表示报表的目标维度

  • 动态值范围

    • 动态值范围报表由一系列报表行头组成

  • 文本注释维度

    • 与其将自由注释作为事实表的文本度量,不如将它们存储与事实表之外的不同的注释维度

  • 多时区

    • 为在多时区应用中获得通用标准时间以及本地时间,设计双外键

  • 度量类型维度

  • 步骤维度

    • 序列过程通常在事务事实表中用不同行表示过程中的每一步

  • 热交换维度

    • 当同一个事实表与相同维度的不同拷贝交替匹配时,可使用热交换维度

  • 抽象通用维度

    • 包含单一通用位置维度而不是关于商店、仓库和客户维度嵌入式的地理属性

    • 避免使用抽象通用维度

  • 审计维度

    • 简单的审计维度可包含一个或多个数据质量的基本标识

  • 最后产生的维度

    • 实时系统中,有些维度包含通用位置值

9.特殊目的模式

  • 异构产品的超类与子类模式

    • 银行

      • 支票账户

      • 抵押贷款

      • 商业贷款

  • 实时事实表

    • 比传统的夜间批处理过程更频繁的被更新

  • 错误事件模式

    • 数仓中数据质量需要一个综合性系统,管理数据质量通过屏幕或过滤器来实现,用于测试从源系统到BI平台的数据。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数仓建模是为了支持数据仓库的设计和构建,从而实现对数据的有效管理和分析。以下是数仓建模的一般实施细则: 1. 需求收集和分析:与相关的业务部门和利益相关者合作,收集数据仓库的需求,并进行详细的需求分析。了解业务流程、数据来源和数据需求,确保数仓模型能够满足业务需求。 2. 数据源分析:对数据源进行详细的分析,了解数据的结构、关系和含义。对于每个数据源,确定其与其他数据源的关联关系和集成方式。 3. 建模方法选择:根据需求和数据源分析的结果,选择合适的建模方法。常见的建模方法包括维度建模(如星型模型、雪花模型)和规范化建模(如第范式)等。 4. 实体识别和关系定义:根据业务需求和数据源分析,确定数仓中的实体(如产品、客户、订单等),并定义它们之间的关系。这可以使用实体关系图、实体属性列表等方式进行描述。 5. 维度建模:对事实表和维度表进行设计。事实表包含业务度量(如销售金额、数量等)和外键(与维度表关联),而维度表包含维度属性(如时间、地理位置、产品等)。这可以使用维度模型设计工具(如星型模型工具)进行建模。 6. 规范化建模:根据第范式原则,将数据分解为多个规范化表。每个表代表一个实体或关系,具有唯一标识符和属性。这可以使用实体关系图和关系模式进行描述。 7. 数据粒度定义:定义事实表和维度表的数据粒度,即数据的最小可分析单元。这有助于确定数据聚合和查询的粒度,并支持不同层级的分析。 8. 层次结构设计:对维度表中的属性进行层次结构的设计,以支持分层分析。例如,时间维度可以按照年、季度、月份等进行层次划分。 9. 元数据管理:对数仓中的各个表、字段和关系进行元数据管理,以支持数据的理解、发现和文档化。这可以使用元数据管理工具或元数据仓库来实现。 10. 数据仓库架构设计:根据具体情况,设计数据仓库的架构,包括物理架构(如服务器、存储等)、ETL流程和工作流程等。确保数据仓库的可扩展性、性能和可靠性。 11. 模型验证和优化:对建立的数据仓库模型进行验证和优化,包括合理性检查、性能测试和数据一致性验证等。根据验证结果进行必要的调整和改进。 12. 实施和部署:根据设计和验证的结果,实施数据仓库模型,并将其部署到生产环境中。确保数据的准确性、完整性和安全性。 以上是数仓建模的一般实施细则,具体的实施过程可能会因组织和项目的需求而有所不同。在实施过程中,需要与相关的业务部门和技术团队密切合作,确保数仓建模能够满足业务需求,并具备良好的性能和可扩展性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值