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

相关推荐
juniperhan19 小时前
Flink 系列第25篇:Flink SQL 集成 Hive 实践:流批一体下的实时数仓利器
大数据·数据仓库·hive·分布式·sql·flink
Irene199120 小时前
Sqoop 安装完整教程(基于 WSL2 + Ubuntu 24.04)
hadoop·ubuntu·sqoop
一个数据大开发2 天前
大模型时代的数据中台架构演进:从数据仓库到认知引擎
数据仓库·架构
r-t-H2 天前
从零开始搭建CDH-第十二章
linux·hive·spark·centos·hbase
m0_639310793 天前
大数据技术原理-HDFS的安装与应用
java·大数据·jvm·hadoop·spring·hdfs·eclipse
188105069633 天前
摸鱼事务所——团队作业——大模型评测作业
大数据·hadoop·分布式
我思故我在78963 天前
hdfs文件系统
大数据·hadoop·hdfs
大连赵哥3 天前
分布式文件存储系统:Hadoop HDFS
hadoop·分布式·hdfs
王小王-1233 天前
基于Hadoop的服装电商数据分析系统【Hdfs、flume、HIve、sqoop、MySQL、echarts】
hive·hadoop·hdfs·服装电商分析·服装大数据
青春万岁!!3 天前
hiveSQL脚本性能优化-减少表扫描
大数据·hive·sql