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

5.Hive表修改Location,一次讲明白

Hive表修改Loction

  • 一、Hive中修改Location语句
  • 二、方案1 删表重建
    • 1. 创建表,写错误的Location
    • 2. 查看Location
    • 3. 删表
    • 4. 创建表,写正确的Location
    • 5. 查看Location
  • 三、方案2 直接修改Location并恢复数据
    • 1.建表,指定错误的Location,并插入数据
    • 2.修改表的Location
    • 3.对于新分区,插入数据时,新分区的路径会按照表的Location生成
    • 4.修复历史分区数据,通过hdfs命令修复

一、Hive中修改Location语句

ALTER TABLE table_name [PARTITION partition_spec] SET LOCATION "new location";

从修改Location语句可以看出,可以修改表的Location,也可以修改分区的的Location。
工作中建表时一般会显式指定表的Location,即数据的存储位置。
有时可能因为一些原因建表时Location写错了,这里给出一些解决方案。

二、方案1 删表重建

对于新建的表或者无下游依赖的表,可以选择删除表重新创建,这种方式比较简单,仅做简单演示。

1. 创建表,写错误的Location

CREATE EXTERNAL TABLE IF NOT EXISTS bi.test_alter_location
(id        INT COMMENT '编号'
) COMMENT '修改Location测试'
PARTITIONED BY (pt_day VARCHAR(8) COMMENT '天分区')
LOCATION 'hdfs://hadoop102:8020/user/hive/warehouse/bi.db/test'
;

2. 查看Location

DESC FORMATTED bi.test_alter_location;

查看Location

3. 删表

DROP TABLE IF EXISTS bi.test_alter_location;

删除表
这里需要注意一下,因为创建的是外部表,删表时并不会删除数据。因此需要检查一下该表的Location下是否有数据,有的话就进行删除。
检查语句如下:

hdfs dfs -ls hdfs://hadoop102:8020/user/hive/warehouse/bi.db/test;

检查路径下是否有数据
从查询结果来看,我这里没有数据。下面给出删除语句,供需要的人使用。
删除数据命令如下:

hdfs dfs -rm -r hdfs://hadoop102:8020/user/hive/warehouse/bi.db/test;

删除数据命令

4. 创建表,写正确的Location

创建语句如下:

CREATE EXTERNAL TABLE IF NOT EXISTS bi.test_alter_location
(id        INT COMMENT '编号'
) COMMENT '修改Location测试'
PARTITIONED BY (pt_day VARCHAR(8) COMMENT '天分区')
LOCATION 'hdfs://hadoop102:8020/user/hive/warehouse/bi.db/test_alter_location'
;

5. 查看Location

DESC FORMATTED bi.test_alter_location;

查看新建表的Location

三、方案2 直接修改Location并恢复数据

1.建表,指定错误的Location,并插入数据

建表:

CREATE EXTERNAL TABLE IF NOT EXISTS bi.test_alter_location_right
(id        INT COMMENT '编号'
) COMMENT '修改Location测试'
PARTITIONED BY (pt_day VARCHAR(8) COMMENT '天分区')
LOCATION 'hdfs://hadoop102:8020/user/hive/warehouse/bi.db/test_alter_location_wrong'
;

插入数据:

INSERT OVERWRITE TABLE bi.test_alter_location_right
PARTITION (pt_day = '20240127')
VALUES(1)
,(2)
;

查看数据:

SELECTid
FROM bi.test_alter_location_right
WHERE pt_day = '20240127'
;

查询数据

查看Location

DESC FORMATTED bi.test_alter_location_right PARTITION(pt_day = '20240127');

查看Location从后台查看文件情况

hdfs dfs -ls hdfs://hadoop102:8020/user/hive/warehouse/bi.db/test_alter_location_wrong/pt_day=20240127

后台查看文件情况

2.修改表的Location

修改语句:

ALTER TABLE bi.test_alter_location_right SET LOCATION "hdfs://hadoop102:8020/user/hive/warehouse/bi.db/test_alter_location_right";

查看表Location:

DESC FORMATTED bi.test_alter_location_right;

表的Location已修改正确

