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

相关推荐
2501_938773992 小时前
《Hadoop 与 Spark 融合路径:基于 Spark on YARN 的部署与调优技巧》
大数据·hadoop·spark
2501_938773992 小时前
大数据离线处理:使用 Airflow 调度 Hive 脚本的工作流设计
大数据·hive·hadoop
智海观潮3 小时前
Hive的架构设计和建表语义
大数据·hadoop·apache hive
Timer_Cooker3 小时前
Hive 分区表变更字段长度不生效
数据仓库·hive·hadoop
B站_计算机毕业设计之家14 小时前
python电商商品评论数据分析可视化系统 爬虫 数据采集 Flask框架 NLP情感分析 LDA主题分析 Bayes评论分类(源码) ✅
大数据·hadoop·爬虫·python·算法·数据分析·1024程序员节
2501_9387820915 小时前
《Ubuntu 系统下 MySQL 安装前的环境检查与依赖准备指南》
hive·mysql·ubuntu·adb
RestCloud19 小时前
让数据流动更智能:元数据如何重塑DataOps与ETL
数据仓库·etl·数据处理·数据传输·元数据·数据集成平台·dataops
2501_9387820920 小时前
《大数据框架选型指南:Hadoop 与 Spark 的性能、成本与扩展性对比》
大数据·hadoop·spark
梦里不知身是客111 天前
hive的SQL语句练习2
hive·hadoop·sql
梦里不知身是客111 天前
hive的SQL练习3
hive·hadoop·sql