【大数据hive】hive 拉链表设计与实现

目录

一、前言

二、拉链表业务背景

2.1 数据同步引发的问题

2.1.1 解决方案1

2.1.2 解决方案2

2.1.3 解决方案3

三、拉链表设计与原理

3.1 功能与应用场景

3.2 实现步骤

3.2.1 Step1

3.2.2  Step2

3.2.3 Step3

3.3 操作演示

3.3.1 创建一张表并加载数据

3.3.2 模拟增量数据变化

3.3.3 合并数据


一、前言

做过电商开发的同学对订单的业务应该不陌生,比如对一条订单数据来说,通常会有一个类似于status的字段来标识这个订单的完整的生命周期,从存储的数据来看,一张表只需要存储这一条数据即可。

但是对于数据分析来看,为了跟踪这个订单的全生命周期的完整过程来说,这并不是一个很好的设计,假如说订单到已支付但未发货,而且在未发货这一步停留的时间很长,对于大数据分析场景来说,这就是一个重要的分析场景,但对于mysql存储的订单表来说,这就有些冗余了。这也就是说,mysql在设计表的时候,是会充分考虑冗余数据量带来的性能问题。

二、拉链表业务背景

我们知道,Hive在实际工作中主要用于构建离线数据仓库,定期的从各种数据源中同步采集数据到Hive中,经过分层转换提供数据给上层其他应用使用。

例如:有一个定时任务每天从MySQL中同步最新的订单信息、用户信息、店铺信息等到数据仓库中,从而进行订单分析、用户分析等。

如下图所示,为一个数仓简单的业务流程图;

大数据项目中的拉链表(hadoop,hive) 在原始数据增加两个新字段 起始时间(有效时间:什么时候导入的数据的时间),结束时间(默认的结束时间为9999-99-99)操作指令: select if(表名.字段 is null,结束时间,现在时间-1) as end_time。处理时间是处理昨天的数据 因为是今天处理昨天的时间 有效结束时间应该是昨天。如果有效时间为9999-99-99 说明当前数据为最新数据。数据有变化会显示新数据,没有则显示null 数据没有变化。拉链表,可实现数据快照,可以将历史和最新数据保存在一起。 阅读详情

相关推荐

Hive 拉链表的两种实现方式

拉链表的简单介绍,拉链表的两种实现方式

m0_55685698的博客 2089

数据仓库之拉链表的设计以及实现

一、简介 增量表: 有日期分区,存放增量数据,即新增量和变化量。 全量表: 无日期分区(每天覆盖更新),存放截止至当前,数据的最新的状态,所以无法记录数据的历史变化 快照表: 有日期分区,每天的数据都是全量的(无论有无变化),缺点是每个分区存储了许多重复的数据,浪费存储空间 拉链表: 拉链表是用来维护历史状态,以及最新状态数据的一种表,拉链表根据拉链粒度的不同,实际上相当于快照,只不过做了优化,去除了一部分不变的记录 二、应用场景 拉链表适用于那些大数据量,并且在字段变化的比例和频率不大的情况下需

qq_37771475的博客 3315

数据仓库之拉链表设计与实现

简介: 本文介绍数据仓库技术中拉链表相关的内容,包括其原理、设计、适用场景以及在Hive中的实现方式。 拉链表定义: 拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。即可以在所规定的时间粒度上体现数据完整的生命周期。 以下为一个拉链表的示例及拉链表的主要表结构,存储账户基本信息和每条记录的生命周期,我们可以拿到每一个账户的历史上任意一天的状态和余额信息。 账户ID 账户余额 账户状态 开始时间 结束时间

qq_45763007的博客 1096

三、数据仓库实践-拉链表设计

由此带来了大量的存储、计算资源的开销,并且随着该表的持续膨胀,里边数据也没有清退机制,快照会越滚越大,而且还清贷款的数据,所有属性状态是不会再变动的。该场景,我们的数据起止日期(t_start_date、t_end_date)就不适用了,因为理论上,商品价格一天可能会变更多次,必须改成数据起止时间(t_start_time、t_end_time),由此带来的数据处理逻辑的变化,上边 4.4 增量更新的处理逻辑就不适用了,必须改用 4.3 历史数据初始化方式了。奥,看了好久,下边 SQL 的数据止期有问题。

潜行者 3185

【一篇文章带你搞懂--拉链表!!!拉链表的原理是什么!】

拉链表是针对数据仓库设计中表存储数据的方式而定义的一种数据模型,主要用于记录数据变更历史。定义:拉链表是一种用于记录数据变更历史的表结构,它记录了事物从开始到当前状态的所有变化信息。通过记录数据的创建时间、更新时间等字段,可以方便地查询数据变更历史。结构特点:拉链表中的每个记录通常包含字段如创建时间(create_time)、更新时间(update_time)、数据本身(如order_id、user_id等)以及可能的操作者信息等。

