数据仓库工具箱—读书笔记02(Kimball维度建模技术概述04、使用一致性维度集成)

server/2024/12/27 9:36:32/

Kimball维度建模技术概述

记录一下读《数据仓库工具箱》时的思考,摘录一些书中关于维度建模比较重要的思想与大家分享🤣🤣🤣

在这里插入图片描述

第二章前言部分作者提到:技术的介绍应该通过涵盖各种行业的熟悉的用例展开(赞同哈哈 确实比抽象地讲解概念要好理解🤣🤣🤣)。

书中从第三章开始是通过各行业的用例去讲解维度建模,第二章则是维度建模技术的总体介绍(很多概念,挺抽象的🤣🤣🤣)。

前言部分作者也有提到:我们并不期望您一开始就从头到尾阅读本章,但希望您能将本章作为所提供的技术参考。本节介绍的技术,在所有维度设计工作中都需要考虑。本书的每一章几乎都会涉及本节所介绍的概念。

01、基本概念
02、事实表技术基础
03、维度表技术基础

书接上回~(第二章概念比较抽象,博主尽量解释的简单、详细点哈哈)🤣🤣🤣🤣🤣🤣


使用一致性维度集成

  • Kimball维度建模技术概述
    • 2.4.1 一致性维度
    • 2.4.2 缩减维度
    • 2.4.3 跨表钻取
    • 2.4.4 价值链
    • 2.4.5 企业数据仓库总线架构
    • 2.4.6 企业数据仓库总线矩阵
    • 整理不易🤣 您的支持就是我创作的最大动力💛


2.4.1 一致性维度

一致性维度是干嘛的?🤨 —— 核心🎨是为企业数据仓库架构提供一致性和复用性(一次设计,可供多个事实表复用,减少开发和维护成本)。

一致性维度是指跨多个事实表和数据集共享的一组维度。通过统一的结构和内容,这些维度确保在不同业务过程之间进行一致的分析和比较。

在这里插入图片描述

举个栗子😂:

  • 时间维度:销售事实表和库存事实表共享相同的时间维度,支持按日期分析销售额和库存水平的变化。

  • 客户维度:在销售事实表和服务事实表中,客户维度保持一致,可以分析客户购买行为与售后服务的关系。


  • 通过共享维度,可以对多个业务过程进行关联分析,例如按客户对销售和服务进行综合评估。
  • ❄❄❄一次设计,可供多个事实表复用,减少开发和维护成本。

2.4.2 缩减维度

在维度建模中,缩减维度(Shrunken Dimensions)原始维度的一个简化版本,包含维度的子集数据

缩减维度 通常基于 一致性维度 创建,用于支持不同的聚合粒度需求


Demo🤣🤣🤣:

  • 原始时间维度:
    包含“年”、“月”、“日”级别的详细信息。

    时间键星期
    20240101202411月1日星期一
    20240102202411月2日星期二
  • 缩减时间维度:
    只保留“年”、“月”数据,用于年度或月度分析。

    年月键
    20240120241
    20240220242

Tips🤣:

  • 属性减少:原始维度的部分字段被移除,只保留分析需求中关键的字段。
  • 特定业务场景:常用于跨过程汇总分析,或将细粒度维度压缩成高粒度维度。
  • 跨过程分析:用于跨多个事实表的对比,例如年度客户购买行为的对比。
  • 性能优化:减少数据的存储量,加快查询速度。

2.4.3 跨表钻取

跨表钻取指的是用户在进行数据分析时,通过一个表中的数据查找到相关的、不同表中的数据,从而得到更加全面的信息。

这术语太专业了,简单讲其实就是表之间join😂😂😂

Demo:

销售事实表 (sales_fact)

销售ID销售金额产品ID
11000101
2500102

产品维度表 (product_dim)

产品ID产品名称
101手机
102电视

跨表钻取
从销售事实表钻取,基于产品ID获取产品名称:

销售金额产品名称
1000手机
500电视

销售事实表 (sales_fact)

销售ID销售金额客户ID
11000201
2500202

客户维度表 (customer_dim)

客户ID客户名称
201李明
202王芳

跨表钻取
从销售事实表钻取,基于客户ID获取客户名称:

销售金额客户名称
1000李明
500王芳

