动态分区添加的新字段无法插入数据

我们在使用动态分区的进程中,有时候需要新增字段,新增之后,发现该字段一直为空,无论怎么插入数据,该字段值始终不变。过去的做法就是把表删了,重建带新字段的新表,问题就解决了,今天尝试了一种新的方法,也完美解决了这个问题。

ALTER TABLE table_name [PARTITION partition_spec] CHANGE [COLUMN] col_old_name col_new_name column_type[COMMENT col_comment] [FIRST|AFTER column_name] [CASCADE|RESTRICT];--简单些:
alter table tb_name alter column_name cascade/restrict;

我们添加字段的时候选择CASCADE,再往老分区里面重新写入数据,该字段就能更新了。

原理:

cascade

有递归的含义,在删除数据库时加上它,不论该数据库下是否有表,一律删除;
在修改分区表的时候,会把所有分区全部修改,分区太多,修改会耗更长时间;

restrict

在删除表时,加上该关键字,如果该数据库下有表,不会删除;
在修改分区表时,不会修改老分区,只修改新分区,即:不管以前,只修改当前。

而restrict 是默认值,避免误删等误操作,如果有特殊需求,我们要带上cascade

hive> drop database test1;
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Database test1 is not empty. One or more tables exist.)
hive> 

我的操作:

1.数据库现有2016和2017年的数据:

Partition test1.apd_bas_bay_p_f1{buy_year=2016} stats: [numFiles=1, numRows=272, totalSize=8167, rawDataSize=180608]
Partition test1.apd_bas_bay_p_f1{buy_year=2017} stats: [numFiles=1, numRows=206, totalSize=6766, rawDataSize=135960]

2.添加字段:

hive> alter table APD_BAS_BAY_P_F1 add columns(buy_month int) restrict;
OK
Time taken: 0.192 seconds

3.更新2016,2017年的数据:

INSERT overwrite table APD_BAS_BAY_P_F PARTITION(BUY_YEAR) SELECT ID,SEQ_ID,CNAME,PHONE_NUM,PRODUCT_NAME,PRODUCT_CODE,PRICE,AMT,TOTAL_COST,BUY_DATE,BUY_WAY_FALG,SUBSTR(BUY_DATE,0,4) AS BUY_YEAR FROM BAK.APD_BAS_BAY_P_F_BAK WHERE SUBSTR(BUY_DATE,0,4)<2018;

4.查看结果:

hive> select * from APD_BAS_BAY_P_F1 where buy_year=2017;
OK
2	s00002	钱维言	18355249330	iphoneXR	iphoneXR	5599	1	5599	2017/11/16 17:45	1	NULL	2017
4	s00004	黎玲丞	17689073874	iphoneXR	iphoneXR	5599	1	5599	2017/9/14 21:28	1	NULL	2017
11	s00011	邱可达	13777770406	iphoneXR	iphoneXR	5599	1	5599	2017/11/9 13:14	1	NULL	2017
13	s00013	彭华柴	18087071823	华为P30pro	HWP30P	3499	1	3499	2017/8/21 21:30	2	NULL	2017
17	s00017	董琛雄	13739393668	华为P30pro	HWP30P	3499	1	3499	2017/12/21 8:25	2	NULL	2017
18	s00018	崔谚征	17742572922	iphoneXR	iphoneXR	5599	1	5599	2017/12/6 14:54	2	NULL	2017
21	s00021	汪芸冉	14507260060	oppoR20	oppoR20	3599	1	3599	2017/10/31 15:51	1	NULL	2017
34	s00034	龚言字	13345452438	华为mate20pro	mate20P	5999	1	5999	2017/8/19 19:50	1	NULL	2017
36	s00036	谢彤沂	15600489793	华为mate20X	mate20X	4999	5	24995	2017/10/19 17:34	1	NULL	2017
40	s00040	龚悦	17768059644	荣耀20	H20	2499	1	2499	2017/8/1 12:47	1	NULL	2017
41	s00041	吴煌	15070716341	小米9	M9	3499	1	3499	2017/9/29 20:09	2	NULL	2017
49	s00049	董竹延	18686139632	oppoR20	oppoR20	3599	1	3599	2017/12/25 10:40	1	NULL	2017
54	s00054	蔡辅	19902324268	oppoR20	oppoR20	3599	1	3599	2017/10/18 17:15	1	NULL	2017
59	s00059	苏海焓	18777776176	iphoneXR	iphoneXR	5599	1	5599	2017/12/3 10:03	1	NULL	2017
63	s00063	杜恬忆	17845519083	荣耀20	H20	2499	1	2499	2017/8/29 14:55	2	NULL	2017
64	s00064	许谦	17048385976	华为P20	mate20B	12999	1	12999	2017/10/27 21:11	1	NULL	2017
65	s00065	江梅丰	17328046851	小米9	M9	3499	1	3499	2017/9/15 21:48	2	NULL	2017
83	s00083	杨寒功	17332351757	荣耀v20	Hv20	2999	1	2999	2017/10/5 18:23	1	NULL	2017
91	s00091	覃承	15334762451	荣耀20pro	H20P	3499	1	3499	2017/12/24 11:21	2	NULL	2017

