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 EXPLAIN输出列的详细解释
May 12 MySQL
MySQL中出现乱码问题的终极解决宝典
May 26 MySQL
ORACLE数据库应用开发的三十个注意事项
Jun 07 Oracle
mysql如何配置白名单访问
Jun 30 MySQL
MySQL的Query Cache图文详解
Jul 01 MySQL
mysql脏页是什么
Jul 26 MySQL
MySQL中B树索引和B+树索引的区别详解
Mar 03 MySQL
instantclient客户端 连接oracle数据库
Apr 26 Oracle
Redis高并发缓存架构性能优化
May 15 Redis
SQL Server中搜索特定的对象
May 25 SQL Server
mysql幻读详解实例以及解决办法
Jun 16 MySQL
postgresql如何找到表中重复数据的行并删除
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(2)――PHP类型
2010/02/15 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
2018/09/16 PHP
JCalendar 日历控件 v1.0 beta[兼容IE&Firefox] 有文档和例子
2007/05/30 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
JS获取表格视图所选行号的ids过程解析
2020/02/21 Javascript
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
简单了解python变量的作用域
2019/07/30 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
幼儿园秋游活动方案
2014/01/21 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
MySQL数字类型自增的坑
2021/05/07 MySQL
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS
JS 基本概念详细介绍
2021/10/16 Javascript