Tips:
与钻取(Drill Down 也叫 下钻)的区别:

  • 钻取(Drill Down): 是指在同一个表内,基于某个维度的细节层次查看更深入的数据。比如从年数据钻取到月数据,再到日数据。
  • 跨表钻取: 是指跨越不同的表,通过共同字段或关系来查看相关的数据。通常涉及多个表的联合。

2.4.4 价值链

价值链(Value Chain)指的是企业在生产和交付产品或服务的过程中,从原材料获取到最终产品或服务交付给客户的各个环节

操作型源系统(Operational Source Systems)通常会为价值链上的每个步骤建立事务或快照,以便捕捉和存储与日常业务操作相关的数据。

Demo:

在企业的价值链中,每个环节都会生成操作数据。这些数据通常会通过操作型源系统记录,进而转入数据仓库

采购事务表(purchase_fact:记录每个采购交易的详细信息。

采购ID采购金额采购日期供应商ID
110002024-01-01301
25002024-01-02302

采购快照表(purchase_snapshot:记录某一时间点的采购状态。

时间供应商ID库存量
2024-01-01301500
2024-02-01302450

生产原子事实表(production_fact:记录每个生产批次的信息。

生产ID生产数量生产日期产品ID
11002024-01-01101
22002024-01-02102

生产快照表(production_snapshot:记录某一时间点的生产状态。

时间产品ID生产数量
2024-01-01101500
2024-02-01102600

销售原子事实表(sales_fact:记录每笔销售交易的详细信息。

销售ID销售金额销售日期客户ID产品ID
110002024-01-01201101
25002024-01-02202102

客户服务原子事实表(customer_service_fact:记录每个客户服务请求的详细信息。

服务ID服务类型服务日期客户ID
1退货2024-01-01201
2咨询2024-01-02202

服务快照表(customer_service_snapshot:记录某一时间点的客户服务状态。

时间客户ID服务请求数量
2024-01-012011
2024-02-012022

2.4.5 企业数据仓库总线架构

企业数据仓库总线架构(Enterprise Data Warehouse Bus Architecture)是指在构建企业数据仓库时,采用一种以标准化维度模型为核心的架构。

核心思想💕是数据仓库中的不同业务领域(例如销售、财务、生产等)通过共享的维度(如时间、产品、客户等)连接起来,从而形成一个统一的数据仓库架构

在这里插入图片描述

  • 共享维度:不同业务领域之间共享公共的维度,如时间维度客户维度产品维度等。共享的维度可以实现不同的业务数据进行统一分析和汇总。
  • 业务领域事实表:每个业务领域都有对应的事实表,记录该领域的操作数据(如销售额、生产数量等)。这些事实表通过共享的维度与其他领域的事实表进行连接。

Demo:

  • 共享维度表

    • Time Dimension(时间维度):记录时间的详细信息,如年份、季度、月、日等。
    • Customer Dimension(客户维度):记录客户的详细信息,如客户ID、姓名、地址等。
    • Product Dimension(产品维度):记录产品的详细信息,如产品ID、产品名称、类别等。
  • 各业务领域的事实表

    • Sales Fact(销售事实表):记录每笔销售交易的详细信息,包含销售额、客户ID、产品ID、销售日期等。
    • Purchase Fact(采购事实表):记录每笔采购交易的详细信息,包含采购金额、供应商ID、产品ID、采购日期等。
    • Production Fact(生产事实表):记录生产过程中每个批次的产量和生产成本,包含生产数量、产品ID、生产日期等。

总线架构的工作方式
在总线架构中,所有的事实表都通过共享维度表进行连接。

  • 销售事实表中的客户ID会链接到客户维度表中的客户ID
  • 销售事实表中的产品ID会链接到产品维度表中的产品ID
  • 销售事实表中的时间ID会链接到时间维度表中的时间ID

在这里插入图片描述
企业数据仓库总线架构通过标准化共享维度和跨业务领域的事实表连接,帮助企业整合来自不同业务领域的数据,从而实现统一的数据分析和报告。


2.4.6 企业数据仓库总线矩阵

企业数据仓库总线矩阵(Enterprise Data Warehouse Bus Matrix)是指在数据仓库总线架构中,通过一个矩阵来明确每个维度与各个业务领域事实表之间的关系

在这里插入图片描述

一言以蔽之😂——明确不同的业务领域(如销售、采购、生产等)和共享维度(如时间、产品、客户等)之间的关系。

总线矩阵可以看作是一个二维表格,其中:

  • 代表数据仓库中的业务领域(如销售、采购、生产等)。
  • 代表所有的共享维度(如时间、产品、客户等)。

在这里插入图片描述

在矩阵中的每个单元格,用来表示某个业务领域是否与某个共享维度相关联。如果某个业务领域需要使用该维度进行分析,那么这个单元格就会被标记。

在这里插入图片描述

  • 业务领域(行)

    • 销售(Sales)
    • 采购(Purchase)
    • 生产(Production)
    • 客户服务(Customer Service)
  • 共享维度(列)

    • 时间维度(Time)
    • 产品维度(Product)
    • 客户维度(Customer)

总线矩阵

业务领域时间维度产品维度客户维度
销售(Sales)
采购(Purchase)
生产(Production)
客户服务(Service)

Tips🤣🤣🤣:

  • 清晰的维度使用规划:通过矩阵清晰标识哪些维度是跨业务领域共享的,哪些是特定领域使用的,有助于保持数据的一致性和结构的清晰。

在这里插入图片描述

  • 便于扩展和调整:如果以后需要新增一个业务领域或修改已有的维度,矩阵可以迅速帮助你识别影响,进行相应调整。
  • 跨业务领域的分析:通过共享的维度,数据仓库能够实现不同业务领域之间的联合分析,比如对销售和生产数据的综合分析。

在这里插入图片描述

企业数据仓库总线矩阵有助于规划和组织数据仓库中的维度和事实表的结构,确保所有业务领域都能够使用共享维度进行分析。


整理不易🤣 您的支持就是我创作的最大动力💛


http://www.ppmy.cn/server/153587.html

相关文章

短视频运营行业该如何选择服务器?

在互联网快速发展的时代,短视频行业也应运而生,企业为了保证用户能够浏览流畅且稳定的短视频,则需要选择一台合适的服务器来运行相关业务,本文就来探讨一下短视频运营行业该如何选择服务器吧! 短视频行业一般需要处理大…

API 接口如何确保数据的安全?

在API接口的对接中,确保数据的安全性是至关重要的。以下是一些关键措施,可以帮助实现这一目标: 一、认证与授权 API密钥:为每个调用方分配唯一的API密钥,客户端在请求时携带该密钥,服务器端验证其有效性。…

6、MHA

MHA含义 什么MHA,master high availability 建立在主从复制基础之上的故障切换的软件系统。 主从复制的单点问题: 当主从复制当中,主服务器发生故障,会自动切换到一台从服务器,然后把从服务器升格为主,继续主从的架…

十三、e2studio VS STM32CubeIDE之“单独下载“程序

目录 一、概述 二、参考资料 三、各家IDE的"在线调试"和"单独下载"按钮 四、e2studio增加"单独下载"按钮 4.1 新建外部工具 4.2 增加.jlink脚本 4.3 增加外部工具---"单独下载"按钮 4.3.1 增加前进后退按钮 4.4 增加"单…

如何使用命令行设置Java当前环境是最新版本的JDK

一、环境变量的优先级 在Windows中,环境变量的设置顺序是有优先级的。 如果 PATH 环境变量已经在系统级别或用户级别被设置,并且包含了其他Java版本的路径。 那么即使你在当前会话中添加了新的路径,它也可能不会成为第一个被识别的路径。 …

centos-stream9系统安装docker

如果之前安装过docker需要删除之前的。 for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo yum -y remove $pkg; done 安装yum-utils工具: dnf -y install yum-utils dnf-plugins-core 设置存储库&…

【IMU:视觉惯性SLAM系统】

视觉惯性SLAM系统简介 相机(单目/双目/RGBD)与IMU结合起来就是视觉惯性,通常以单目/双目IMU为主。 IMU里面有个小芯片可以测量角速度与加速度,可分为6轴(6个自由度)和9轴(9个自由度)IMU,具体的关于IMU的介…

Ubuntu vi(vim)编辑器配置一键补全main函数

1.打开对应的配置文件 vi ~/.vim/snippets/c.snippets 2.按G将光标定位到文件末尾 3.按i进入插入模式 以tab键开头插入下的内容,空行也要加 tab键 4.:wq保存退出 5.再打开任意一个新的 .c文件后,插入模式输入 main 然后按tal键就能补全了