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

相关推荐
AllData公司负责人2 小时前
通过Postgresql同步到Doris,全视角演示AllData数据中台核心功能效果,涵盖:数据入湖仓,数据同步,数据处理,数据服务,BI可视化驾驶舱
java·大数据·数据库·数据仓库·人工智能·python·postgresql
WL_Aurora7 小时前
HDFS底层原理深度解析 | 读写流程、NameNode工作机制、DataNode心跳与数据完整性
大数据·hadoop·hdfs
Pushkin.9 小时前
新数仓建设方法论与实践指南-分层解耦驱动的数据仓库
大数据·数据仓库
m0_7162550011 小时前
二、Hadoop 面试必背 | 三、Hive 面试必背
大数据·hadoop·面试
Pushkin.12 小时前
【新】数据仓库分层建模实战指南:从混乱到有序的工程实践
数据仓库
Volunteer Technology12 小时前
HDFS扩缩容及数据迁移
大数据·hadoop·hdfs
3D霸霸1 天前
Sourcetree 拉取新工程
数据仓库·unity
Volunteer Technology1 天前
Hadoop NameNode HA
大数据·hadoop·分布式
大大大大晴天1 天前
Flink集群跨机房容灾:HDFS 快照权限踩坑与实践
hadoop·flink
Leo.yuan1 天前
企业数字化转型选型指南:FineBI如何助力数据驱动决策?
数据仓库·人工智能·信息可视化