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 31 MySQL
mysql 如何获取两个集合的交集/差集/并集
Jun 08 MySQL
MySQL命令无法输入中文问题的解决方式
Aug 30 MySQL
深入解析MySQL索引数据结构
Oct 16 MySQL
使用RedisTemplat实现简单的分布式锁
Nov 20 Redis
解决MySQL Varchar 类型尾部空格的问题
Apr 06 MySQL
SQL Server表分区降低运维和维护成本
Apr 08 SQL Server
MongoDB数据库之添删改查
Apr 26 MongoDB
mysql中关键词exists的用法实例详解
Jun 10 MySQL
hive数据仓库新增字段方法
Jun 25 数据库
MySQL一劳永逸永久支持输入中文的方法实例
Aug 05 MySQL
详解MySQL的内连接和外连接
May 08 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 编程的 5个良好习惯
2009/02/20 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
php表单处理操作
2017/11/16 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
匹配任意字符的正则表达式写法
2010/04/29 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
python 二维数组90度旋转的方法
2019/01/28 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
数控专业个人求职信范例
2013/11/29 职场文书
小学生新学期寄语
2014/01/19 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
《夕阳真美》教学反思
2014/04/27 职场文书
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
银行服务理念口号
2015/12/25 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP
Oracle用户管理及赋权
2022/04/24 Oracle