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...

数据库 相关文章推荐
MongoDB使用profile分析慢查询的步骤
Apr 30 MongoDB
Centos环境下Postgresql 安装配置及环境变量配置技巧
May 18 PostgreSQL
MySQL中in和exists区别详解
Jun 03 MySQL
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
Jun 30 SQL Server
SQL实现LeetCode(175.联合两表)
Aug 04 MySQL
SQL Server表分区删除详情
Oct 16 SQL Server
mysql5.6主从搭建以及不同步问题详解
Dec 04 MySQL
MYSQL如何查看进程和kill进程
Mar 13 MySQL
排查MySQL生产环境索引没有效果
Apr 11 MySQL
MySQL库表太大怎么办? 数据库分库分表项目实践
Apr 11 MySQL
SQL Server使用PIVOT与unPIVOT实现行列转换
May 25 SQL Server
mysql中关键词exists的用法实例详解
Jun 10 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分钟前、昨天10:23等)
2011/10/03 PHP
php调用新浪短链接API的方法
2014/11/08 PHP
php 删除cookie方法详解
2014/12/01 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
javascript forEach通用循环遍历方法
2010/10/11 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
2016/06/13 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
2018/05/04 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
深入理解python try异常处理机制
2016/06/01 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
python 读取txt,json和hdf5文件的实例
2018/06/05 Python
基于python实现简单日历
2018/07/28 Python
python动态视频下载器的实现方法
2019/09/16 Python
使用Python实现批量ping操作方法
2020/05/06 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
2014年招商工作总结
2014/11/22 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
理解深度学习之深度学习简介
2021/04/14 Python