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触发器的使用
May 24 MySQL
解析高可用Redis服务架构分析与搭建方案
Jun 20 Redis
Oracle以逗号分隔的字符串拆分为多行数据实例详解
Jul 16 Oracle
MySQL实例精讲单行函数以及字符数学日期流程控制
Oct 15 MySQL
Redis如何使用乐观锁(CAS)保证数据一致性
Mar 25 Redis
MySQL创建管理HASH分区
Apr 13 MySQL
pt-archiver 主键自增
Apr 26 MySQL
Mysql InnoDB 的内存逻辑架构
May 06 MySQL
MySQL中的全表扫描和索引树扫描
May 15 MySQL
MySQL数据库 任意ip连接方法
May 20 MySQL
Redis实现主从复制方式(Master&Slave)
Jun 21 Redis
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
Jun 28 Oracle
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
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
JavaScript通过join函数连接数组里所有元素的方法
2015/03/20 Javascript
js中this用法实例详解
2015/05/05 Javascript
深入解读JavaScript中的Iterator和for-of循环
2015/07/28 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
JS实现轮播图效果
2020/01/11 Javascript
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
2016/10/09 Python
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
Python collections模块使用方法详解
2019/08/28 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
python 爬取马蜂窝景点翻页文字评论的实现
2020/01/20 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
意大利和国际奢侈品牌购物网站:Suitnegozi.com
2021/01/15 全球购物
上课说话检讨书
2015/01/27 职场文书