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

相关推荐
大叔_爱编程3 小时前
基于大数据的短视频用户兴趣分析-hive+django+spider
大数据·hive·django·毕业设计·源码·课程设计·spider
张人玉4 小时前
大数据hadoop系列——在ubuntu上安装HBase 伪分布式
大数据·hadoop·分布式·hbase
笨蛋少年派5 小时前
数据仓库建设知识扫盲
数据仓库
张人玉5 小时前
大数据Hadoop系列——在ubuntu上安装pig数据库
大数据·hadoop·ubuntu·pig
李慕婉学姐6 小时前
【开题答辩过程】以《基于Hadoop的医生相关数据分析与可视化及医生推荐系统》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
大数据·hadoop·数据分析
张人玉6 小时前
大数据hadoop系列——在ubuntu上安装hadoop完分布式
大数据·hadoop·分布式
张人玉6 小时前
大数据Hadoop系列——在ubuntu上安装Hive 嵌入式
大数据·hadoop·ubuntu
云闲不收6 小时前
hive和hadoop如何部署
数据仓库·hive·hadoop
李慕婉学姐7 小时前
【开题答辩过程】以《基于Hadoop架构的体育类短视频推荐系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
大数据·hadoop·架构
RioLopez7 小时前
大数据HADOOP之部署HADOOP平台
大数据·hadoop·eclipse