拉链表,流⽔表以及快照表的含义和特点

  1. 拉链表
    • 含义
      • 拉链表主要用于记录数据的历史变化情况。从数据结构角度看,它的每条记录都包含了一个实体(如客户、产品等)的关键信息以及两个时间戳字段,即起始日期(Start_Date)和结束日期(End_Date)。起始日期表示这条记录开始生效的时间,结束日期表示这条记录失效的时间。当数据初次录入时,起始日期为数据产生的日期,结束日期通常会被设定为一个极大值(如 '9999 - 12 - 31'),代表当前记录处于有效状态。
      • 以客户信息为例,假设初始有客户 A 的记录,姓名为张三,地址为北京,起始日期是 '2024 - 01 - 01',结束日期是 '9999 - 12 - 31'。如果在 '2024 - 02 - 01' 这一天,客户 A 的地址变更为上海,那么在拉链表中会更新原来记录的结束日期为 '2024 - 01 - 31',同时插入一条新的记录,姓名依然是张三,地址为上海,起始日期为 '2024 - 02 - 01',结束日期为 '9999 - 12 - 31'。
    • 特点
      • 高效存储历史数据:它不是简单地存储每个时间点的全量数据,而是仅存储数据变化部分。这种存储方式在数据变化频率相对较低的情况下,能够显著节省存储空间。例如,一个包含大量用户信息的系统,只有少部分用户信息会频繁变化,采用拉链表就可以避免每次都存储全部用户信息,大大减少存储成本。
      • 支持历史数据回溯和查询:可以通过起始日期和结束日期字段方便地查询任意时间点的数据状态。例如,企业需要查询在某个促销活动期间('2024 - 03 - 01' - '2024 - 03 - 31')有效的客户信息,就可以通过筛选起始日期小于等于 '2024 - 03 - 31' 且结束日期大于等于 '2024 - 03 - 01' 的记录来获取当时的客户信息,从而准确分析促销活动的目标客户群体等情况。
      • 数据更新操作复杂:相比普通表,拉链表在数据更新时需要同时处理两条记录(更新旧记录的结束日期和插入新记录)。这就要求在数据处理逻辑上更加谨慎,以确保数据的一致性和准确性。而且,在查询数据时,需要考虑日期范围的筛选条件,这也增加了查询的复杂性。
      • 适合缓慢变化维度数据:对于像客户信息、产品属性等变化相对缓慢的数据维度,拉链表是一种非常理想的数据存储方式。它能够很好地适应这类数据在长时间内的少量变化情况,完整地保留数据的变化历史。
  2. 流水表
    • 含义
      • 流水表是一种记录业务操作流水的表,也称为事务表。它是对业务系统中发生的所有操作事件的详细记录。表中的每一条记录都代表了一个独立的业务操作,包含了操作发生的时间(Transaction_Time)、操作类型(Transaction_Type)、涉及的实体(如客户 ID、产品 ID 等)以及操作的具体内容(如交易金额、库存变更数量等)等关键信息。
      • 例如,在银行系统的交易流水表中,每一笔交易都会记录下来。如果客户 A 在 '2024 - 01 - 01 10:00:00' 进行了一笔 1000 元的取款操作,流水表中就会有一条记录,包含交易时间 '2024 - 01 - 01 10:00:00'、操作类型 ' 取款 '、客户 ID(客户 A 的 ID)以及交易金额 - 1000 元等信息。
    • 特点
      • 完整记录业务过程:能够提供业务操作的完整历史记录,对于业务流程的追溯和审计非常有用。企业可以通过流水表查看每一个业务环节的详细信息,比如在财务审计中,审计人员可以通过交易流水表查看每一笔资金的进出情况,确保财务数据的真实性和合规性。
      • 数据实时性强:按照业务操作的实际发生顺序记录,数据具有很强的实时性。这使得它可以用于实时监控业务活动。例如,电商平台可以通过订单流水表实时监控订单的生成、支付、发货等状态,及时发现异常订单并进行处理。
      • 数据量增长迅速:随着业务的持续开展,流水表的数据量会不断增加。如果业务量较大,可能会导致存储和查询性能问题。例如,一个大型电商平台每天会产生海量的订单交易记录,这些记录都会存入流水表,如果不进行合理的分区或者索引优化,查询特定类型交易(如退款交易)可能会变得非常缓慢。
      • 简单的数据结构和易于理解:流水表的结构通常比较简单,主要是记录业务操作的基本信息。这种简单的结构使得开发人员和业务人员都能够比较容易地理解和使用。例如,业务人员可以通过查看流水表来统计每天的销售订单数量,而不需要复杂的数据分析知识。
  3. 快照表
    • 含义
      • 快照表是在特定时间点对数据进行全量复制而形成的表。它就像是给数据在某一时刻拍了一张照片,记录了当时的全部数据状态。快照表的生成通常是按照一定的时间周期(如每天、每周、每月等)或者特定的事件触发(如系统升级前、重大业务调整前等)。
      • 以库存管理为例,每天晚上系统会生成一个库存快照表,记录当天结束时每个仓库中各种产品的库存数量。这个快照表中的数据就是当天库存的一个静态写照,不包含库存的变化过程,只反映了当天结束时的库存状态。
    • 特点
      • 反映特定时刻的完整数据状态:提供了一个数据在特定时间点的全貌,便于进行数据对比和分析。例如,企业可以对比月初和月末的财务快照表,来分析一个月内企业的财务状况变化,包括资产、负债、利润等方面的变化情况。
      • 简单直接的查询方式:由于是全量数据,查询操作相对简单。用户在查询时不需要考虑数据的动态变化过程,只需要关注特定时间点的数据内容。例如,在查询某一天的销售快照表时,直接获取当天的销售数据,如销售总额、各产品销售数量等,不需要像拉链表那样根据日期范围进行复杂的筛选。
      • 存储成本较高:因为是全量数据存储,所以如果数据量较大,并且快照生成的频率较高,会占用大量的存储空间。例如,一个拥有海量用户数据的互联网公司,如果每天都生成用户信息快照表,那么存储这些快照表的数据量会非常庞大。
      • 数据时效性有限:快照表只能反映它所生成的特定时间点的数据情况。如果需要了解数据在两个快照时间点之间的动态变化,快照表本身无法提供这些信息,需要结合其他数据(如流水表)或者通过计算两个快照之间的差异来获取。

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

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

