SQL进阶技巧:Hive如何进行更新和删除操作?

目录

[0 Hive支持更新和删除操作吗?](#0 Hive支持更新和删除操作吗?)

[1 Hive删除操作如何实现?](#1 Hive删除操作如何实现?)

[2 Hive更新操作如何实现?](#2 Hive更新操作如何实现?)

[3 小结](#3 小结)


0 Hive支持更新和删除操作吗?

Hive在默认情况下不支持更新和删除操作,但可以通过特定方式如使用ORCFileformat和AcidOutputFormat来实现。由于HDFS的一次写入,多次读取设计,Hive的更新操作非常低效。HDFS不采用多次写,多次读模式是为了避免事务处理和复杂性。随着业务需求发展,湖仓一体成为解决需要修改数据场景的新方案。

Hive对使用Update功能的表有特定的语法要求, 语法要求如下:

  • 要执行Update的表中, 建表时必须带有buckets(分桶)属性
  • 要执行Update的表中, 需要指定格式,其余格式目前赞不支持, 如:parquet格式, 目前只支持ORCFileformat和AcidOutputFormat
  • 要执行Update的表中, 建表时必须指定参数('transactional' = true);

经过实验,你会发现Hive的更新机制速度非常的慢

sql 复制代码
insert overwrite tmp 
select * from tmp where id != '666';

,在很小的数据集上更新,也要分钟级别,基本上处于不可用的状态,那么为什么Hive设计成不支持增删改查呢,我们一起聊聊根源。

1 Hive删除操作如何实现?

正常hive删除操作基本都是覆盖原数据;

sql 复制代码
insert overwrite tmp 
select * from tmp where id != '666';

2 Hive更新操作如何实现?

更新也是覆盖操作;

sql 复制代码
insert overwrite tmp 
select id,label,
       if(id = '1' and label = 'grade','25',value) as value 
from tmp where id != '666';

3 小结

本文给出了Hive中实现更新及删除操作的技巧,并分析了Hive中为什么不直接进行更新和删除操作的原因。

如果您觉得本文还不错,对你有帮助,那么不妨可以关注一下我的数字化建设实践之路专栏,这里的内容会更精彩。

专栏 原价99,现在活动价59.9,按照阶梯式增长,还差5个人上升到69.9,最终恢复到原价

专栏优势:

(1)一次收费持续更新。

(2)实战中总结的SQL技巧,帮助SQLBOY 在SQL语言上有质的飞越,无论你应对业务难题及面试都会游刃有余【全网唯一讲SQL实战技巧,方法独特

(3)实战中数仓建模技巧总结,让你认识不一样的数仓。【数据建模+业务建模,不一样的认知体系】(如果只懂数据建模而不懂业务建模,数仓体系认知是不全面的

(4)数字化建设当中遇到难题解决思路及问题思考。

我的 专栏具体链接如下:

数字化建设通关指南_莫叫石榴姐的博客-CSDN博客

https://blog.csdn.net/godlovedaniel/category_12706766.html

相关推荐
风途科技~6 小时前
FMCW 调频连续波雷达|非接触式雷达水位计精准把控液位变化
大数据·人工智能
jikemaoshiyanshi6 小时前
业务部门想了解开箱即用 AI Agent,AWS 中国峰会有哪些案例展示?
大数据·人工智能
数智化管理手记6 小时前
元数据管理怎么做?企业级元数据治理如何落地实操?
大数据·重构·云计算
ClouGence6 小时前
CloudDM:开源免费!一站式数据库访问、SQL审核、权限与脱敏管控平台
数据库·sql·开源
ivywriter7 小时前
【数字孪生】到底能解决什么实际问题?
大数据·人工智能·机器人
(轻舟已过万重山)7 小时前
第39章 评估迭代:上线只是开始,迭代才是关键
大数据·数据库·人工智能
oradh7 小时前
Oracle参数文件(PFILE与SPFILE)维护操作总结
数据库·oracle·oracle参数·spfile·pfile
l1t7 小时前
kryonix提交的DuckDB 统一并优化标量执行器基础设施 - #24564 PR
开发语言·数据库·数据仓库·sql
星恒讯工业路由器7 小时前
4G(LTE)基础技术解析:从频段划分到网络架构的核心知识点
大数据·网络·信息与通信·工业物联网·4g lte·lte网络架构·无线通信基础
鸽芷咕7 小时前
【金仓数据库征文】从 Oracle 到金仓:一次零误差的数据库国产化迁移实录
数据库·oracle