3.对于新分区,插入数据时,新分区的路径会按照表的Location生成

新分区插入数据:

INSERT OVERWRITE TABLE bi.test_alter_location_right
PARTITION (pt_day = '20240128')
VALUES(3)
,(4)
;

查看新分区的Location

DESC FORMATTED bi.test_alter_location_right PARTITION(pt_day = '20240128');

查看新分区的Location

4.修复历史分区数据,通过hdfs命令修复

修复命令:

hdfs dfs -mv hdfs://hadoop102:8020/user/hive/warehouse/bi.db/test_alter_location_wrong/pt_day=20240127 hdfs://hadoop102:8020/user/hive/warehouse/bi.db/test_alter_location_right/pt_day=20240127

查看新老路径下数据情况:

hdfs dfs -ls hdfs://hadoop102:8020/user/hive/warehouse/bi.db/test_alter_location_wrong/pt_day=20240127hdfs dfs -ls hdfs://hadoop102:8020/user/hive/warehouse/bi.db/test_alter_location_right/pt_day=20240127

查看新老路径下数据情况
从执行结果可以看出,数据已从老路径移动到新路径下了
通过表查询数据:

SELECTid
FROM bi.test_alter_location_right
WHERE pt_day = '20240127'
;

通过表查询数据
可以看到,并没有查询出数据。这是因为分区的Location未修改的缘故。
查询分区的Location:

DESC FORMATTED bi.test_alter_location_right PARTITION(pt_day = '20240127');

查询分区的Location
修改分区的Location:

ALTER TABLE bi.test_alter_location_right PARTITION(pt_day = '20240127') SET LOCATION "hdfs://hadoop102:8020/user/hive/warehouse/bi.db/test_alter_location_right/pt_day=20240127";

再次查询数据:

SELECTid
FROM bi.test_alter_location_right
WHERE pt_day = '20240127'

查询数据
可以看出,修改分区的Location后,可以正常查询数据了,数据修复完成。

相关文章:

5.Hive表修改Location,一次讲明白

Hive表修改Loction 一、Hive中修改Location语句二、方案1 删表重建1. 创建表,写错误的Location2. 查看Location3. 删表4. 创建表,写正确的Location5. 查看Location 三、方案2 直接修改Location并恢复数据1.建表,指定错误的Location&#xff0…...

基于springboot校园台球厅人员与设备管理系统源码和论文

在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括校园台球厅人员与设备管理系统的网络应用,在外国管理系统已经是很普遍的方式,不过国内的管理网站可能还处于起步阶段。校园台球厅人员与设备管理系统具…...

MySQL(下)

四、事务 一、概念 对数据库的一次执行中有多条sql语句执行。这多条sql在一次执行中,要么都成功执行,要么都不执行。保证了数据完整性。MySQL中只有innodb引擎支持事务。 二、特性 事务是必须满足 4 个条件(ACID)&#x…...

如何搭建开源笔记Joplin服务并实现远程访问本地数据

文章目录 1. 安装Docker2. 自建Joplin服务器3. 搭建Joplin Sever4. 安装cpolar内网穿透5. 创建远程连接的固定公网地址 Joplin 是一个开源的笔记工具,拥有 Windows/macOS/Linux/iOS/Android/Terminal 版本的客户端。多端同步功能是笔记工具最重要的功能,…...

免费分享一套微信小程序外卖跑腿点餐(订餐)系统(uni-app+SpringBoot后端+Vue管理端技术实现) ,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的微信小程序外卖跑腿点餐(订餐)系统(uni-appSpringBoot后端Vue管理端技术实现) ,分享下哈。 项目视频演示 【免费】微信小程序外卖跑腿点餐(订餐)系统(uni-appSpringBoot后端Vue管理端技术实现)…...

后端学习:数据库MySQL学习

数据库简介 数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库。   接下来,我们来学习Mysql的数据模型,数据库是如何来存储和管理数据的。在介绍 Mysql的数据模型之前,需要先了解一个概念&#xf…...

2024最新版IntelliJ IDEA安装使用指南

