hive 中的拉链表 1
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,hive中拉链表在有些情况下,为了保持历史的一些状态,需要用拉链表来做,这样做目的在可以保留所有状态的情况下可以节省空间。拉链表适用于以下几种情况吧数据量有点大,表中某些字段有变化,但是呢变化的频率也
千家信息网最后更新 2025年12月02日hive 中的拉链表 1
hive中拉链表
在有些情况下,为了保持历史的一些状态,需要用拉链表来做,这样做目的在可以保留所有状态的情况下可以节省空间。
拉链表适用于以下几种情况吧
数据量有点大,表中某些字段有变化,但是呢变化的频率也不是很高,业务需求呢又需要统计这种变化状态,每天全量一份呢,有点不太现实,
不仅浪费了存储空间,有时可能业务统计也有点麻烦,这时,拉链表的作用就提现出来了,既节省空间,又满足了需求。
一般在数仓中通过增加begin_date,en_date来表示,如下例,后两列是start_date和end_date.
| 12345678910 | 1 2016-08-20 2016-08-20 创建 2016-08-20 2016-08-201 2016-08-20 2016-08-21 支付 2016-08-21 2016-08-211 2016-08-20 2016-08-22 完成 2016-08-22 9999-12-312 2016-08-20 2016-08-20 创建 2016-08-20 2016-08-202 2016-08-20 2016-08-21 完成 2016-08-21 9999-12-313 2016-08-20 2016-08-20 创建 2016-08-20 2016-08-213 2016-08-20 2016-08-22 支付 2016-08-22 9999-12-314 2016-08-21 2016-08-21 创建 2016-08-21 2016-08-214 2016-08-21 2016-08-22 支付 2016-08-22 9999-12-315 2016-08-22 2016-08-22 创建 2016-08-22 9999-12-31 |
begin_date表示该条记录的生命周期开始时间,end_date表示该条记录的生命周期结束时间;
end_date = '9999-12-31'表示该条记录目前处于有效状态;
如果查询当前所有有效的记录,则select * from order_his where dw_end_date = '9999-12-31′
如果查询2016-08-21的历史快照,则select * from order_his where begin_date <= '2016-08-21′ and end_date >= '2016-08-21'
再简单介绍一下拉链表的更新:
假设以天为维度,以每天的最后一个状态为当天的最终状态。
以一张订单表为例,如下是原始数据,每天的订单状态明细
| 12345678910 | 1 2016-08-20 2016-08-20 创建2 2016-08-20 2016-08-20 创建3 2016-08-20 2016-08-20 创建1 2016-08-20 2016-08-21 支付2 2016-08-20 2016-08-21 完成4 2016-08-21 2016-08-21 创建1 2016-08-20 2016-08-22 完成3 2016-08-20 2016-08-22 支付4 2016-08-21 2016-08-22 支付5 2016-08-22 2016-08-22 创建 |
根据拉链表我们希望得到的是
| 12345678910 | 1 2016-08-20 2016-08-20 创建 2016-08-20 2016-08-201 2016-08-20 2016-08-21 支付 2016-08-21 2016-08-211 2016-08-20 2016-08-22 完成 2016-08-22 9999-12-312 2016-08-20 2016-08-20 创建 2016-08-20 2016-08-202 2016-08-20 2016-08-21 完成 2016-08-21 9999-12-313 2016-08-20 2016-08-20 创建 2016-08-20 2016-08-213 2016-08-20 2016-08-22 支付 2016-08-22 9999-12-314 2016-08-21 2016-08-21 创建 2016-08-21 2016-08-214 2016-08-21 2016-08-22 支付 2016-08-22 9999-12-315 2016-08-22 2016-08-22 创建 2016-08-22 9999-12-31 |
可以看出 1,2,3,4每个订单的状态都有,并且也能统计到当前的有效状态。
状态
支付
拉链
有效
情况
空间
订单
变化
统计
业务
历史
周期
数据
时间
生命
需求
查询
原始
明细
作用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络安全的内容包括哪三个
数据库文件实时记录能力指标
中原工学院软件工程软件开发
数据库设置默认时间加1年
数据库版本是706
密云区口碑好的软件开发诚信服务
license服务器
网络安全是一个 的安全技术手段
天堂2 数据库
永诚海外服务器
根据数据库代码生成网页
互联网科技服装
软件开发培训计划费用
河北系统软件开发定制
软件开发品质管理干什么的
奥的斯电梯服务器插入没反应
联想服务器管理口怎么登陆
无线网络技术或应用的有
牟平区软件开发
企业用的编程软件开发
彩票软件开发有限公司
政府软件开发的服务哪里好
网络安全交流体会
世界互联网领先科技大会
加强网络安全技术保障能力
一台服务器能开多少进程
宁波新时代网络技术有限公司
h61网络安全平台
网络安全中的黑客是谁
软件开发费用结算