相关文章

STM32F103RCT6学习之一:基本开发流程

开发方式 1.基于寄存器开发---与51类似 2.基于标准库开发----基于寄存器进行函数的封装 3.基于HAL库开发----对标准库进行更深入的封装,有句柄、回调函数等概念 STM32Cube 一种STM32硬件配置开发工具,可根据需要生成项目模版 1.选择芯片 2.配置管…

汽车IVI中控开发入门及进阶(46):FFmpeg

概述: FFmpeg 是领先的多媒体框架,能够解码、编码、 转码、复用、解复用、流、过滤和播放 几乎所有人类和机器创建的东西。它支持最模糊的古老格式,直到最前沿。无论它们是由某个标准委员会、社区还是公司设计的。它还具有高度的可移植性:FFmpeg 在各种构建环境、机器架构…

.NET平台用C#通过字节流动态操作Excel文件

在.NET开发中,通过字节流动态操作Excel文件提供了一种高效且灵活的方式处理数据。这种方法允许开发者直接在内存中创建、修改和保存Excel文档,无需依赖直接的文件储存、读取操作,从而提高了程序的性能和安全性。使用流技术处理Excel不仅简化了…

Word论文交叉引用一键上标

Word论文交叉引用一键上标 1.进入Microsoft word使用CtrlH快捷键或单击替换按钮 2.在查找内容中输入[^#] 3.鼠标点击,标签为“替换为:”的文本框,注意光标一定要打在图红色方框圈中的文本框中! 4.点击格式选择字体 5.勾选上标…

直流有刷电机多环控制(PID闭环死区和积分分离)

直流有刷电机多环控制 提高部分-第8讲 直流有刷电机多环控制实现(1)_哔哩哔哩_bilibili PID模型 外环的输出作为内环的输入,外环是最主要控制的效果,主要控制电机的位置。改变位置可以改变速度,改变速度是受电流控制。 实验环境 【 !】功能简介: 按下KEY1使能电机,按下…

计算机网络实验室建设方案

一、计算机网络实验室拓扑结构 计算机网络综合实验室解决方案,是面向高校网络相关专业开展教学实训的综合实训基地解决方案。教学实训系统采用 B/S架构,通过公有云教学实训平台在线学习模式,轻松实现网络系统建设与运维技术的教学…

soular使用教程

用 soular 配置你的组织,工作更高效!以下是快速上手的简单步骤:  1. 账号管理 可以对账号信息进行多方面管理,包括分配不同的部门、用户组等,从而确保账号权限和职责的清晰分配。  1.1 用…

FPGA的DMA应用——pcileech

硬件通过pcie总线,访存本机的内存,并进行修改,可以进行很多操作。 学习视频:乱讲DMA及TLP 1-pcileech项目简介和自定义模块介绍_哔哩哔哩_bilibili vivado2024.1的下载文章链接和地址:AMD-Xilinx Vivado™ 2024.1 现…

原点安全再次入选信通院 2024 大数据“星河”案例

近日,中国信息通信研究院和中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)共同组织开展的 2024 大数据“星河(Galaxy)”案例征集活动结果正式公布。由工银瑞信基金管理有限公司、北京原点数安科技有限公司联…

