首页 > 其他分享 >简单易懂理解:数仓——拉链表

简单易懂理解:数仓——拉链表

时间:2024-09-24 20:20:45浏览次数:3  
标签:数仓 拉链 变化 记录 日期 失效 易懂 数据

1.什么是拉链表

拉链表就像衣服的拉链一样重要,实用性非常强,使用频率非常高。

所谓的拉链,就是历史记录,记录一个事物的开始到结束所变化的所有信息。

“拉链表是一种针对数据仓库设计中表存储数据的方式而定义的数据模型,它有点类似于快照,‌它通过记录每个数据项的生效日期和失效日期,来实现对数据变化的历史追踪,从而避免了按每一天存储所有记录造成的海量存储问题。拉链表的设计旨在优化数据仓库的性能,同时保留数据的历史变化信息。

拉链表的核心原理在于,每条数据记录都有一个生效日期和一个失效日期。当数据发生变化时,不是简单地更新原始记录,而是在原始记录失效的基础上,生成一个新的记录,新记录的生效日期为变化时间,而失效日期则设置为一个远未来的日期,表示该记录在当前和未来一直有效。当需要查询某个时间点的数据状态时,可以通过筛选生效日期和失效日期来获取。

2.拉链表的使用-实现

拉链表的设计考虑了数据仓库中常见的一些需求,如:

  • 需要处理大量数据。
  • 表中的部分字段需要更新,如用户地址、产品描述信息、订单状态等。
  • 需要查看某个时间点或时间段的历史快照信息。
  • 查看某个用户在过去某段时间内更新了多少次等。

获取当日数据

比较当日数据和昨日数据,找出新增(删除)数据和变化后数据

删除历史数据表中的删除数据和变化前数据

将新增数据和变化后数据插入历史数据表中,把开始日期置为当前日期,结束日期置为最大日期

将删除数据和变化前数据插入历史数据表中,把结束日期置为当前日期。

拉链表还适用于处理缓慢变化的数据(缓慢变化维)

3.拉链表的优缺点

数仓拉链表的优点主要:
  1. 历史数据追踪与快照查询
  2. 节省存储空间
  3. 查询性能优化
  4. 支持复杂的数据分析需求
  5. 易于维护和管理
数仓拉链表的缺点主要:
  1. 增加存储空间
  2. 降低系统检索和处理数据的效率
  3. 缺乏历史数

标签:数仓,拉链,变化,记录,日期,失效,易懂,数据
From: https://blog.csdn.net/weixin_66276176/article/details/142498800

相关文章

  • ByteHouse新一代云数仓关键技术及最佳实践
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群今日解读:ByteHouse视角下的新一代云数仓。主要内容包括:ByteHouse简介、云数仓核心能力解析以及最佳实践。ByteHouse简介ByteHouse是火山引擎数智平台VeDI旗下的一款云原生数仓产品,以ClickHouse......
  • ByteHouse新一代云数仓关键技术及最佳实践
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 今日解读:ByteHouse视角下的新一代云数仓。主要内容包括:ByteHouse简介、云数仓核心能力解析以及最佳实践。 ByteHouse简介ByteHouse是火山引擎数智平台VeDI旗下的一款云原生数仓产品,以......
  • 《HTTP协议入门:简单易懂的6个步骤!》
    HTTP协议HTTP方法HTTP状态码HTTP头信息HTTP消息结构HTTP请求格式:请求行(requestline)、请求头部(header)、空行和请求数据四个部分组成,HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。HTTP协议(HyperTextTransferProtocol,超文本传输协议)是因特网......
  • 【通俗易懂介绍OAuth2.0协议以及4种授权模式】
    文章目录一.OAuth2.0协议介绍二.设计来源于生活三.关于令牌与密码的区别四.应用场景五.接下来分别简单介绍下四种授权模式吧1.客户端模式1.1介绍1.2适用场景1.3时序图2.密码模式2.1介绍2.2适用场景2.3时序图3.授权码模式3.1介绍3.2适用场景3.3时序图4.简化模......
  • 如何基于Flink CDC与OceanBase构建实时数仓,实现简化链路,高效排查
    本文作者:阿里云FlinkSQL负责人,伍翀,ApacheFlinkPMCMember&Committer众多数据领域的专业人士都很熟悉ApacheFlink,它作为流式计算引擎,流批一体,其核心在于其强大的分布式流数据处理能力,同时巧妙地融合了流计算与批计算的能力,因此成为了众多企业在进行流式计算业务时的首......
  • 助力企业降低成本,ByteHouse打造新一代“弹性”云数仓
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群在当今的互联网应用中,业务流量往往具有很大的不确定性。例如,电商平台在“618”“双11”等促销活动期间,访问量会呈爆发式增长,可能是平时的十倍甚至百倍,导致系统无法承载如此高负载而崩溃。这就......
  • 助力企业降低成本,ByteHouse打造新一代“弹性”云数仓
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群  在当今的互联网应用中,业务流量往往具有很大的不确定性。 例如,电商平台在“618”“双11”等促销活动期间,访问量会呈爆发式增长,可能是平时的十倍甚至百倍,导致系统无法承载如此......
  • 个人网站|制作流程,简单易懂
    个人网站制作,简单易上手......
  • 数仓项目环境搭建
    目录一、安装CentOS1.1、修改映射关系:1.2、免密登录:1.3、关闭防⽕墙:1.4、修改linux的安全机制:1.5、修改yum源:二、安装JDK2.1、创建文件夹:2.2、解压安装:2.3、配置环境变量:2.4、刷新环境变量:2.5、验证:三、安装Hadoop[伪分布式]3.1、安装hdfs:3.2、修改......
  • 函数栈帧的创建与销毁(简单易懂超详细~)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、什么是函数栈帧1.函数栈帧的创建与销毁2.寄存器3.函数调用创建函数栈帧二、main函数栈帧的创建与销毁1.main函数栈帧的开辟2.main函数中变量的创建3.main函数中Add的调用4.进入Add中去5.......