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

相关推荐
知识分享小能手7 分钟前
Hadoop学习教程,从入门到精通, 部署Hadoop 3.x — 知识点详解(2)
大数据·hadoop·学习
Database_Cool_40 分钟前
AI 时代的数据仓库:阿里云 AnalyticDB MySQL 向量检索 + SQL 分析一体化实战
数据仓库·人工智能·mysql·阿里云
AQin10121 小时前
【对比向】既生瑜何生亮?不!Hive 和 Doris不一样
数据仓库·hive·hadoop·doris
段一凡-华北理工大学2 小时前
工业领域的Hadoop架构学习~系列文章19:能源行业Hadoop应用实践
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
Database_Cool_2 小时前
数据仓库弹性扩缩容实践:阿里云 AnalyticDB MySQL 按需付费方案详解
数据仓库·mysql·阿里云
zhangjin12222 小时前
DataX从入门到精通 第3课 ETL之DataX datax-web单表数据同步
数据仓库·etl·datax·datax-web·datax单表同步
AQin10122 小时前
【对比向】细算“成本”——Hive vs. Doris
大数据·数据库·hive·doris·实时数仓
知识分享小能手1 天前
Hadoop学习教程,从入门到精通, 初识Hadoop — 知识点详解(1)
大数据·hadoop·学习
青春万岁!!1 天前
hive分区表加字段后insert字段为空
数据仓库·hive·hadoop
Database_Cool_2 天前
AnalyticDB MySQL vs StarRocks/ByteHouse:云数仓选型指南——全托管 vs 自建方案
数据库·数据仓库·mysql·阿里云