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

相关推荐
RestCloud1 小时前
如何用ETL做实时风控?从交易日志到告警系统的实现
数据库·数据仓库·kafka·数据安全·etl·数据处理·数据集成
咨询QQ:4877392785 小时前
探索Qt下的UI皮肤生成器:多风格与编译那些事儿
hive
阿杰同学5 小时前
Hadoop 面试题及答案整理,最新面试题
大数据·hadoop·分布式
皓空揽月7 小时前
Ubuntu 单机安装 Hadoop 3.2.4教程
linux·hadoop·ubuntu
QQ12958455049 小时前
SSAS-检查字段里的不可见字符
数据库·数据仓库·数据分析
YiRan_Zhao9 小时前
spark读取odps(maxcompute)数据配置idea
大数据·数据仓库·odps
lalala_lulu10 小时前
Jsp的四种作用域(超详细)
java·开发语言·hive
写代码的【黑咖啡】1 天前
HDFS简介及其存储机制详解
大数据·hadoop·hdfs
俊哥大数据1 天前
【项目实战1】大数据项目开发案例---新闻资讯离线分析|实时分析|大数据仓库|推荐系统|数据可视化项目
数据仓库·hadoop·flink·spark·推荐系统·实时分析·离线分析
忘记9261 天前
Servlet 生命周期
数据仓库·hive·hadoop