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中in和exists区别详解
Jun 03 MySQL
MongoDB数据库的安装步骤
Jun 18 MongoDB
SQL实现LeetCode(176.第二高薪水)
Aug 04 MySQL
浅谈MySQL之select优化方案
Aug 07 MySQL
SQL IDENTITY_INSERT作用案例详解
Aug 23 MySQL
MyBatis 动态SQL全面详解
Oct 05 MySQL
Springboot/Springcloud项目集成redis进行存取的过程解析
Dec 04 Redis
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
Mar 22 MySQL
navicat 连接Ubuntu虚拟机的mysql的操作方法
Apr 02 MySQL
Mysql 8.x 创建用户以及授予权限的操作记录
Apr 18 MySQL
sql查询语句之平均分、最高最低分及排序语句
May 30 MySQL
MySQL新手入门进阶语句汇总
Sep 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
php 冒泡排序 交换排序法
2011/05/10 PHP
php实现读取手机客户端浏览器的类
2015/01/09 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
利用yarn实现一个webpack+react种子
2016/10/25 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
python socket 超时设置 errno 10054
2014/07/01 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
详解Python中的测试工具
2019/06/09 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
python如何求圆的面积
2020/07/01 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
费用会计岗位职责
2014/01/01 职场文书
基督教婚礼主持词
2014/03/14 职场文书
高三学生评语大全
2014/04/25 职场文书
三问三解心得体会
2014/09/05 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
初一军训感言
2015/08/01 职场文书
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
2022/04/11 Vue.js