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...

数据库 相关文章推荐
Mysql systemctl start mysqld报错的问题解决
Jun 03 MySQL
SQL IDENTITY_INSERT作用案例详解
Aug 23 MySQL
详细聊聊MySQL中慢SQL优化的方向
Aug 30 MySQL
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
Feb 12 Redis
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
Mar 23 MySQL
SQL Server数据库查询出现阻塞之性能调优
Apr 10 SQL Server
mysql 乱码 字符集latin1转UTF8
Apr 19 MySQL
MySQL数据库事务的四大特性
Apr 20 MySQL
SQL Server中锁的用法
May 20 SQL Server
浅谈Redis的事件驱动模型
May 30 Redis
Redis入门基础常用操作命令整理
Jun 01 Redis
MySQL池化框架学习接池自定义
Jul 23 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
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
js技巧--转义符"\"的妙用
2007/01/09 Javascript
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
python从入门到精通(DAY 3)
2015/12/20 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
详解Python 解压缩文件
2019/04/09 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
如何定义TensorFlow输入节点
2020/01/23 Python
戴森美国官网:Dyson美国
2016/09/11 全球购物
普通院校学生的自荐信
2013/11/27 职场文书
入职担保书范文
2014/05/21 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
清明节主题班会
2015/08/14 职场文书
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python