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

相关推荐
53488736abcdefg13 小时前
Hive 入门&架构原理
hive·hadoop·架构
泡干脆面就番茄16 小时前
Hadoop基础入门到实战:从Python理解MapReduce到HDFS架构与集群搭建
hadoop
磁场转动100万匹18 小时前
Hive 学习第一天:搞懂它是什么,并搭好可用的环境
hive·hadoop·学习
磁场转动100万匹19 小时前
Hive 学习第三天:HQL 查询精讲与内置函数实战
hive·hadoop·学习
陈年老古董20 小时前
Hive DML 语言学习笔记:数据加载、插入、导出与导入
hive·笔记·学习·mysql
clorinda20 小时前
Hive 窗口函数详解:让数据在分组中完成排名、累计和跨行计算
数据仓库·hive·hadoop
计算机毕业编程指导师1 天前
【计算机毕设选题】基于Hadoop的零售交易者行为特征与生存状况数据分析及可视化系统源码 毕业设计 选题推荐 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·零售
陈年老古董1 天前
Hive 文件格式与查询学习笔记
hive·笔记·学习
Sayai2 天前
ClickHouse WITH FILL 实战:监控大屏时间序列补零,附多粒度指标表与物化视图级联设计
大数据·运维·数据仓库·clickhouse·物化视图
计算机毕业编程指导师2 天前
计算机毕设怎么做?Python+Hadoop的跨平台消费者评论情感分析与数据可视化系统实战 源码 毕业设计 选题推荐 毕设选题 数据分析
大数据·hadoop·python·计算机·spark·课程设计·消费者评论