hive 如何判断 增量表和全量表

本文介绍了数据库中的四种表类型:全量表、快照表、增量表和拉链表。全量表存储每日最新数据,不保留历史;快照表按时间分区保存历史数据但占用较大空间;增量表记录每日新增或变更数据;拉链表则用于维护历史状态和当前状态,通过start_date和end_date检索特定时间范围的数据。理解这些概念对于数据库管理和优化至关重要。
摘要由CSDN通过智能技术生成

文章目录

定义

  • 全量表

全量表没有分区,表中的数据是前一天的所有数据,比如说今天是24号,那么全量表里面拥有的数据是23号的所有数据,每次往全量表里面写数据都会覆盖之前的数据,所以全量表不能记录历史的数据情况,只有截止到当前最新的、全量的数据。

  • 快照表

那么要能查到历史数据情况又该怎么办呢?这个时候快照表就派上用途了,快照表是有时间分区的,每个分区里面的数据都是分区时间对应的前一天的所有全量数据,比如说当前数据表有3个分区,24号,25号,26号。其中,24号分区里面的数据就是从历史到23号的所有数据,25号分区里面的数据就是从历史到24号的所有数据,以此类推。

但是这样也有一个问题,就是数据量大的时候,其实每个分区都存储了许多重复的数据,非常的浪费存储空间。

于是乎,拉链表就出来了。

在介绍拉链表之前,我们先介绍一下增量表。

  • 增量表

增量表,就是记录每天新增数据的表,比如说,从24号到25号新增了那些数据,改变了哪些数据,这些都会存储在增量表的25号分区里面。上面说的快照表的25号分区和24号分区(都是t+1,实际时间分别对应26号和25号),它两的数据相减就是实际时间25号到26号有变化的、增加的数据,也就相当于增量表里面25号分区的数据。

  • 拉链表

拉链表,它是一种维护历史状态,以及最新状态数据的一种表。拉链表也是分区表,有些不变的数据或者是已经达到状态终点的数据就会把它放在分区里面,分区字段一般为开始时间:start_date和结束时间:end_date。一般在该天有效的数据,它的end_date是大于等于该天的日期的。获取某一天全量的数据,可以通过表中的start_date和end_date来做筛选,选出固定某一天的数据。例如我想取截止到20190813的全量数据,其where过滤条件就是where start_date<=‘20190813’ and end_date>=20190813。

如何判断

  • 一般会有文档说明介绍增量和全量表,但是还是有时候没有发现得到
  • 或者一般情况下,增量表用与小的,高频数据,例如日志文件。当然也不排除有些全量表的数据每天也很少
  • 或者从底层出发一直到ods 层出发找到里面的逻辑结构
  • 建议问人;多问没有坏处
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据精读周刊

喝杯咖啡????

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值