维度建模中的事实表

news2024/9/20 18:27:17

在维度建模中,根据粒度划分,数据表主要分为维度表和事实表。而事实表又可以分为三种类型:事务型事实表、周期快照型事实表和累计快照型事实表。本文将详细介绍这三种事实表,并提供相应的代码示例。

目录

      • 1. 事务型事实表
        • 示例
      • 2. 周期快照型事实表
        • 示例
      • 3. 累计快照型事实表
        • 示例
      • 总结

1. 事务型事实表

事务型事实表用于记录每个事务的详细情况,保存最为原子化的数据。这种表中的每一行数据都代表一个独立的事务,在事务发生时记录下来。事务型事实表的粒度非常细,通常用于分析单个事件或行为。
image.png

示例

假设我们有一个电子商务网站,我们希望记录每一笔订单的详细信息。可以创建一个事务型事实表 orders,如下所示:

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    customer_id INT,
    product_id INT,
    order_date DATE,
    quantity INT,
    total_price DECIMAL(10, 2)
);

每条记录代表一笔订单,记录了订单ID、客户ID、产品ID、订单日期、数量和总价。
image.png

2. 周期快照型事实表

周期快照型事实表用于定期记录业务的累计数据,这些时间间隔是可预测的,比如每天、每周或每月。这种表适用于需要在固定时间点查看业务表现的场景。
image.png

示例

假设我们想要按月统计电子商务网站的销售情况,可以创建一个周期快照型事实表 monthly_sales,如下所示:

CREATE TABLE monthly_sales (
    month DATE PRIMARY KEY,
    total_orders INT,
    total_revenue DECIMAL(10, 2),
    total_customers INT
);

每条记录代表一个月的累计销售数据,包括订单总数、总收入和总客户数。
image.png

3. 累计快照型事实表

image.png

累计快照型事实表用于记录业务生命周期中多个阶段的开始和结束时间。这种表中通常包含多个时间字段,反映业务的不同阶段。与周期快照不同,累计快照型事实表的时间点不可预测,随着业务进展动态更新。

示例

假设我们希望跟踪客户订单的处理进度,可以创建一个累计快照型事实表 order_process,如下所示:

CREATE TABLE order_process (
    order_id INT PRIMARY KEY,
    order_date DATE,
    shipping_date DATE,
    delivery_date DATE,
    return_date DATE
);

每条记录代表一个订单的处理过程,包含订单日期、发货日期、交付日期和退货日期。
image.png

总结

通过事务型事实表、周期快照型事实表和累计快照型事实表的划分,可以更好地满足不同业务场景下的数据分析需求。

事务型事实表记录最细粒度的事务数据,周期快照型事实表定期记录累计数据,累计快照型事实表则记录业务各阶段的变化情况。

理解这些表的用途和特点,有助于我们在维度建模中做出更合理的数据设计。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1858385.html

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

相关文章

推荐系统三十六式学习笔记:原理篇.模型融合13|经典模型融合办法:线性模型和树模型的组合拳

目录 为什么要融合?“辑度组合”原理逻辑回归梯度提升决策树GBDT二者结合 总结 推荐系统在技术实现上一般划分为三个阶段:挖掘、召回、排序 。 为什么要融合? 挖掘的工作是对用户和物品做非常深入的结构化分析,各个角度各个层面…

硬盘监控和分析工具:Smartctl

文章目录 1. 概述2. 安装3. 使用4. smartctl属性信息介绍 1. 概述 Smartctl(S.M.A.R.T 自监控,分析和报告技术)是类Unix系统下实施SMART任务命令行套件或工具,它用于打印SMART自检和错误日志,启用并禁用SMRAT自动检测…

PR模板 | RGB特效视频标题模板Titles | MOGRT

RGB特效视频标题模板mogrt免费下载 4K分辨率(38402160) 支持任何语言 友好的界面 输入和输出动画 快速渲染 视频教程 免费下载:https://prmuban.com/39055.html 更多pr模板视频素材下载地址:https://prmuban.com

初见:AntDB智能运维“三剑客“之ADC

引言 6月15日,PostgreSQL数据库技术峰会广州站圆满落幕。峰会上,亚信安慧数据库智能运维产品负责人李志龙介绍了AntDB的6大数据库引擎和3大工具产品能力。 这里的3大工具分别指: AntDB数据库迁移工具包 MTK 数据库智能运维平台 ACC AntDB数据…

Modbus协议在工业自动化中的应用

Modbus协议介绍 Modbus是一种常用的工业现场总线通信协议,被广泛应用于工业自动化领域。它是一种简单、易实现的主从式通信协议,具有高度的可靠性和通用性。本文将从Modbus协议的基本概念、通信模式、数据格式、常见应用场景等方面进行全面介绍,并通过图文并茂的方式帮助读者更…

ardupilot开发 --- 视觉伺服 篇

风驰电掣云端飘,相机无法对上焦 视觉伺服分类视觉伺服中的坐标系成像模型推导IBVS推导参考文献 视觉伺服分类 控制量是在图像空间中推导得到还是在欧式空间中推导得到,视觉伺服又可以分类为基于位置(PBVS)和基于图像的(IBVS)视觉伺服。 视觉伺服中的坐…

