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 11 MySQL
MySQL Router实现MySQL的读写分离的方法
May 27 MySQL
Oracle以逗号分隔的字符串拆分为多行数据实例详解
Jul 16 Oracle
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
Sep 04 SQL Server
MySQL中datetime时间字段的四舍五入操作
Oct 05 MySQL
MySQL表类型 存储引擎 的选择
Nov 11 MySQL
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
Mar 16 Redis
SQL Server中搜索特定的对象
May 25 SQL Server
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
May 25 SQL Server
mysql拆分字符串作为查询条件的示例代码
Jul 07 MySQL
SQL bool盲注和时间盲注详解
Jul 23 SQL Server
Redis实战之Lettuce的使用技巧详解
Dec 24 Redis
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 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
php中根据变量的类型 选择echo或dump
2012/07/05 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
javascript 必知必会之closure
2009/09/21 Javascript
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
python3操作微信itchat实现发送图片
2018/02/24 Python
python爬取各类文档方法归类汇总
2018/03/22 Python
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
2020/02/20 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
python实现简单遗传算法
2020/09/18 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
性能服装:HYLETE
2018/08/14 全球购物
买房子个人收入证明
2014/01/16 职场文书
生物技术专业求职信
2014/06/10 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
党建工作汇报材料
2014/12/24 职场文书
绿色环保倡议书
2015/04/28 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
golang 实现Location跳转方式
2021/05/02 Golang
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript