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表的增删改查(基础)
Apr 05 MySQL
MySQL Threads_running飙升与慢查询的相关问题解决
May 08 MySQL
Redis 配置文件重要属性的具体使用
May 20 Redis
Mysql数据库索引面试题(程序员基础技能)
May 31 MySQL
你知道哪几种MYSQL的连接查询
Jun 03 MySQL
新手入门Mysql--sql执行过程
Jun 20 MySQL
Redis源码阅读:Redis字符串SDS详解
Jul 15 Redis
sql时间段切分实现每隔x分钟出一份高速门架车流量
Feb 28 SQL Server
sqlserver连接错误之SQL评估期已过的问题解决
Mar 23 SQL Server
MySQL事务操作的四大特性以及并发事务问题
Apr 12 MySQL
MySql数据库触发器使用教程
Jun 01 MySQL
mysql查看表结构的三种方法总结
Jul 07 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来自动调用不同服务器上的flash
2006/10/09 PHP
PHP删除非空目录的函数代码小结
2013/02/28 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
PHP快速排序算法实现的原理及代码详解
2019/04/03 PHP
jquery的颜色选择插件实例代码
2008/10/02 Javascript
JavaScript 学习点滴记录
2009/04/24 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
简单的js计算器实现
2016/10/26 Javascript
Angular使用Md5加密的解决方法
2017/09/16 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
记录Django开发心得
2014/07/16 Python
浅谈Python中数据解析
2015/05/05 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
Python对象与引用的介绍
2019/01/24 Python
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
露营世界:Camping World
2017/02/02 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
中专生自我鉴定书范文
2013/12/28 职场文书
观看信仰心得体会
2014/09/04 职场文书
写给医生的感谢信
2015/01/22 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
nginx前后端同域名配置的方法实现
2021/03/31 Servers
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL