hive数据仓库新增字段方法


Posted in 数据库 onJune 25, 2022

新增字段

1、方法1

alter table 表名 add columns (列名 string COMMENT '新添加的列') CASCADE;
alter table 表名 add columns (列名 string COMMENT '新添加的列');
hive表中指定位置增加一个字段
分两步,先添加字段到最后(add columns),然后再移动到指定位置(change)
alter table 表名 add columns (列名 string comment '当前时间'); -- 正确,添加在最后
alter table 表名 change 列名 string after 指定位置的列名; -- 正确,移动到指定位置,address字段的后面

添加之后字段由于hive底层是文件和系列化的设计,因此查数据会发现新增的列在所有已有列的后面

CASCADE会刷历史分区字段

cascade知识

  • cascade的中文翻译为“级联”,也就是不仅变更新分区的表结构(metadata),同时也变更旧分区的表结构。
  • 对于删除操作也是,级联删除表中的信息,当表A中的字段引用了表B中的字段时,一旦删除B中该字段的信息,表A的信息也自动删除。(当父表的信息删除,子表的信息也自动删除)
  • 标准语法如下:

hive数据仓库新增字段方法

2、方法2 (适用于外部表)

当分区过多的情况下,直接使用alter就行增加字段会报错

第一步:删除分区 ,当分区过多可以写个for循环

alter table table_name drop if exists partition(par_col=col_name)

第二步:使用alter操作就行添加字段,这时候就不会因为分区过多报错

第三步:进行修复分区

msck repair table 表名;

3、方法3(下下策)

创建新表修改表名,进行存储原表数据

将原表进行drop,再对新表进行改名操作

ALTER TABLE old_name RENAME TO new_name;

修改字段

alter table table_name change column 已有列 修改名称 类型 comment '';

删除列

Hive不能直接删除列,不然底层系列化就乱了,我们可以通过replace语句来替换整张表的字段,达到同样的效果

alter table table_name replace columns(column_1 string);

语句中只写想要保留的字段就可以

以上就是hive中新增字段方法的详细内容,更多关于hive新增字段的资料请关注三水点靠木其它相关文章!


Tags in this post...

数据库 相关文章推荐
多表查询、事务、DCL
Apr 05 MySQL
52条SQL语句教你性能优化
May 25 MySQL
MySQL5.7并行复制原理及实现
Jun 03 MySQL
浅谈MySQL之select优化方案
Aug 07 MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
Oct 15 MySQL
SQL中的三种去重方法小结
Nov 01 SQL Server
MySQL和Oracle批量插入SQL的通用写法示例
Nov 17 MySQL
一文搞懂Redis中String数据类型
Apr 03 Redis
Redis实现订单过期删除的方法步骤
Jun 05 Redis
浅谈Redis变慢的原因及排查方法
Jun 21 Redis
浅谈MySql update会锁定哪些范围的数据
Jun 25 MySQL
MySQL的意向共享锁、意向排它锁和死锁
Jul 15 MySQL
Hive导入csv文件示例
Jun 25 #数据库
Hive HQL支持2种查询语句风格
Jun 25 #数据库
Hive日期格式转换方法总结
Jun 25 #数据库
PostgreSQL怎么创建分区表详解
Jun 25 #PostgreSQL
Mysql中的触发器定义及语法介绍
Jun 25 #MySQL
Hive常用日期格式转换语法
Jun 25 #数据库
MySQL数据库配置信息查看与修改方法详解
Jun 25 #MySQL
You might like
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
微信小程序实现左滑修改、删除功能
2020/10/19 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
Python中取整的几种方法小结
2017/01/06 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
Python实现动态循环输出文字功能
2020/05/07 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
介绍一下#error预处理
2015/09/25 面试题
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
个人简历自荐信
2013/12/05 职场文书
市场营销专业个人求职信范文
2013/12/14 职场文书
社会实践心得体会
2014/01/03 职场文书
《和我们一样享受春天》教学反思
2014/02/07 职场文书
党组织领导班子整改方案
2014/10/25 职场文书
财务检查整改报告
2014/11/06 职场文书
活动费用申请报告
2015/05/15 职场文书
初中地理教学反思
2016/02/19 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS
python全面解析接口返回数据
2022/02/12 Python
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android