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

现在什么类型网站没有人做做网页前端需要学什么

现在什么类型网站没有人做,做网页前端需要学什么,wordpress相关书籍,中英双文网站怎么做Hive分区表新增字段并指定位置 1、Hive分区表新增字段2、CASCADE关键字3、历史分区新增列为NULL问题 1、Hive分区表新增字段 Hive分区表新增字段并指定位置主要分为两步:新增字段和移动字段 1)新增字段 ALTER TABLE table_name ADD COLUMNS (col_name …

Hive分区表新增字段并指定位置

      • 1、Hive分区表新增字段
      • 2、CASCADE关键字
      • 3、历史分区新增列为NULL问题





1、Hive分区表新增字段


Hive分区表新增字段并指定位置主要分为两步:新增字段和移动字段

1)新增字段

ALTER TABLE table_name ADD COLUMNS (col_name data_type [COMMENT col_comment], ...) [CASCADE|RESTRICT];

该命令允许用户将新列添加到现有列的末尾但在分区列之前

ADD COLUMNS命令只修改Hive的元数据,不修改实际数据。用户应该确保表/分区的实际数据布局符合元数据定义

2)更改(移动)字段

ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name] [CASCADE|RESTRICT];

该命令允许用户更改列的名称、数据类型、注释或位置,或它们的任意组合

CHANGE COLUMN命令只修改Hive的元数据,不修改实际数据。用户应该确保表/分区的实际数据布局符合元数据定义

以下是一些示例:

CREATE TABLE test_change (a int, b int, c int);// 将列a的名称更改为a1
ALTER TABLE test_change CHANGE a a1 INT;// 将列a1的名称更改为a2,数据类型更改为string,并将其放在列b后
ALTER TABLE test_change CHANGE a1 a2 STRING AFTER b;
// 新表的结构:b int, a2 string, c int// 将列c的名称更改为c1,并放在第一列
ALTER TABLE test_change CHANGE c c1 INT FIRST;
// 新表的结构:c1 int, b int, a2 string// 给列a1添加注释
ALTER TABLE test_change CHANGE a1 a1 INT COMMENT 'a1 comment';

2、CASCADE关键字


CASCADE中文为"级联",顾名思义就是有联系的。Hive官网对CASCADE关键字的描述如下:

CASCADE/RESTRICT子句在Hive 1.1.0中可用。CHANGE COLUMN CASCADE命令修改表元数据的列,并将相同的更改级联到所有分区元数据。RESTRICT是默认值,它只限制对表元数据的列更改

CHANGE COLUMN CASCADE子句将覆盖表分区的列元数据,而不管表或分区的保护模式如何,请谨慎使用

详情参考官网:https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=27362034#LanguageManualDDL-AlterColumn

什么意思呢?下面以一个示例演示不加CASCADE与添加CASCADE的区别

1)数据准备

create table test_cascade (id bigint, name string) partitioned by (dt string);
insert into table test_cascade partition (dt='2024-11-01') values (1, 'a');
insert into table test_cascade partition (dt='2024-12-01') values (2, 'b');
select * from test_cascade;
'''
id     name     dt
1      a        2024-11-01
2      b        2024-12-01
'''

2)不加CASCADE

alter table test_cascade add columns (age int);
insert into table test_cascade partition (dt='2024-11-01') values (1,'a',19);
insert into table test_cascade partition (dt='2024-12-01') values (2,'b',18);
insert into table test_cascade partition (dt='2025-01-01') values (3,'c',20);
select * from test_cascade;
'''
id     name     age      dt
1      a        NULL     2024-11-01
1      a        NULL     2024-11-01
2      b        NULL     2024-12-01
2      b        NULL     2024-12-01
3      c        20       2025-01-01
'''

3)添加CASCADE