书生的技术分享 3681

私有化大模型部署:企业AI应用的核心架构

私有化大模型部署不是“一次性项目”,而是企业AI的“长期主义”投资——它需要企业投入时间、金钱和精力,但回报是数据安全、定制化能力、核心竞争力的提升。就像“自家厨房”一样,私有化大模型可能初期麻烦,但一旦搭建起来,就能为企业“做”出符合自己口味的“特色菜”,而这些“特色菜”,正是企业在激烈竞争中的“护城河”。愿你能构建属于自己的“AI大脑”,让技术真正赋能业务,让复杂变简单,让深奥变通透。附录:私有化大模型部署架构图(注:可根据企业需求调整,此为通用架构)

AI天才研究院 1019

从寄存器配置到G值:一份给STM32开发者的SC7A20加速度数据换算保姆级指南

本文为STM32开发者提供SC7A20三轴加速度传感器的数据换算保姆级指南,详细解析从寄存器配置到G值转换的全过程。涵盖量程选择、输出值换算原理及优化代码实现,帮助开发者快速掌握加速度数据的物理意义转换技巧,提升运动感知系统开发效率。

weixin_29172963的博客 172

Brim与ZUI协同安装指南:从下载到流量分析实战

本文提供Brim与ZUI协同安装与实战指南,详细讲解从下载、环境变量配置到流量分析的全流程。通过将PCAP文件转换为ZNG格式,结合直观的Zed查询语言,这套组合能极大提升大型网络数据包的分析效率,是网络安全与运维人员进行高效流量分析的利器。

metal的博客 456

告别偏移地址!用C# S7PLUS驱动读写西门子S7-1500符号地址(TIA Portal V17+环境配置)

本文详细介绍了如何在TIA Portal V17+环境中使用C# S7PLUS驱动读写西门子S7-1500 PLC的符号地址,告别传统的偏移地址方式。通过配置OpenSSL、集成S7PLUS驱动库,以及实战案例展示符号地址的读写方法,显著提升代码可读性和维护效率。文章还涵盖了环境准备、高级配置及常见问题解决方案,助力工业自动化开发者实现更高效的PLC通讯。

weixin_28720767的博客 315

【人工智能】从零开始玩转龙虾(Openclaw):本地与云端(火山Arkcloud)部署全指南

龙虾(Openclaw)是一款海外智能体操作系统(agent operating system),可通过飞书机器人实现自动化办公、信息抓取、任务协作等功能。它支持本地部署和云端部署两种方式,适配MacOS和Windows系统(,建议优先使用MacOS)。sudo。

奶爸的编程之路,也就一周冷个三天 947

信息安全管理与评估赛题解析-单机取证(含环境)

链接:https://pan.baidu.com/s/1OMzIq884dW2vAiUp0k2Ppg。链接:https://pan.baidu.com/s/1i5daMqhD53wYeQ6hYzRK6Q。链接:https://pan.baidu.com/s/1QFAjdQZK4sJ-gGRP42XPKA。链接:https://pan.baidu.com/s/1BSXvqN2ZGCQXewgFULoeyQ。链接:https://pan.baidu.com/s/1g9zu5ngBz_KMjW1eBMkJAw。

Brucye 1833

从 Material Requirements Planning 看 SAP 物料计划的底层控制逻辑

文章摘要:SAP中的MRP(物料需求计划)不仅仅是运行一个程序(如MD01N),其关键在于主数据和组织层级的正确配置。MRP的核心是解决"何时需要多少物料"的问题,涉及采购、生产、库存等多种供应来源。物料主数据的MRP视图必须在组织层级(如工厂、存储位置)下维护,不同层级的计划逻辑可能完全不同。S/4HANA更强调MRP Area作为细分计划单位,取代传统存储位置MRP。实施时需注意MRP Profile的合理使用,避免批量错误,并特别关注物料生命周期管理(如停用物料和替代件),这些因素共同决定了MRP能否

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1409

【Burp入门第三十三篇】BurpSuite+Proxifier安装配置,实现微信小程序抓包

本文介绍Burp+Proxifier安装配置,实现微信小程序抓包

等风来 5873

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: 【微服务】springboot整合swagger多种模式使用详解
下一篇: 【大数据Hive】Hive 窗口函数使用详解
逆风飞翔的小叔
逆风飞翔的小叔 新星创作者: 大数据技术领域 新星创作者: 大数据技术领域
博客等级 码龄5年 1万+粉丝 215原创
评论 93
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

逆风飞翔的小叔

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值