2024最新版IntelliJ IDEA安装使用指南 Installation and Usage Guide to the Latest JetBrains IntelliJ IDEA Community Editionn in 2024 By JacksonML JetBrains公司开发的IntelliJ IDEA一经问世,就受到全球Java/Kotlin开发者的热捧。这款集成开发环境&#xf…...

消息中间件及java线程池

1. ActiveMQ是什么? Apache ActiveMQ是一个开源的消息中间件(Message Oriented Middleware, MOM),它遵循Java消息服务(Java Message Service, JMS)规范,提供高效、可靠和异步的消息传递功能。Ac…...

关于axios给后端发送数据的问题

这里需要用的插件:qs.js,是前端给后端发送的数组,需要序列化所以要用到这个插件,这里就提取连接在这里,需要的自提,需要导如进来,别忘记了 链接:https://pan.baidu.com/s/1qyD8v9wfd…...

web前端之ES6的实用深度解构赋值方法、复杂的解构赋值

MENU 前言解构对象解构数组解构混用 前言 ES6中允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 使用解构赋值可以将复杂的代码整理的更加干净整洁。 解构对象 在没有使用解构之前,想要确定…...

uni-app 接口封装,token过期,自动获取最新的token

一、文件路径截图 2、新建一个文件app.js let hosthttp://172.16.192.40:8083/jeecg-boot/ //本地接口 let myApi {login: ${host}wx/wxUser/login, //登录 } module.exports myApi 3、新建一个文件request.js import myApi from /utils/app.js; export const r…...

AWS免费套餐——云存储S3详解

文章目录 前言一、为什么选择S3二、费用估算三、创建S3云存储注册账户登录账户创建存储桶关于官网相关文档 总结 前言 不论个人还是企业,日常开发中经常碰到需要将文档、安装包、日志等文件数据存储到服务器的需求。往常最常用的是云服务器,但是仅仅承担…...

2723. 两个 Promise 对象相加

说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 题目描述 给定两个 promise 对象 promise1 和 promise2,返回一个新的 promise。promise1 …...

【方法论】费曼学习方法

费曼学习方法是由诺贝尔物理学奖得主理查德费曼提出的一种学习方法。这种方法强调通过将所学的知识以自己的方式解释给别人来提高学习效果。 费曼学习方法的步骤如下: 选择一个概念:选择一个要学习的概念或主题。 理解和学习:用自己的方式学…...

Transformer模型 | Pytorch实现Transformer模型进行时间序列预测

Transformer模型最初是为了处理自然语言处理任务而设计的,但它也可以用于时间序列预测。下面是将Transformer模型应用于时间序列预测的一般步骤: 数据准备:准备时间序列数据集,包括历史观测值和目标预测值。通常,你需要将时间序列转换为固定长度的滑动窗口序列,以便输入…...

Git推送大量内容导致http 413错误

Git推送大量内容导致服务端HTTP 413错误 问题描述 使用git push 大量变更内容(超过60M)时报 http 413错误,详细错误信息: Compressing objects: 100% (2907/2907), done. Writing objects: 100% (6760/6760), 64.18 MiB | 1.18…...

pytest框架的基本使用

1. 测试框架的作用 测试框架不关系用例的内容 它关心的是:用例编排和结果收集 2. pytest框架的特点 1. 适用于python语言 2. 用法符合python风格 3. 有丰富的生态 3. 安装pytest框架 1. 新建一个项目 2. 在项目终端窗口输入如下命令,用于安装py…...

C++STL之map、set的使用和模拟实现

绪论​: “我这个人走得很慢,但是我从不后退。——亚伯拉罕林肯”,本章是接上一章搜索二叉树中红黑树的后续文章,若没有看过强烈建议观看,否则后面模拟实现部分很看懂其代码原理。本章主要讲了map、set是如何使用的&am…...

100天精通鸿蒙从入门到跳槽——第18天:ArkTS组件状态管理装饰器

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》 — Go语言学习之旅!《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师!100天…...

【前端】防抖

