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

  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,一经查实,立即删除!

相关文章

Mysql数据库中,监测某张表中某字段的修改情况(被哪个ip所修改、新老值)

在Mysql数据库中,通过写一个触发器,来监测某张表(q_device)字段(run_status)的改变情况。 【示例】 -- 1. 创建监测日志表 CREATE TABLE change_log (id INT AUTO_INCREMENT PRIMARY KEY,table_name VARCHAR(255),column_name VARCHAR(255),old_value T…

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

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

FreeRTOS中xPortPendSVHandler()和vPortSVCHandler()这两个函数的作用

在 FreeRTOS 中,xPortPendSVHandler() 和 vPortSVCHandler() 是两个重要的中断服务例程(ISR),它们负责处理与操作系统相关的异常。这些函数对于实现上下文切换和任务管理至关重要。下面分别解释这两个函数的作用: xPo…

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

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

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

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

将多个 k8s yaml 配置文件合并为一个文件

如下bash脚本实现功能 “将多个k8s的yaml 配置文件” 合并为一个 yaml,使用 --- 分割文件配置。 创建文件 merge_yaml.sh ,内容如下: #!/bin/bash# 默认参数 input_patterns() # 匹配的文件模式数组 output_file"combined.yaml"…

Word论文交叉引用一键上标

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

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

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

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

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

soular使用教程

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

memory泄露分析方法(Binder,Window,View篇)

View泄露:从Hprof找大量重复的view,点击查看text文案如果相同则找产品他们确认是否合理 window泄露:代码或dumpsys window来监测是否有大量同名window,不能用windowtoken来辨别是否重复window,每个window token都不一样…

FPGA的DMA应用——pcileech

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

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

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

操作系统知识点总结

第一章 1.1_1 操作系统的概念、功能和目标 操作系统(Operating System, OS):是指控制和管理整个计算机系统的 硬件和软件 资源,并合理地组织调度计算机的工作和资源的分配。 作为用户和计算机硬件之间的接口 提供的功能 命令接口…

Log4j2的Policies详解、SizeBasedTriggeringPolicy、TimeBasedTriggeringPolicy

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

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

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

DataCap MongoDB Driver: 全面解析MongoDB在DataCap中的使用指南

在大数据时代,MongoDB作为一款广受欢迎的NoSQL数据库,其灵活的文档存储模型和强大的查询能力使其成为许多现代应用的首选数据存储方案。今天,我们将深入探讨DataCap MongoDB Driver,这是一个强大的工具,它让在DataCap环…

FreeRTOS的调度器挂起和恢复

1. 调度器挂起 vTaskSuspendAll void vTaskSuspendAll( void ) {/* A critical section is not required as the variable is of typeBaseType_t. Please read Richard Barrys reply in the following link to apost in the FreeRTOS support forum before reporting this as…

EleutherAI/pythia-70m

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

蓝牙链路控制(Link Control)命令概览

目录 一、设备发现与连接管理(14条) 1.1. 设备发现 1.2. 连接建立与取消 1.3. 连接接受与拒绝 1.4. 连接断开与维护 二、设备信息查询(9条) 2.1. 基本信息查询 2.2. 安全相关信息交互 三、安全认证与加密(12条) 3.1. 认证请求与回复 3.2. 加密设置 四、同步与…