Log4j2的Policies详解、SizeBasedTriggeringPolicy、TimeBasedTriggeringPolicy

文章目录 一、Policies二、SizeBasedTriggeringPolicy:基于文件大小的滚动策略2.1、文件达到指定大小就归档 三、TimeBasedTriggeringPolicy:基于时间间隔的滚动策略3.1、验证秒钟归档场景3.2、验证分钟场景3.3、验证小时场景 四、多策略组合使用五、扩展知识5.1、S…

【机器学习与数据挖掘实战】案例06:基于Apriori算法的餐饮企业菜品关联分析

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈机器学习与数据挖掘实战 ⌋ ⌋ ⌋ 机器学习是人工智能的一个分支,专注于让计算机系统通过数据学习和改进。它利用统计和计算方法,使模型能够从数据中自动提取特征并做出预测或决策。数据挖掘则是从大型数据集中发现模式、关联…

EleutherAI/pythia-70m

EleutherAI/pythia-70m” 是由 EleutherAI 开发的一个小型开源语言模型,它是 Pythia Scaling Suite 系列中参数量最小的模型,拥有大约 7000 万个参数。这个模型主要旨在促进对语言模型可解释性的研究; Pythia Scaling Suite是为促进可解释性…

在国产电脑上运行PDFSAM软件使用pdf分割合并交替混合处理pdf文档

软件下载地址: https://sourceforge.net/projects/pdfsam/files/ 需要注意事项,系统需要java环境,确认系统有java环境,根据软件版本需求安装对应的java运行环境。 下载pdfsam-4.3.4-linux.tar.gz安装包,解压,将runt…

【HENU】河南大学计院2024 计算机网络 期末复习知识点

和光同尘_我的个人主页 一直游到海水变蓝。 计网复习 第一章互联网组成类别交换方式分组交换的要点:分组交换的优点: 网络性能指标体系结构网络协议五层协议 第二章:物理层物理层的主要任务(四大特性)通信的三种方式…

python网络框架——Django、Tornado、Flask和Twisted

Django、Tornado和flask是全栈网络框架,而Twisted更专注于网络底层的高性能封装,不提供HTML模版引擎等界面功能,因此不能称为全栈框架。 1、Django 发布于2003年,是当前python世界里最负盛名且最成熟的网络框架。相较于其他web框…

C++——运算符重载

一、运算符重载 ①含义 函数重载或函数多态:同名函数完成相同的基本操作 C将重载的概念扩展到运算符上,于是出现了运算符重载 C中有很多运算符已经被重载 *运算符,运用于地址,可以得到存储在这个地址的值;运用于两个…

IPv6的地址类型

IPv6地址总长度为128bit,被分为8组,每组为4个十六进制数,用冒号分隔: 例如:FC00:0123:4567:8901:ABFD:0987:0000:0023 可缩写为:FC00:0123:4567:8901:ABFD:0987::23 IPv6中取消了v4中的广播,新…

矢量网络分析仪(VNA)基础解析与应用指南

矢量网络分析仪(VNA)是一种极其精密的仪器,能够对电气网络的阻抗进行表征,测量结果可提供幅度和相位细节,从而深入了解其行为。被测设备(DUT)通常用于射频(RF)应用&#…

工厂+策略模式之最佳实践(疾病报卡维护模块API设计)

目录 💻业务场景 🔧应用技术 ⚙概要流程 ❗开发注意 服务类上标注了 自定义注解 却无法直接利用getDeclaredAnnotation 获取 *Spring代理机制 代理机制的工作原理 代理的工作机制 代理的使用场景 已获取EmrXXXServiceImpl 的Class,如…

ARM异常处理 M33

1. ARMv8-M异常类型及其详细解释 ARMv8-M Exception分为两类:预定义系统异常(015)和外部中断(1616N)。 各种异常的状态可以通过Status bit查看,获取更信息的异常原因: CFSR是由UFSR、BFSR和MMFSR组成: 下面列举HFSR、MMFSR、…