新增的字段仍是空值。

5.插入2018和2019年的数据,查询:

hive> select * from APD_BAS_BAY_P_F1 where buy_year=2018;
OK
1	s00001	陶娴依	17609686974	iphoneXR	iphoneXR	5599	1	5599	2018/1/1 15:41	1	201801	2018
3	s00003	贺梅	18626038839	华为mate20保时洁	mate20B	12999	1	12999	2018/1/20 14:25	1	201801	2018
5	s00005	彭胜骏	13427744202	华为mate20	mate20	3399	1	3399	2018/6/3 11:00	1	201806	2018
6	s00006	余珊绮	17237083372	oppoR20	oppoR20	3599	1	3599	2018/12/27 21:54	1	201812	2018
7	s00007	郭冉	13384397593	荣耀20	H20	2499	1	2499	2018/2/19 11:29	1	201802	2018
8	s00008	苏文展	13192977655	iphoneX	iphoneX	5999	1	5999	2018/11/2 20:58	2	201811	2018
12	s00012	韩易	17873194514	三星肝垃圾X	GLSX	6599	1	6599	2018/2/11 20:45	1	201802	2018
14	s00014	陆舒融	13183431414	iphoneX	iphoneX	5999	1	5999	2018/9/27 20:31	2	201809	2018
20	s00020	王萱小	14949639352	oppoR20	oppoR20	3599	1	3599	2018/9/24 19:24	1	201809	2018
24	s00024	董大东	18514676812	红米2	RM2	999	1	999	2018/6/1 9:01	1	201806	2018
25	s00025	黎予昭	15366888184	华为mate20	mate20	3399	1	3399	2018/11/23 14:41	1	201811	2018
27	s00027	唐昌臣	15943404630	华为mate20pro	mate20P	5999	1	5999	2018/12/5 9:12	1	201812	2018
28	s00028	向翰丰	13372258092	华为mate20X	mate20X	4999	1	4999	2018/3/12 19:55	1	201803	2018
32	s00032	朱兰梦	19804773033	华为mate20pro	mate20P	5999	1	5999	2018/7/18 13:37	2	201807	2018
35	s00035	潘沧俯	13866501242	荣耀v20	Hv20	2999	1	2999	2018/8/31 11:11	1	201808	2018
38	s00038	徐芸	14580998733	iphoneX	iphoneX	5999	1	5999	2018/1/18 20:03	1	201801	2018
39	s00039	刘冉钰	16698339809	小米9	M9	3499	1	3499	2018/10/13 11:44	1	201810	2018

可以看到新分区可以更新。

cascade模式各个分区数据都会更新,不再演示。

  • 注意:所有数据都是自动生成的,如有侵权请告知。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java实现XSS防御

