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

相关推荐
元6332 小时前
spark和hadoop之间的对比和联系
大数据·hadoop·spark
哥不是小萝莉4 小时前
Hadoop和Spark大数据挖掘与实战
hadoop·ai·spark
lix的小鱼5 小时前
spark和Hadoop之间的对比和联系
大数据·hadoop·spark
晴天彩虹雨7 小时前
Flink 数据清洗与字段标准化最佳实践
大数据·数据仓库·flink
TTBIGDATA8 小时前
如何将 Apache Hudi 接入 Ambari?完整部署与验证指南
大数据·hadoop·ambari·hudi·bigtop·湖仓·自定义组件集成
IT成长日记10 小时前
【Hive入门】Hive数据导出完全指南:从HDFS到本地文件系统的专业实践
hive·hadoop·hdfs·数据导出
向上的车轮11 小时前
数据湖DataLake和传统数据仓库Datawarehouse的主要区别是什么?优缺点是什么?
数据仓库
IT成长日记11 小时前
【Hive入门】Hive概述:大数据时代的数据仓库桥梁
大数据·数据仓库·hive·sql优化·分布式计算
大数据魔法师13 小时前
Hadoop生态圈框架部署 - Windows上部署Hadoop
大数据·hadoop·windows
渣渣盟13 小时前
大数据开发环境的安装,配置(Hadoop)
大数据·hadoop·分布式