presto操作hive数据的时候如何覆盖写数据

在hive中实现表数据覆盖写用的是insert overwrite,但是这个语句在presto中不支持,在presto中你需要在sql前面写上如下的参数

sql 复制代码
set session hive.insert_existing_partitions_behavior = 'overwrite';

这个配置其他两个参数值如下:

sql 复制代码
set session hive.insert_existing_partitions_behavior = 'append';
set session hive.insert_existing_partitions_behavior = 'error';

默认是append追加写,error一般情况下用不到

带上这个参数之后,正常写insert into语句就行,已存在的分区中的数据会被覆盖,若分区不存在会新建。

要注意的是,有的人会先delete旧数据,但是这种操作会造成分区结构被删掉但是同时底层文件仍然存在的问题,Presto认为该分区不存在,需要新建分区,但底层文件其实还存在,这样会造成 Unable to rename ... 的报错。需要手动去hadoop里删掉底层数据

同时要注意你使用的发行版是那个,博主之前用过李老板家的BOS,那个服务的第三方路径是dgs,因此这个配置被封装成了hivedgs.insert_existing_partitions_behavior

相关推荐
Gain_chance30 分钟前
25-学习笔记尚硅谷数仓搭建-DIM层其余(优惠卷、活动、地区、营销坑位、营销渠道、日期)维度表建表语句、简单分析
数据仓库·笔记·学习
小邓睡不饱耶1 小时前
Hadoop:从架构原理到企业级实战,大数据处理入门到精通
大数据·hadoop·架构
Francek Chen1 小时前
【大数据基础】大数据处理架构Hadoop:03 Hadoop的安装与使用
大数据·hadoop·分布式·架构
小邓睡不饱耶1 小时前
Hadoop 进阶:企业级项目实战、生态深度整合与故障排查
大数据·hadoop·分布式
小邓睡不饱耶1 小时前
深耕 Hadoop:内核优化、分布式一致性与大规模集群实战
大数据·hadoop·分布式
SelectDB技术团队1 天前
上市大模型企业数据基础设施的选择:MiniMax 基于阿里云 SelectDB 版,打造全球统一AI可观测中台
数据库·数据仓库·人工智能·ai·apache
weixin_462446231 天前
Hive Metastore 使用 MySQL 8(CJ 驱动)完整配置实战(含完整 Shell 脚本)
hive·hadoop·mysql
zgl_200537791 天前
源代码:ZGLanguage 解析SQL数据血缘 之 显示 MERGE SQL 结构图
数据库·数据仓库·hive·数据治理·etl·sql解析·数据血缘
Gain_chance1 天前
24-学习笔记尚硅谷数仓搭建-DIM层的维度表建表思路及商品表维度表的具体建表解析
数据仓库·hive·笔记·学习·datagrip
编程小风筝1 天前
MySQL数据库如何实现实现数据仓库存储?
数据库·数据仓库·mysql