DataWorks中MaxCompute的常用操作命令

原文链接:https://blog.csdn.net/yitian_z/article/details/90729172
案例:本文主要描述阿里云数据处理平台DataWorks中MaxCompute的常用操作命令
一、表操作
(1)删除表:

DROP TABLE [IF EXISTS] table_name;
1、如果不指定if exists选项而表不存在,则返回异常。若指定此选项,无论表是否存在,皆返回成功。
2、删除外部表时,OSS上的数据不会被删除。

(2)重命名表:

ALTER TABLE table_name RENAME TO new_table_name;
1、rename操作仅修改表的名字,不改动表中的数据。
2、如果已存在与new_table_name同名表,则报错。
3、如果table_name不存在,则报错。
4、若修改生产环境的表名,需要在旧表名前加生产环境项目名如:data_dw.table_name

(3)修改表owner:

alter table table_name changeowner to 'ALIYUN$xxx@aliyun.com';

(4)修改表的注释:

ALTER TABLE table_name SET COMMENT 'tbl comment';
1、table_name必须是已存在的表。
2、comment最长1024字节。

(5) 修改表的Hash Clustering属性:

ALTER TABLE table_name     
[CLUSTERED BY (col_name [, col_name, ...]) [SORTED BY (col_name [ASC | DESC] [, col_name [ASC | DESC] ...])] INTO number_of_buckets BUCKETS]

(6)去除表的hash clustering属性:

ALTER TABLE table_name NOT CLUSTERED;
1、alter table改变聚集属性,只对于分区表有效,非分区表一旦聚集属性建立就无法改变。
1、由于alter table只影响新分区,所以该语句不可以再指定PARTITIONALTER TABLE语句适用于存量表,在增加了新的聚集属性之后,新的分区将做hash cluster存储。

(7)清空非分区表里的数据:

TRUNCATE TABLE table_name;
1、将指定的非分区表中的数据清空,该命令不支持分区表。对于分区表,可以用ALTER TABLE table_name DROP PARTITION的方式将分区里的数据清除。

二、分区和列操作
(1)添加分区操作:

ALTER TABLE TABLE_NAME ADD [IF NOT EXISTS] PARTITION partition_spec
partition_spec:(partition_col1 = partition_col_value1, partition_col2 = partiton_col_value2, ...);
说明
1、分区名必须小写。
2、仅支持新增分区,不支持新增分区字段。
3、如果未指定if not exists而同名的分区已存在,则返回报错。
4、目前MaxCompute单表支持的分区数量上限为6万。
5、对于多级分区的表,如果想添加新的分区,必须指明全部的分区值。
示例
alter table sale_detail add if not exists partition (sale_date='201312', region='hangzhou');
-- 成功添加分区,用来存储2013年12月杭州地区的销售记录。
alter table sale_detail add if not exists partition (sale_date='201312', region='shanghai');
-- 成功添加分区,用来存储2013年12月上海地区的销售记录。
alter table sale_detail add if not exists partition(sale_date='20111011');
-- 仅指定一个分区sale_date,出错返回
alter table sale_detail add if not exists partition(region='shanghai');
-- 仅指定一个分区region,出错返回

(2)删除分区操作:

ALTER TABLE TABLE_NAME DROP [IF EXISTS] PARTITION partition_spec;
partition_spec:(partition_col1 = partition_col_value1, partition_col2 = partiton_col_value2, ...)
示例
alter table sale_detail drop if exists partition(sale_date='201312',region='hangzhou'); 
-- 成功删除2013年12月杭州分区的销售记录。

(3)添加列操作:

ALTER TABLE table_name ADD COLUMNS (col_name1 type1,col_name2 type2...);
ALTER TABLE table_name ADD COLUMNS (col_name1 type1 comment 'XXX',col_name2 type2 comment 'XXX');
说明 添加的新列不支持指定顺序,默认在最后一列。

(4)修改列名称:

ALTER TABLE table_name CHANGE COLUMN old_col_name RENAME TO new_col_name;
若修改生产环境的列名,需要在表名前加生产环境项目名如:data_dw.table_name

(5) 修改列、分区注释:

ALTER TABLE table_name CHANGE COLUMN col_name COMMENT comment_string;

(6)修改分区值:

ALTER TABLE table_name PARTITION (partition_col1 = partition_col_value1, partition_col2 = partiton_col_value2, ...) 
RENAME TO PARTITION (partition_col1 = partition_col_newvalue1, partition_col2 = partiton_col_newvalue2, ...);
1、MaxCompute SQL支持通过rename操作更改对应表的分区值。
2、不支持修改分区列列名,只能修改分区列对应的值。
3、修改多级分区的一个或者多个分区值,多级分区的每一级的分区值都必须写上。
  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值