防抖用于限制连续触发的事件的执行频率。当一个事件被触发时,防抖会延迟一定的时间执行对应的处理函数。如果在延迟时间内再次触发了同样的事件,那么之前的延迟执行将被取消,重新开始计时 场景 :用户输入 项目中遇到的场景,需要鼠标悬浮在图表的时候,将ToolsTip里的数据…...

BERT自然语言处理模型:从入门到实践完整指南

BERT自然语言处理模型:从入门到实践完整指南 【免费下载链接】bert TensorFlow code and pre-trained models for BERT 项目地址: https://gitcode.com/gh_mirrors/be/bert BERT(Bidirectional Encoder Representations from Transformers&#x…...

小白也能玩转DeepSeek-R1:Ollama一键部署推理模型实战

小白也能玩转DeepSeek-R1:Ollama一键部署推理模型实战 还在为复杂的AI模型部署而烦恼吗?DeepSeek-R1-Distill-Llama-8B作为一款强大的文本生成模型,现在通过Ollama平台可以轻松实现一键部署。本文将带你从零开始,只需3个简单步骤…...

雯雯的后宫-造相Z-Image-瑜伽女孩实战教程:结合ControlNet实现精准体式控制

雯雯的后宫-造相Z-Image-瑜伽女孩实战教程:结合ControlNet实现精准体式控制 1. 从零开始:环境准备与模型部署 想要生成专业的瑜伽女孩图片,首先需要搭建好环境。雯雯的后宫-造相Z-Image-瑜伽女孩是一个专门针对瑜伽场景优化的文生图模型&am…...

OpenClaw技能市场探索:GLM-4.7-Flash加持的10个实用插件

OpenClaw技能市场探索:GLM-4.7-Flash加持的10个实用插件 1. 为什么需要关注OpenClaw技能市场? 当我第一次接触OpenClaw时,最让我惊喜的不是它的基础功能,而是它丰富的技能市场生态。作为一个长期使用各类自动化工具的技术爱好者…...

GEO时代媒体发布新范式:Infoseek如何用工程思维重构内容分发

上周跟一个做技术社区运营的朋友聊天,他吐槽了一件事:公司新功能上线,想发篇技术解读稿,找了家公关公司报价,一篇3000块,承诺发30家媒体,但具体发哪家、什么时候发、效果怎么样,全凭…...

4步打造高效能开源路由器:OpenWrt固件安装指南

4步打造高效能开源路由器:OpenWrt固件安装指南 【免费下载链接】openwrt openwrt编译更新库X86-R2C-R2S-R4S-R5S-N1-小米MI系列等多机型全部适配OTA自动升级 项目地址: https://gitcode.com/GitHub_Trending/openwrt5/openwrt OpenWrt固件安装是提升R5S设备性…...

告别996!用Google Antigravity的Agent-First模式,5分钟搞定React Native与Android原生桥接模块

告别996!用Google Antigravity的Agent-First模式,5分钟搞定React Native与Android原生桥接模块 如果你是一位长期奋战在Android与React Native混合开发一线的工程师,一定对"桥接模块"这个词汇又爱又恨。每当产品经理提出"我们…...

3种技术方案将ComfyUI模型下载速度提升400%:多线程加速与断点续传深度优化

3种技术方案将ComfyUI模型下载速度提升400%:多线程加速与断点续传深度优化 【免费下载链接】ComfyUI-Manager 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager 在AI创作工作流中,大模型文件的下载效率直接影响创作体验。当面对数G…...

避开这些坑!个人免签支付平台实战对比:蓝鲸、V云、云免签到底怎么选?

个人免签支付平台深度评测:如何根据业务需求选择最优方案? 对于独立开发者和小型站长来说,支付接入一直是令人头疼的问题。没有企业资质无法直接对接官方支付渠道,而传统的第三方支付平台又往往门槛高、手续费昂贵。近年来兴起的个…...

LoRA训练助手效果展示:动漫风格迁移作品集

LoRA训练助手效果展示:动漫风格迁移作品集 1. 引言 你是否曾经想过,把自己拍摄的普通照片转换成新海诚风格的唯美画面,或者让日常场景拥有吉卜力工作室的梦幻质感?现在,这一切都不再是梦想。通过LoRA训练助手&#x…...