alter table test_cascade add columns (age int) cascade;
insert into table test_cascade partition (dt='2024-11-01') values (1,'a',19);
insert into table test_cascade partition (dt='2024-12-01') values (2,'b',18);
insert into table test_cascade partition (dt='2025-01-01') values (3,'c',18);
select * from test_cascade;
'''
id     name     age      dt
1      a        NULL     2024-11-01
1      a        19       2024-11-01
2      b        NULL     2024-12-01
2      b        18       2024-12-01
3      c        20       2025-01-01
'''

据此,可得如下结论:

  • 不加CASCADE:插入数据时,已存在数据的分区新增字段值为NULL,无数据的分区新增字段值可以插入成功
  • 添加CASCADE:插入数据时,已存在数据的分区和无数据的分区新增字段值都可以插入成功

即就是,默认RESTRICT只变更新分区的表结构(新分区元数据),而CASCADE不仅变更新分区的表结构(新分区元数据),同时也级联变更旧分区的表结构(旧分区元数据)

3、历史分区新增列为NULL问题


实际应用中,通常会存在修改表结构的需求,例如,增加一个字段

如果使用如下语句新增列:

ALTER TABLE table_name ADD COLUMNS (col_name data_type [COMMENT col_comment]);

则可以成功添加列col_name,但如果数据表table_name中已有旧的分区,则该旧分区中的col_name将为NULL且无法更新,即使使用INSERT OVERWRITE也无效

出现这个问题的原因就是没有使用CASCADE关键字导致的。CASCADE不仅可以变更新分区的表结构(元数据),同时也会级联变更旧分区的表结构(元数据)

解决方法也很简单,只需要在原语句后面添加CASCADE关键字即可:

ALTER TABLE table_name ADD COLUMNS (col_name data_type [COMMENT col_comment]) CASCADE;

针对分区表新增字段不加CASCADE关键字时对于历史分区新插入的数据,新增的列数据都会显示为NULL,其它已有列的数据则显示正常

值得注意的是,如果还需要更改新增列的位置,也需要使用CASCADE关键字:

ALTER TABLE table_name CHANGE [COLUMN] col_name col_name data_type [COMMENT col_comment] AFTER column_name CASCADE;

另外,如果存储格式为Parquet,那么该新增列的数据都将为NULL,如果为TextFile格式,则不会出现这种情况



参考文章:https://blog.csdn.net/sx157559322/article/details/131950817


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

相关文章:

  • 宁波市省网站建设chrome手机版
  • 购物网站 服务器 带宽 多大wordpress提交评论卡死
  • 自助设计网站游戏推广赚佣金
  • 网站推广品牌建设网络推广的方法有哪几种
  • 外国网站欣赏买房子平台
  • 网页网站作业制作企业邮箱怎么获取
  • 长春精神文明建设网站防封号电销系统
  • 门户网站前期网络采集商家信息免费发布网站流量分析指标
  • 网站维护内容有哪些全屋装修设计软件
  • 做网站的软件去哪里买百度提交网址
  • 宠物交易网站开发河南网站建设推荐
  • 网站功能需求怎么写网站建设合作合同模板
  • 国内精品网站建设效果图制作多少钱一张
  • 网站权重多少比较好群晖nas做网站性能
  • 用网站做微信公众号岳阳网站开发商城
  • 扁平式的网站电商网站建设市场分析
  • 南宁网站建设王道下拉強wordpress 3清新主题
  • 网站美食建设图片公众号小程序制作流程
  • 自贡企业网站建设公司学做宝宝衣服的网站
  • 油画风网站有限责任公司的特点
  • 网站设计论文致谢建筑公司网站常用长尾词
  • 360未经证实的网站如何做网站开发 策划书
  • 北京做网站哪里好了解wordpress
  • 网站打开加速单位网站怎么做
  • 中山网站建设华联在线建一个com网站要多少钱
  • 霍山有没有做建网站的安卓android官网下载
  • 重庆公司建网站流程网站布局策划案
  • 企业网站建设应该注意什么事项问题网站改版推荐
  • 泉州seo网站建设费用wordpress报名插件
  • 网站建设经济成本分析做一个php连接sql网站