当前位置: 首页 > article >正文

presto操作hive数据的时候如何覆盖写数据

在hive中实现表数据覆盖写用的是insert overwrite,但是这个语句在presto中不支持,在presto中你需要在sql前面写上如下的参数

set session hive.insert_existing_partitions_behavior = 'overwrite';

这个配置其他两个参数值如下:

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


http://www.kler.cn/a/315193.html

相关文章:

  • 用 gdbserver 调试 arm-linux 上的 AWTK 应用程序
  • 一体式IO模块:打印机加工产线国产化降本增效的新利器
  • springboot vue 会员营销系统
  • Bluetooth Spec【0】蓝牙核心架构
  • VSCode搭建Java开发环境 2024保姆级安装教程(Java环境搭建+VSCode安装+运行测试+背景图设置)
  • 重拾设计模式--外观模式
  • Arthas sysenv(查看JVM的环境变量)
  • Give azure openai an encyclopedia of information
  • IDEA开发HelloWorld程序
  • Docker部署Joplin Server教程
  • 【ArcGISPro】配置模块
  • docker部署Stirling-PDF
  • 计算机网络笔记002
  • 【数据结构-二维差分】力扣2536. 子矩阵元素加 1
  • 插入与冒泡排序(C++)
  • C语言6大常用标准库 -- 4.<math.h>
  • Docker学习笔记(三)存储与卷
  • Vite + Vue + TypeScript 项目搭建总结
  • OpenMV学习第一步安装IDE_2024.09.20
  • 使用API有效率地管理Dynadot域名,为域名进行隐私保护设置
  • (C++23) expected 基础使用
  • hive-拉链表
  • 代码随想录算法训练营|151.翻转字符串里的单词 、卡码网:55.右旋转字符串
  • 分布式Redis(14)哈希槽
  • 深入理解Go并发编程:避免Goroutine泄漏与错误处理
  • C++_数据封装详解