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

news2024/12/27 6:43:30

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.coloradmin.cn/o/2266230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Matlab 和 R 语言的数组索引都是从 1 开始,并且是左闭右闭的

文章目录 一、前言二、主要内容三、小结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 在早期的计算机科学中,数组索引从 1 开始是很常见的。例如,Fortran 和 Pascal 等编程语言也采用了从 1 开始的索引。 这种索引…

Redis - Token JWT 概念解析及双token实现分布式session存储实战

Token 定义:令牌,访问资源接口(API)时所需要的资源凭证 一、Access Token 定义:访问资源接口(API)时所需要的资源凭证,存储在客户端 组成 组成部分说明uid用户唯一的身份标识time…

vue3使用video-player实现视频播放(可拖动视频窗口、调整大小)

1.安装video-player npm install video.js videojs-player/vue --save在main.js中配置全局引入 // 导入视频播放组件 import VueVideoPlayer from videojs-player/vue import video.js/dist/video-js.cssconst app createApp(App) // 视频播放组件 app.use(VueVideoPlayer)2…

数据库MySQL(1)

一、数据库简介 数据库是一类软件,其作用就是更加高效的组织数据,我们要讲的数据库软件是MySQL,MySQL所使用的是sql语句,SQL语句就是专门操作数据库的编程语言 数据库组织形式为:数据库→表→行→列 每一个数据库里…

启动动效流程梳理(二)

performSurfacePlacementNoTrace() 这一段从performSurfacePlacement()开始讲起,因为在trace中可以看到在SystemServer中,动效会从performSurfacePlacement这个tag点触发。这里的流程就是在窗口状态改变之后,会触发performSurfacePlacement流…

js-000000000000

1、js书写的位置 - 内部 <body> <!-- 习惯把 js 放到 /body 的后面 --> <script> console.log(这是内部 js 的书写位置) alert(内部js) </script> </body> <body><!-- 习惯把 js 放到 /body 的后面 --><script>console.log(这…

深度学习工作:从追求 SoTA 到揭示新现象

TLDR&#xff1a;主要讨论了从追求模型 SoTA 到揭示新现象的转变。通过几个例子&#xff0c;包括ACNet到RepVGG的发展&#xff0c;RIFE插帧、Film插帧&#xff0c;以及OpenAI的近期工作&#xff0c;阐述了这种转变的重要性。 知乎&#xff1a;黄哲威 hzwer链接&#xff1a;http…

USB Hub 检测设备

系列文章目录 xHCI 简单分析 USB Root Hub 分析 USB Hub 检测设备 文章目录 系列文章目录一、引言二、hub_eventshub_port_connect_changeusb_alloc_devusb_set_device_statehub_port_initusb_new_device 一、引言 USB Hub 检测设备 一文中讲到&#xff0c;当有 USB 插入时&…

upload-labs关卡记录13

这里和关卡12非常类似&#xff0c;唯一不同就是12关用到get方法&#xff0c;这里用到post方法。因此对应的截断方式也不一样&#xff0c;依旧是使用我们的bp进行抓包&#xff0c; 然后依旧是在upload后加上shell.php&#xff0c;这里用是为了hex时好区别我们要在哪里更改&#…

鸿蒙UI开发——使用WidthTheme实现局部深浅色

1、场景描述 在实际的应用开发中&#xff0c;我们可能需要在界面中局部应用深色或者浅色的界面样式&#xff0c;与全局的深色、亮色同时生效。场景例如&#xff1a;深/亮色预览。此时&#xff0c;我们可以使用WithTheme能力来达到我们的效果。 2、WithTheme WithTheme组件可…

骑砍2霸主MOD开发(26)-Mono脚本系统

一.游戏启动流程 <1.启动器Launcher 运行TaleWorlds.MountAndBlade.Launcher.exe启动C#程序Program,完成MOD列表页面的加载. public class Program {public static void Main(string[] args){#加载启动器GUI界面ResourceDepot resourceDepot new ResourceDepot();resource…

Gmsh有限元网格剖分(Python)---点、直线、平面的移动

Gmsh有限元网格剖分(Python)—点、直线、平面的移动和旋转 最近在学习有限元的网格剖分算法&#xff0c;主要还是要参考老外的开源Gmsh库进行&#xff0c;写一些博客记录下学习过程&#xff0c;方便以后回忆嘞。 Gmsh的官方英文文档可以参考&#xff1a;gmsh.pdf 但咋就说&a…

代码随想录Day39 198.打家劫舍,213.打家劫舍II,337.打家劫舍 III。

1.打家劫舍 力扣题目链接(opens new window) 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统…

01-linux基础命令

一、linux命令概述 命令 选项 参数命令 &#xff1a;就是命令名&#xff1b;选项&#xff1a;一般以 - 开头 比如&#xff1a;-a -p -r 等扩展命令的功能&#xff1b;参数&#xff1a;描述命令的目标&#xff0c;如我们要打开一个文件的话&#xff0c;参数就是要打开的文件名…

MATLAB符号计算-初步认识符号对象

1.1自顶向下的程序设计方法 【例1-1】列主元Guass消去法解方程组 a[2 -3 5 -1;1 4 2 -3;-2 4 -3 -7;8 0 -2 1]; b[3 7 -1 8]; sLZYguass(a,b) 代码还有问题&#xff0c;x11.1913,x21.1157,x30.8114,x40.0923 学长帮忙修改过&#xff1a; 反思&#xff1a; length()、size(…

支持向量机入门指南:从原理到实践

目录 1 支持向量机的基本概念 1.2 数学表达 2 间隔与支持向量 2.1 几何间隔 2.2 支持向量的概念 2.3 规范化超平面 2.4 支持向量的深入分析 2.4.1 支持向量的特征 2.4.2 支持向量的作用 2.4.3 支持向量的代数表示 2.5 KKT条件 3 最优化问题 3.1 问题的形成 3.2 规…

快速汇总Word表格

示例需求&#xff1a;Word文档中的有多个表格&#xff0c;其中最后一个表格为汇总表格&#xff0c;其他的为数据表格&#xff0c;如下图中左侧所示。 现在需要根据Category1和Category2&#xff0c;在数据表格中查找&#xff0c;如果找到匹配行&#xff0c;那么 为数据表中改…

OSCP课后练习-tcpdump

本篇文章旨在为网络安全渗透测试行业OSCP考证教学。通过阅读本文&#xff0c;读者将能够对tcpdump日志分析关键信息过滤有一定了解 1、下载练习分析文件 wget https://www.offensive-security.com/pwk-online/password_cracking_filtered.pcap2、查看分析文件所有内容 sudo t…

Linux快速入门-Linux的常用命令

Linux的常用命令 1. Linux的终端与工作区1.1 终端概述1.2 切换终端 2. Shell语言解释器2.1 Shell概述 3. 用户登录与身份切换3.1 su 命令3.2 sudo 命令 4. 文件、目录操作命令4.1 pwd 命令4.2 cd 命令4.3 ls 命令4.3.1 ls 指令叠加使用 4.4 mkdir 命令4.5 rmdir 命令4.6 cp 命令…

ASP.NET Web应用程序出现Maximum request length exceeded报错

一、问题描述 在ASP.NET的web应用中&#xff0c;导出数据时出现500 - Internal server error.Maximum request length exceeded。 二、原因分析 这个错误通常出现在Web应用程序中&#xff0c;表示客户端发送的HTTP请求的长度超过了服务器配置的最大请求长度限制。这可能是因为…