XSS概述 跨站脚本攻击(Cross Site Scripting)&#xff0c;缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码&#xff0c;当用户浏览该页之时&#xff0c;嵌入其中Web里面的Script代码会被执行&#xff0c;从而达到恶意攻击用户的目的。 Servlet的方式 1、继承HttpServle…

classmethod 继承_让人眼花缭乱的类继承

Python语言的一个优势是简洁易用。是否简洁易用仅仅是Python语言本身的一个话题&#xff0c;但“好消息”是如果你想创造那种一大堆继承、混乱的内部关系的代码&#xff0c;也是可以的&#xff01;今天烦人的代码来自于验证某些math-y数学分析代码。一开始&#xff0c;他们是发…

SQL优化之浅见

SQL优化之浅见一、查询优化二、导入大量数据时的优化三、INSERT优化四、字段注释五、说明用了段mysql/Oracle/hive等数据库,对SQL语言以Mysql为例&#xff0c;总结一下对sql优化方面的见解&#xff0c;欢迎大家补充。 一、查询优化 1.在关联查询中&#xff0c;关联键的数据类…

JAVA SSM框架+Redis 实现单点登录

1&#xff1a;什么是单点登录&#xff1f; 答&#xff1a;单点登录的英文名叫做&#xff1a;Single Sign On&#xff08;简称SSO&#xff09; 一般我们的模块都是在同一个系统下&#xff0c;同一个tomcat&#xff08;如图&#xff0c;以商城为例&#xff09; 后来为了维护和…

2017云栖大会门票转让_「揭秘GP」云栖大会 | Greenplum 6.0 内核优化解读和7.0展望...

9月25日&#xff0c;云栖大会在杭州阿里巴巴云栖小镇正式拉开序幕&#xff0c;三天会议期间&#xff0c;共吸引了200多位世界级科学家、400多家科技合作伙伴参与&#xff0c;科技展区面积超过3万平方米&#xff0c;共发布了1000多项顶尖技术。云栖大会现场在此次云栖大会上&…

从mysql到大数据(一)--开宗明义

一、大数据长什么样 长像很普通&#xff0c;至少看两眼后就觉得很平常。 举个栗子&#xff1a; 一个表格&#xff0c;学生信息表&#xff0c;里面有学号、姓名、性别、年龄、学校、学院、专业、年级、宿舍号等信息如下&#xff0c; 但是表在库里&#xff0c;我们想看&#xf…

SSO单点登录方案大全

