CASCADE:官网解释级联,不太好理解,直接通过举例说明
1.加了CASCADE
create table wyf_test(id int,name string) partitioned by (dt string);
insert into table wyf_test partition(dt = '2019-11-13') select 1,'zhangsan';
insert into table wyf_test partition(dt = '2019-11-14') select 2,'lisi';
select * from wyf_test where dt = '2019-11-13';
alter table wyf_test add columns(sex string) CASCADE;
insert into table wyf_test partition(dt = '2019-11-13') select 1,'zhangsan','male';
insert into table wyf_test partition(dt = '2019-11-14') select 2,'lisi','female';
insert into table wyf_test partition(dt = '2019-11-15') select 3,'wangwu','female';
select * from wyf_test;
结果:

2.不加CASCADE
create table wyf_test(id int,name string) partitioned by (dt string);
insert into table wyf_test partition(dt = '2019-11-13') select 1,'zhangsan';
insert into table wyf_test partition(dt = '2019-11-14') select 2,'lisi';
select * from wyf_test where dt = '2019-11-13';
alter table wyf_test add columns(sex string) ;
insert into table wyf_test partition(dt = '2019-11-13') select 1,'zhangsan','male';
insert into table wyf_test partition(dt = '2019-11-14') select 2,'lisi','female';
insert into table wyf_test partition(dt = '2019-11-15') select 3,'wangwu','female';
select * from wyf_test;
结果:

结论
不加CASCADE,往已存在的分区中插入新增字段值时,为空。
加了CASCADE,往已存在的分区中插入新增字段值时,有值。
本文通过示例对比分析了在Hive中,使用`ALTER TABLE ADD COLUMNS`语句时是否添加`CASCADE`关键字对已存在分区数据的影响。当不使用CASCADE时,新增字段在已存在分区中默认为空;而使用CASCADE时,插入的数据会包含新增字段的值。
3951

被折叠的 条评论
为什么被折叠?



