当前位置: 首页 > news >正文

免费商城自助建站客户关系管理的核心是

免费商城自助建站,客户关系管理的核心是,自己做企业网站可以吗,沈阳网站制作思路结论 alter table xxx add columns 时加上 cascade 时,会把所有的分区都加上此字段。如果不加则只有新的分区会加上此字段,旧的分区没有此字段,即便数据文件里有对应的数据,也不能显示内容。 如果分区都是 insert overwrite 生成…

结论

alter table xxx add columns 时加上 cascade 时,会把所有的分区都加上此字段。如果不加则只有新的分区会加上此字段,旧的分区没有此字段,即便数据文件里有对应的数据,也不能显示内容。

  1. 如果分区都是 insert overwrite 生成的,并且旧分区的数据不再重新生成,可以在 add columns 不用cascade,这样旧的分区对应的列显示 null。新的分区正常显示新增的列。
  2. 如果分区都是 insert overwrite 生成的,并且旧分区的数据需要重新生成。两种方案:1. 可以在 add columns 不用 cascade。然后每个分区先执行 drop partition,然后再执行 insert overwrite。2.可以在 add columns 使用 cascade,然后再执行 insert overwrite。如果方案2报错,则只能使用方案1.
  3. 如果文件是从外部生成,然后放到对应分区位置上,并且文件里已经有要加的字段数据。需要使用 cascade。如果使用 cascade 报错,那么看表是否是外部表。如果不是外部表,则先转成外部表。如果是外部表,则直接 drop partition 然后再 add partition location 增加分区。
  4. 如果文件是从外部生成,然后放到对应分区位置上,并且文件里没有要加的字段数据。不需要使用 cascade。旧的分区对应的列显示 null。新的分区正常显示新增的列。

注:

  1. 判断表是否是外部表,使用 ‘show create table xxx’, 如果生成的是 ‘CREATE TABLE’ 是内部表,如果是 CREATE EXTERNAL TABLE 是外部表。
  2. 把表从外部表转成内部表 ALTER TABLE xxx SET TBLPROPERTIES('EXTERNAL'='FALSE');
  3. 把表从内部表转成外部表 ALTER TABLE <table> SET TBLPROPERTIES('EXTERNAL'='TRUE');

测试 cascade 的作用

准备文件
data.txt

key1,value1
key2,value2

测试 no cascade

create table t_no_cascade(c1 string) partitioned by (pt string) row format delimited
FIELDS TERMINATED BY ',' stored as textfile;

增加分区 pt=1

load data local inpath 'data.txt' overwrite into table t_no_cascade partition(pt=1);

检索结果,显示 c1 和 pt 字段。

select * from t_no_cascade where pt=1;
OK
t_no_cascade.c1	t_no_cascade.pt
key1	1
key2	1
  • 增加字段
alter table t_no_cascade add columns(c2 string) ;
  • 再次检索分区pt=1,因为分区没有定义 c2, 所以 c2 为 null。
select * from t_no_cascade where pt=1;
OK
t_no_cascade.c1	t_no_cascade.c2	t_no_cascade.pt
key1	NULL	1
key2	NULL	1
  • 增加新分区 pt=2
    新增的字段对新增的分区有效。
load data local inpath 'data.txt' overwrite into table t_no_cascade partition(pt=2);
  • 检索分区
    因为新分区是表
select * from t_no_cascade where pt=2;
OK
t_no_cascade.c1	t_no_cascade.c2	t_no_cascade.pt
key1	value1	2
key2	value2	2
  • 重新复写老分区
    重新复写老分区不能看到新的列数据。如果需要,可以先删除老分区,再使用 insert overwrite。
insert overwrite table t_no_cascade partition(pt=1) select c1,c2 from t_no_cascade where pt=2;

insert overwrite table xxx partition 还是使用之前的 partition id,所以此分区还是没有新的字段。

select * from t_no_cascade where pt=1;
OK
t_no_cascade.c1	t_no_cascade.c2	t_no_cascade.pt
key1	NULL	1
key2	NULL	1
  • drop 老分区再使用 insert overwrite
    drop 老分区再使用 insert overwrite,可以看到新的字段。
alter table t_no_cascade drop partition(pt=1);
insert overwrite table t_no_cascade partition(pt=1) select c1,c2 from t_no_cascade where pt=2;

这时的 partition(pt=1) 是新的分区id,这时可以看到新的数据。

select * from t_no_cascade where pt=1;
OK
t_no_cascade.c1	t_no_cascade.c2	t_no_cascade.pt
key1	value1	1
key2	value2	1

2. 测试 cascade

create table t_cascade(c1 string) partitioned by (pt string) row format delimited
FIELDS TERMINATED BY ',' stored as textfile;

增加分区 pt=1

load data local inpath 'data.txt' overwrite into table t_cascade partition(pt=1);

检索结果,显示 c1 和 pt 字段。

select * from t_cascade where pt=1;
OK
t_cascade.c1	t_cascade.pt
key1	1
key2	1
  • 增加字段
    使用 cascade 递归的给各分区增加上字段。
alter table t_cascade add columns(c2 string) cascade;
  • 再次检索分区pt=1。
    cascade 后,老的分区也加上了字段。
 select * from t_cascade where pt=1;
OK
t_cascade.c1	t_cascade.c2	t_cascade.pt
key1	value1	1
key2	value2	1
http://www.yayakq.cn/news/440835/

相关文章:

  • jsp网站开发怎么调试家政服务技术支持东莞网站建设
  • 我的网站为什么河北人社app二维码图片
  • 网站备注销辽宁省建设工程信息网上不去
  • 科技类网站系统之家win7纯净版
  • 免费网站建设大全运用vs2010c 做网站
  • 学做网站应该看那些书网站建设优化服务器
  • 免费微网站哪个好用精准到可怕的2022楼市预言
  • 开心消消乐官方网站开发公司郑州汉狮做网站费用
  • 微网站 htmliis 7.0 搭建网站
  • 做姓氏图的网站北京企业网站建设飞沐
  • seo如何分析一个网站新浦建设集团网站
  • 张家港早晨网站建设合肥网站设
  • 网站推广公司招聘可以直接打开的网站正能量
  • 网站建设师要求三大主流app开发平台
  • 做网站软件下载手机版公司英文网站多少钱
  • 深圳优定软件网站建设文化传媒网站php源码
  • 湖南建设长沙网站建设价格网站改版建设征求意见书
  • 艾辰做网站廊坊网站快照优化公司
  • 杭州建设工程交易中心网站一个空间两个网站
  • icp备案后要建网站吗中国建设银行网站保定五四路
  • 做问卷调查的网站有哪些内容三杰网站建设
  • 上海网站关键排名深圳航空官网机票预订
  • 业务网站制作制作人
  • 帝国cms能建设视频网站吗房地产项目营销策划方案
  • 青岛网站搜索排名免费网站建设推广
  • 公司做网站文案怎么写淘宝网站建设好评
  • 跟建设通一样的网站网页设计师资格证培训班
  • 中山微信网站wordpress文件缺失
  • 品牌网站解决方案齐河网站建设电话
  • 外贸seo网站搭建ico项目网站建设