关于docker存储overlay2相关问题

报错如下: 报错原因:使用rm -rf 清理overlay2导致的,非正常清理。 正常清理命令如下: # 清理Docker的所有构建缓存 docker builder prune# 删除旧于24小时的所有构建缓存 docker builder prune --filter "until24h"#删…

node.js环境安装以及Vue-CLI脚手架搭建项目教程

目录 ▐ vue-cli 搭建项目的优点 ▐ 安装node.js环境 ▐ 搭建vue脚手架项目 ▐ 项目结构解读 ▐ 常用命令 ▐ 创建组件 ▐ 组件路由 ▐ vue-cli 搭建项目的优点 传统的前端项目架构由多个html文件,且每个html文件都是相互独立的,导入外部组件时需…

wireshark常用过滤命令

wireshark常用过滤命令 wireshark抓包介绍单机单点:单机多点:双机并行: wireshark界面认识默认布局调整布局(常用)显示FCS错误 wireshark常见列Time回包数据报对应网络模型 wireshark基本操作结束抓包再次开始抓包 **wireshark常用过滤命令**…

【实物资料包】基于STM32智能台灯设计

【实物资料包】基于STM32智能台灯设计 需要资料的请在文章结尾获取哦~~~~(如有问题私信我即可) 1.介绍 1 添加wifi模块模块,可通过wifi模块APP或者手动按钮切换自动/手动模式 2 自动模式下,台灯可以感应是否有人落座&#xff0…

【BSCP系列第2期】XSS攻击的深度剖析和利用(文末送书)

文章目录 前言一、官方地址二、开始(15个)1:Lab: DOM XSS in document.write sink using source location.search inside a select element2:Lab: DOM XSS in AngularJS expression with angle brackets and double quotes HTML-e…

猫头虎分享已解决Bug:Array Index Out of Bounds Exception

🐯 猫头虎分享已解决Bug:Array Index Out of Bounds Exception 🐯 摘要 大家好,我是猫头虎,今天我们要聊聊后端开发中经常遇到的一个问题:Array Index Out of Bounds Exception,即 java.lang.…

哪里找好用的商城系统源码?

很多企业在挑选商城系统时,由于不懂源码,很难选择到高质量源码的商城系统,那么哪里找好用的商城系统源码?如何选择?接下来就跟着启山智软小编一起来看看吧,以下为选择源码时的四看: 1.一看源码公司行业动态 可以查…

【linux】详解——库

目录 概述 库 库函数 静态库 动态库 制作动静态库 使用动静态库 如何让系统默认找到第三方库 lib和lib64的区别 /和/usr/和/usr/local下lib和lib64的区别 环境变量 配置相关文件 个人主页:东洛的克莱斯韦克-CSDN博客 简介:C站最萌博主 相关…

[FreeRTOS 内部实现] 信号量

文章目录 基础知识创建信号量获取信号量释放信号量信号量 内部实现框图 基础知识 [FreeRTOS 基础知识] 信号量 概念 创建信号量 #define queueQUEUE_TYPE_BINARY_SEMAPHORE ( ( uint8_t ) 3U ) #define semSEMAPHORE_QUEUE_ITEM_LENGTH ( ( uint8_t ) 0U ) #define xSe…

C++精解【6】

文章目录 eigenMatrix基础例编译时固定尺寸运行指定大小 OpenCV概述 eigen Matrix 基础 所有矩阵和向量都是Matrix模板类的对象。向量也是矩阵&#xff0c;单行或单列。Matrix模板类6个参数&#xff0c;常用就3个参数&#xff0c;其它3个参数有默认值。 Matrix<typename…

LGY-110G零序电压继电器 导轨安装 约瑟JOSEF

110系列零序电压电流继电器 系列型号: LGY-110零序过电压继电器&#xff1b;LGY-110/AC零序过电压继电器&#xff1b; LGL-110零序过电流继电器&#xff1b;LGL-110/AC零序过电流继电器&#xff1b; 1 应用 DY-110 型低电压继电器用于判别线路和电力设备的电压降低&#xf…

达梦数据守护集群部署

接上篇 达梦8单机规范化部署 https://blog.csdn.net/qq_25045631/article/details/139898690 1. 集群规划 在正式生产环境中&#xff0c;两台机器建议使用统一配置的服务器。使用千兆或千兆以上网络。 两台虚拟机各加一块网卡&#xff0c;仅主机模式&#xff0c;作为心跳网卡…

伸展树(数据结构篇)

数据结构之伸展树 伸展树 概念&#xff1a; 伸展树是一颗对任意一个节点被访问后&#xff0c;就经过一系列的AVL树的旋转操作将该节点放到根上的特殊二叉查找树。伸展树能保证对树操作M次的时间复杂度为O(MlogN)&#xff0c;而当一个查找树的一个节点刚好处于查找树最坏的情…

Vite: 关于预构建的毫秒级响应

概述 在我们的项目代码中&#xff0c;我们所说的模块代码其实分为两部分 一部分是源代码&#xff0c;也就是业务代码另一部分是第三方依赖的代码&#xff0c;即 node_modules 中的代码 Vite 是一个提倡 no-bundle 的构建工具&#xff0c;相比于传统的 Webpack能做到开发时的模…