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

做企业网站需要维护费吗专业室内设计 网站

做企业网站需要维护费吗,专业室内设计 网站,专业关键词优化平台,近期军事新闻热点事件项目场景: 需求:需要在之前上线的分区报表中新增加一列。 实现方案: 1、创建分区测试表并插入测试数据 drop table test_1; create table test_1 (id string, score int, name string ) partitioned by (class string) row format delimit…

项目场景:

需求:需要在之前上线的分区报表中新增加一列。


实现方案:

1、创建分区测试表并插入测试数据

drop table test_1;
create table test_1
(id string,
score int,
name string
)
partitioned by (class string)
row format delimited fields terminated by ',';insert overwrite table test_1
partition (class='A')
values('a',92,'lily'),('b',102,'mike');

查看原有分区表test_1的表结构

 desc test_1;

在这里插入图片描述

2、新增加一列 grade,数据类型为strIng

alter table test_1 add columns(grade string);

查看添加列之后的数据结构

desc test_1;

在这里插入图片描述

3、新增加列grade有数据后,插入新的分区B数据正常显示,原来A区grade列为NULL。

insert overwrite table test_1
partition (class='B')
values('a',92,'John','良好'),('b',112,'Jeff','优秀');select * from test_1;

在这里插入图片描述

原因是: hive使用新增加列语句,只修改了hive的元数据, 并没有改变hdfs的数据文件。

显示Table和Partition的详细信息,及表数据存放的hdfs的数据文件路径。

desc formatted test_1;

在这里插入图片描述

查看具体分区的hdfs的数据文件路径

hadoop fs -lsr hdfs://b1/apps/database/hive/database/test_1

在这里插入图片描述

查看A、B两个分区下的hdfs的数据文件的内容,发现A区并没有grade的内容。

A区:

hadoop fs -cat hdfs://b1/apps/database/hive/database/test_1/class=A/000000_0

在这里插入图片描述

B区:

hadoop fs -cat hdfs://b1/apps/database/hive/database/test_1/class=B/000000_0

在这里插入图片描述


问题描述:

为了表的旧分区新增加列有数据,尝试重新写入A区的数据,发现A区新增列还是为NULL,重写分区后只有最新分区(B区)的新增列有数据。

insert overwrite table test_1
partition (class='A')
values('a',92,'lily','良好'),('b',102,'mike','良好');select * from test_1;

在这里插入图片描述


原因分析:

“alter table test_1 add columns(grade string);”,hive新增加列只修改了更新分区的表结构(metadata),没有变更旧分区的表结构。

表的表结构

在这里插入图片描述

A分区的表结构

desc formatted test_1 partition(class='A');

在这里插入图片描述
B分区的表结构

desc formatted test_1 partition(class='B');

在这里插入图片描述

查看表的表结构和新增分区的表结构(B区)是一致,与旧分区的表结构(A区)不一致。


解决方案:

  • 方法一:删除原来的分区数据重新插入
alter table test_1 drop partition (class='A');insert overwrite table test_1
partition (class='A')
values('a',92,'lily','良好'),('b',102,'mike','良好');select * from test_1;

在这里插入图片描述

  • 方法二: 最初,需要在增加grade时加上cascade关键字,cascade的中文翻译为“级联”,也就是不仅变更新分区的表结构(metadata),同时也变更旧分区的表结构。

添加列的语法

ALTER TABLE table_name [PARTITION partition_spec]                 -- (Note: Hive 0.14.0 and later)ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)[CASCADE|RESTRICT]  

注意:ALTER TABLE ADD|REPLACE COLUMNS with CASCADE command changes the columns of a table’s metadata, and cascades the same change to all the partition metadata. RESTRICT is the default, limiting column changes only to table metadata.

drop table test_1;
create table test_1
(id string,
score int,
name string
)
partitioned by (class string)
row format delimited fields terminated by ',';insert overwrite table test_1
partition (class='A')
values('a',92,'lily'),('b',102,'mike');alter table test_1 add columns(grade string) cascade;insert overwrite table test_1
partition (class='A')
values('a',92,'lily','良好'),('b',102,'mike','良好');

在这里插入图片描述

如果已经执行添加操作,并且没有带cascade,可以尝试下面的方法:

alter table test_1 replace columns(id string ,score int,name string);

再重新带上cascade进行添加列的操作。


扩展

需求:增加一列,指定增加到原始的两列中间

1、新增加列grade

alter table test_1 add columns (grade string comment '新添加的列') cascade;

在这里插入图片描述

2、再对grade列进行排序(注意:必须添加cascade关键字,不然不会刷新旧分区数据,关键字cascade能修改元数据)

更新列的语法

ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name]
--将grade增加到score列与name中间
alter table test_1 change column grade grade string after score cascade;

在这里插入图片描述

http://www.yayakq.cn/news/611600/

相关文章:

  • 信息公开暨网站建设管理办法带后台自适应网站模版
  • 手机新机价格网站山东莱芜最新新闻
  • 爱情动做网站推荐百度竞价托管一月多少钱
  • 商城网站制作报价52影院
  • 网络服务器与网站建设为企业做网站要向谁索要资料
  • 鼓楼区建设局网站个人 网站备案 幕布
  • 广州电子商务网站建设费用软件开发平台方案
  • 有没有专做推广小说的网站重庆施工员证书查询官方网站
  • 务川网站建设游戏推广代理
  • 如何查看网站seo广州市专业做商城网站
  • 沈阳网站建设管理厦门建设
  • 济南制作网站制作公司策划自己建设企业网站
  • 上海市网站seo公司WordPress文章添加灯箱
  • 网站备案是否收费江门住房与城乡建设局官方网站
  • 什么网站有教做详情页wordpress打不开仪表盘
  • 网站设计要素网站做公司简介怎么做
  • ASP网站建设实训报告总结成都网站游戏设计
  • 网站导航菜单代码广州网络推广哪家好
  • 桓台新城建设有限公司网站网站加载优化
  • 微网站可以做商城吗商丘网站公司电话号码
  • 企业网站设计布局方式代加工厂都不做网站
  • 如何自学建网站深圳网站建设 信科便宜
  • 杭州网站开发响应式个人网页设计欣赏作品
  • 多用户商城网站建设公司龙岩网站建设亿网行
  • 做网站需要用什么系统wordpress 电子书 插件
  • 英语培训网站建设需求分析报告东莞百度seo推广公司
  • 百度一下搜索引擎海宁网站怎么做seo
  • 岳阳市交通建设投资公司门户网站建设网站属于什么费用吗
  • 同学录网站建设网站外包费用怎么做分录
  • 吉林建设厅网站南宁关键词自然排名