分布式微服务系统主流常用的登录方案 前言: 单点登录其实是一个概念,主要是为了解决一次登录,多系统(本系统或外部系统)之间不需要重复登录的问题,就目前来说,主流的解决方案针对业务场景分为3个方向: 1: 同一公司,同父域下的单点登录解决方案. 如[http://map.baidu.com][[h…

em算法怎么对应原有分类_机器学习基础-EM算法

EM算法也称期望最大化(Expectation-Maximum,简称EM)算法&#xff0c;它是一个基础算法&#xff0c;是很多机器学习领域算法的基础&#xff0c;比如隐式马尔科夫算法(HMM)&#xff0c; LDA主题模型的变分推断等等。本文就对EM算法的原理做一个总结。EM算法要解决的问题我们经常会…

从mysql到大数据(二)--数据库的认识

一、数据库的认识 数据库顾名思义&#xff0c;是存放数据的库房。 二、数据库的分类&#xff08;了解&#xff09; 可以分为两大类&#xff1a;关系型数据库和非关系型数据库。 关系型数据库&#xff1a; 关系型数据库&#xff0c;存储的格式可以直观地反映实体间的关系。…

postman插件下载、安装教程

这里只讲如何在Chrome 中安装postman插件 下载链接&#xff1a;https://pan.baidu.com/s/1vampHeD0UiDNbrB3G8j_hA 提取码&#xff1a;wqdl 方法/步骤 1.在Chrome输入地址&#xff1a;[chrome://extensions/] 2.将压缩包直接拖拽至Chrome中 3.运行在Chrome输入地址&#xff…

得力条码扫描器怎么用_广东智能物流控制系统怎么选

广东智能物流控制系统怎么选&#xff0c;东莞智库&#xff0c;东莞智库(SmartWarehouse)&#xff0c;专注电子制造SMT智能仓库&#xff0c;致力于帮助电子制造企业提高物流仓储效率和效能。广东智能物流控制系统怎么选&#xff0c; 旭日东自动分拣系统是个集机械、电气、计算机…

从mysql到大数据(三)--mysql数据库建模一常用数据类型及引擎

数据库的安装请自行百度。如果你想直捣黄龙练查询&#xff0c;没有表没有数据是不能实现的。我们从建表开始学习。但要知道&#xff0c;我们所有东西都是了解&#xff0c;学习不要有压力&#xff0c;不要必须要求记什么&#xff0c;当然&#xff0c;如果你不累可以记&#xff0…

Postman用法简介-Http请求模拟工具

Postman用法简介-Http请求模拟工具 在我们平时开发中&#xff0c;特别是需要与接口打交道时&#xff0c;无论是写接口还是用接口&#xff0c;拿到接口后肯定都得提前测试一下&#xff0c;这样的话就非常需要有一个比较给力的Http请求模拟工具&#xff0c;现在流行的这种工具也…

matlab多元函数_函数的计算机处理8(1)_1MATLAB

计算机语言运用--数值计算8-函数的计算机处理8(1)_1MATLAB计算机&#xff1a;电子线路组成的计算机器。人与计算机则是通过计算机语言-符号系统说给计算机听而交流。计算机语言有低级语言-机器语言、汇编、高级语言-C/C/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千种之多。 作…

(一)MySQL优化之索引优化

一、索引的概念 我们知道&#xff0c;在查询过程中&#xff0c;如果被查询的表没有索引&#xff0c;数据库会进行全表扫描&#xff0c;而如果添加了相应的索引&#xff0c;数据库会根据索引直接查找符合条件的数据。因此&#xff0c;索引的存在会大大提高查询效率。而索引其实…

Gson的fromJson()方法

Gson提供了fromJson()方法来实现从Json相关对象到Java实体的方法。 在日常应用中&#xff0c;我们一般都会碰到两种情况&#xff0c;转成单一实体对象和转换成对象列表或者其他结构。 先来看第一种&#xff1a; 比如json字符串为&#xff1a;[{“name”:”name0”,”age”:0…

java 怎么通过url获取远程服务器上某个文件夹下的所有文件_JMX远程代码漏洞研究...

前言&#xff1a;前一段时间apace solr JMX因为配置不当出现远程代码执行漏洞&#xff0c;最近自己在看一套java系统时&#xff0c;发现该系统也存在JMX远程代码漏洞&#xff0c;于是乎就想研究下JMX这种通用型漏洞&#xff0c;下面我就从原理到利用对该漏洞做一个简单的梳理。…

Java注解的Retention和RetentionPolicy

一 源码赏析 1 源码 Documented Retention(RetentionPolicy.RUNTIME) Target(ElementType.ANNOTATION_TYPE) public interface Retention {RetentionPolicy value(); }public enum RetentionPolicy {//此注解类型的信息只会记录在源文件中&#xff0c;编译时将被编译器丢弃&a…

hive UDF函数取最新分区

hive UDF函数取最新分区 1.pom文件 <dependencies><!-- https://mvnrepository.com/artifact/org.apache.hive/hive-exec --><dependency><groupId>org.apache.hive</groupId><artifactId>hive-exec</artifactId><version>1…

app每秒并发数_性能测试连载 (38) jmeter 线程数与性能测试的负载模式

点击跳转>>jmeter--由浅入深学性能系列需求下面有3个场景&#xff0c;思考一下在jmeter里面如何设计场景1&#xff1a;有一个项目&#xff0c;500用户同时登录&#xff0c;响应时间能达到多少场景2&#xff1a;考勤打卡&#xff0c;最大吞吐量能达到多少(每秒最大能完成多…