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

相关推荐
RestCloud12 小时前
ETL与数据湖Hudi的集成与操作
数据仓库·etl·hudi·数据同步·数据集成平台
苛子12 小时前
实时数据同步工具横评:ETLCloud vs 帆软FDL,谁更适合企业数据平台?
数据仓库·etl
德昂信息dataondemand12 小时前
ETL:解锁数据价值的 “黄金转换器
数据仓库·etl
ApacheSeaTunnel14 小时前
(三)ODS/明细层落地设计要点:把数据接入层打造成“稳定可运维”的基础设施
数据库·数据仓库·数据湖·白鲸开源
网络工程小王15 小时前
【大数据技术详解】——HDFS技术(学习笔记)
hadoop·hdfs·big data
SelectDB技术团队19 小时前
易车 × Apache Doris:构建湖仓一体新架构,加速 AI 业务融合实践
数据仓库·人工智能·数据分析·agent·apache doris·mcp·易车
王的宝库21 小时前
MapReduce / Hive / Pig :从底层批处理到 SQL/脚本落地
hive·hadoop·sql·mapreduce
升职佳兴1 天前
告别 nohup:Hive Metastore 交给 systemd 托管的完整步骤
数据仓库·hive·hadoop
IT从业者张某某1 天前
Docker部署Hadoop-01-Docker安装
hadoop·docker·eureka
小哥哥咯1 天前
数据仓库维度建模思维导图—— 基于《The Data Warehouse Toolkit, 3rd Edition》(第三版修订版)
大数据·数据仓库