修改表的所有人
修改表的所有人,即表Owner。
重要 仅项目所有者(Project Owner)或具备Super_Administrator角色的用户可执行修改表Owner的命令。
命令格式
ALTER TABLE <table_name> CHANGEOWNER TO <new_owner>;
参数说明
参数 | 是否必填 | 说明 |
table_name | 是 | 待修改Owner的表名。 |
new_owner | 是 | 修改后的Owner账号。
说明 修改表Owner为RAM用户,需确保RAM用户已加入到表所在的项目中。 |
使用示例
本文示例数据sale_detail表的创建,详情请参见创建sale_detail表。
将表sale_detail的所有人修改为ALIYUN$xxx@aliyun.com。
ALTER TABLE sale_detail CHANGEOWNER TO 'ALIYUN$xxx@aliyun.com';
将表sale_detail的所有人修改为名称为ram_test的RAM用户。
ALTER TABLE sale_detail CHANGEOWNER TO 'RAM$13xxxxxxxxxxx:ram_test';
修改表的注释
修改表的注释内容。
命令格式
ALTER TABLE <table_name> SET COMMENT '<new_comment>';
参数说明
参数 | 是否必填 | 说明 |
table_name | 是 | 待修改注释的表的名称。 |
new_comment | 是 | 修改后的注释名称。 |
使用示例
ALTER TABLE sale_detail SET COMMENT 'new comment for table sale_detail';
通过MaxCompute的DESC <table_name>命令可以查看表中comment的修改结果。
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$sant****.aliyunid.com |
| Project: ani**** |
| Schema: default |
| TableComment: new comment for table sale_detail |
+------------------------------------------------------------------------------------+
修改表的最后更新时间
MaxCompute SQL提供TOUCH操作用来修改表的LastModifiedTime,可将表的LastModifiedTime修改为当前时间。此操作会改变表的LastModifiedTime的值,MaxCompute会认为表的数据有变动,生命周期的计算会重新开始。
命令格式
ALTER TABLE <table_name> TOUCH;
参数说明
table_name:必填。待修改表的修改时间的表名称。
使用示例
ALTER TABLE sale_detail TOUCH;
修改表的聚簇属性
对于分区表,MaxCompute支持通过ALTER TABLE语句增加或者去除聚簇属性。
命令格式
增加表的Hash聚簇属性的语法格式如下。
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];
去除表的Hash聚簇属性的语法格式如下。
ALTER TABLE <table_name> NOT CLUSTERED;
增加表的Range聚簇属性,Bucket数不是必需的,可以省略,此时系统会根据数据量自动决定最佳的Bucket数目。语法格式如下。
ALTER TABLE <table_name>
[RANGE CLUSTERED BY (<col_name> [, <col_name>, ...])
[SORTED BY (<col_name> [ASC | DESC] [, <col_name> [ASC | DESC] ...])]
INTO <number_of_buckets> BUCKETS];
去除表或分区的Range聚簇属性的语法格式如下。
ALTER TABLE <table_name> NOT CLUSTERED;
ALTER TABLE <table_name> PARTITION <pt_spec> NOT CLUSTERED;
说明 通过ALTER TABLE改变聚簇属性,只对分区表有效,非分区表一旦建立聚簇属性就无法改变。ALTER TABLE语句适用于存量表,在增加了新的聚簇属性后,新的分区将按设置的聚簇属性存储。
ALTER TABLE只会影响分区表的新建分区(包括INSERT OVERWRITE生成的),新分区将按新的聚簇属性存储,老数据分区的聚簇属性和存储保持不变。即在一张曾经做过聚簇属性设置的表上,关闭了聚簇属性,再增加聚簇设置,可以在新分区设置不同于之前的聚簇列、排序列及分桶数。
由于ALTER TABLE只影响新分区,所以该语句不可以再指定分区。
修改表名
修改表的名称。仅修改表的名字,不改动表中的数据。
命令格式
ALTER TABLE <table_name> RENAME TO <new_table_name>;
参数说明
参数 | 是否必填 | 说明 |
table_name | 是 | 待修改名称的表。 |
new_table_name | 是 | 修改后的表名称。如果已存在与new_table_name同名的表,会返回报错。 |
使用示例
ALTER TABLE sale_detail RENAME TO sale_detail_rename;
清空非分区表里的数据
将指定的非分区表中的数据清空。如果您需要清空分区表中单个或多个分区的数据,请参见清空分区数据。
命令格式
TRUNCATE TABLE <table_name>;
参数说明
table_name:必填。待清空数据的非分区表的名称。
清空列数据
使用clear column命令清空普通表的列,将不再使用的列数据从磁盘删除并置NULL,从而达到降低存储成本的目的。
命令格式
ALTER TABLE <table_name> [partition ( <pt_spec>[, <pt_spec>....] )]
CLEAR COLUMN column1[, column2, column3, ...]
[without touch];
参数说明
参数 | 是否必填 | 说明 |
table_name | 是 | 将要执行清空列数据的表名称。 |
column | 是 | 将要被清空数据的列名称。 |
partition | 否 | 指定分区,若未指定,则表示操作所有分区。 |
pt_spec | 否 | 分区描述,格式为(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...)。 |
without touch | 否 | 表示不更新LastDataModifiedTime;若未指定,则会更新LastDataModifiedTime。 |
使用示例
-- 向sale_detail表增加分区
ALTER TABLE sale_detail ADD PARTITION (sale_date='2023', region='china') PARTITION (sale_date='2024', region='shanghai');
-- 向分区表中插入数据
INSERT INTO sale_detail PARTITION (sale_date='2023', region='china') VALUES ('s1','c1',100.1),('s2','c2',100.2),('s3','c3',100.3);
INSERT INTO sale_detail PARTITION (sale_date='2024', region='shanghai') VALUES ('null','c5',null),('s6','c6',100.4),('s7','c7',100.5);
-- 清空shop_name列
ALTER TABLE sale_detail partition(sale_date='2023', region='china') CLEAR COLUMN shop_name;
关于清空列数据的使用限制和示例详情请参见清空列数据。
查看表信息
查看MaxCompute内部表、外部表、聚簇表或Transactional表的信息。如果您需要查看表的详细数据信息,请参见SELECT语法。
命令格式
查看表信息。
DESC <table_name> [PARTITION (<pt_spec>)];
查看外部表、聚簇表或Transactional表信息以及内部表的扩展信息(例如列的非空属性)。
--查看外部表、聚簇表或Transactional表信息。也可以查看内部表的扩展信息。
DESC EXTENDED <table_name>;
参数说明
参数 | 是否必填 | 说明 |
table_name | 是 | 待查看表的名称。 |
pt_spec | 否 | 待查看分区表的指定分区。格式为(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...)。 |
使用示例
查看创建的test1表的信息。
DESC test1;
点击展开查看执行结果
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$maoXXX@alibaba-inc.com | Project: $project_name |
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2020-11-16 17:47:48 |
| LastDDLTime: 2020-11-16 17:47:48 |
| LastModifiedTime: 2020-11-16 17:47:48 |
+------------------------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | Comment |
+------------------------------------------------------------------------------------+
| key | string | | |
+------------------------------------------------------------------------------------+
查看创建的sale_detail表的信息。
DESC sale_detail;
点击展开查看执行结果
+--------------------------------------------------------------------+
| Owner: ALIYUN$maoXXX@alibaba-inc.com | Project: $project_name |
| TableComment: |
+--------------------------------------------------------------------+
| CreateTime: 2017-06-28 15:05:17 |
| LastDDLTime: 2017-06-28 15:05:17 |
| LastModifiedTime: 2017-06-28 15:05:17 |
+--------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+--------------------------------------------------------------------+
| Native Columns: |
+--------------------------------------------------------------------+
| Field | Type | Label | Comment |
+--------------------------------------------------------------------+
| shop_name | string | | |
| customer_id | string | | |
| total_price | double | | |
+--------------------------------------------------------------------+
| Partition Columns: |
+--------------------------------------------------------------------+
| sale_date | string | |
| region | string | |
+--------------------------------------------------------------------+
查看创建的sale_detail_ctas1表的详细信息。
DESC extended sale_detail_ctas1;
点击展开查看执行结果
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$maoXXX@alibaba-inc.com | Project: $project_name |
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2021-07-07 15:29:53 |
| LastDDLTime: 2021-07-07 15:29:53 |
| LastModifiedTime: 2021-07-07 15:29:53 |
| Lifecycle: 10 |
+------------------------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | ExtendedLabel | Nullable | DefaultValue | Comment |
+------------------------------------------------------------------------------------+
| shop_name | string | | | true | NULL | |
| customer_id | string | | | true | NULL | |
| total_price | double | | | true | NULL | |
| sale_date | string | | | true | NULL | |
| region | string | | | true | NULL | |
+------------------------------------------------------------------------------------+
| Extended Info: |
+------------------------------------------------------------------------------------+
| TableID: 98cb8a38733c49eabed4735173818147 |
| IsArchived: false |
| PhysicalSize: 0 |
| FileNum: 0 |
| StoredAs: AliOrc |
| CompressionStrategy: normal |
+------------------------------------------------------------------------------------+
sale_date和region两个字段仅会作为普通列存在,而不是表的分区。
查看创建的sale_detail_ctas2表的信息。
DESC sale_detail_ctas2;
点击展开查看执行结果
+--------------------------------------------------------------------+
| Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name |
| TableComment: |
+--------------------------------------------------------------------+
| CreateTime: 2017-06-28 15:42:17 |
| LastDDLTime: 2017-06-28 15:42:17 |
| LastModifiedTime: 2017-06-28 15:42:17 |
+--------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+--------------------------------------------------------------------+
| Native Columns: |
+--------------------------------------------------------------------+
| Field | Type | Label | Comment |
+--------------------------------------------------------------------+
| shop_name | string | | |
| customer_id | string | | |
| total_price | double | | |
| sale_date | string | | |
| region | string | | |
+--------------------------------------------------------------------+
查看创建的sale_detail_like表的详细信息。
DESC extended sale_detail_like;
点击展开查看执行结果
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name |
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2021-07-07 15:40:38 |
| LastDDLTime: 2021-07-07 15:40:38 |
| LastModifiedTime: 2021-07-07 15:40:38 |
| Lifecycle: 10 |
+------------------------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | ExtendedLabel | Nullable | DefaultValue | Comment |
+------------------------------------------------------------------------------------+
| shop_name | string | | | true | NULL | |
| customer_id | string | | | true | NULL | |
| total_price | double | | | true | NULL | |
+------------------------------------------------------------------------------------+
| Partition Columns: |
+------------------------------------------------------------------------------------+
| sale_date | string | |
| region | string | |
+------------------------------------------------------------------------------------+
| Extended Info: |
+------------------------------------------------------------------------------------+
| TableID: 61782ff7713f426e9d6f91d5deeac99a |
| IsArchived: false |
| PhysicalSize: 0 |
| FileNum: 0 |
| StoredAs: AliOrc |
| CompressionStrategy: normal |
+------------------------------------------------------------------------------------+
除生命周期属性外,sale_detail_like的其他属性(字段类型、分区类型等)均与sale_detail完全一致。
说明 通过DESC <table_name>;查看到的Size包含了在回收站的数据Size。如果您需要清空回收站,可以先执行PURGE TABLE <table_name>;,然后再执行DESC <table_name>;查看除回收站以外的数据大小。您也可以执行SHOW recyclebin;查看本项目中回收站内的数据明细。
查看创建的test_newtype表的信息。
DESC test_newtype;
点击展开查看执行结果
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | Comment |
+------------------------------------------------------------------------------------+
| c1 | tinyint | | |
| c2 | smallint | | |
| c3 | int | | |
| c4 | bigint | | |
| c5 | float | | |
| c6 | double | | |
| c7 | decimal | | |
| c8 | binary | | |
| c9 | timestamp | | |
| c10 | array<map<bigint,bigint>> | | |
| c11 | map<string,array<bigint>> | | |
| c12 | struct<s1:string,s2:bigint> | | |
| c13 | varchar(20) | | |
+------------------------------------------------------------------------------------+
OK
查看创建的Hash聚簇非分区表t1的信息。聚簇属性将显示在Extended Info中。
DESC extended t1;
点击展开查看执行结果
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name |
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2020-11-16 18:00:56 |
| LastDDLTime: 2020-11-16 18:00:56 |
| LastModifiedTime: 2020-11-16 18:00:56 |
+------------------------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | ExtendedLabel | Nullable | DefaultValue | Comment |
+------------------------------------------------------------------------------------+
| a | string | | | true | NULL | |
| b | string | | | true | NULL | |
| c | bigint | | | true | NULL | |
+------------------------------------------------------------------------------------+
| Extended Info: |
+------------------------------------------------------------------------------------+
| TableID: e6b06f705dc34a36a5b72e5af486cab7 |
| IsArchived: false |
| PhysicalSize: 0 |
| FileNum: 0 |
| StoredAs: AliOrc |
| CompressionStrategy: normal |
| ClusterType: hash |
| BucketNum: 1024 |
| ClusterColumns: [c] |
| SortColumns: [c ASC] |
+------------------------------------------------------------------------------------+
OK
查看创建的Hash聚簇分区表t2的信息。聚簇属性将显示在Extended Info中。
DESC EXTENDED t2;
点击展开查看执行结果
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name |
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2017-12-25 11:18:26 |
| LastDDLTime: 2017-12-25 11:18:26 |
| LastModifiedTime: 2017-12-25 11:18:26 |
| Lifecycle: 2 |
+------------------------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | Comment |
+------------------------------------------------------------------------------------+
| a | string | | |
| b | string | | |
| c | bigint | | |
+------------------------------------------------------------------------------------+
| Partition Columns: |
+------------------------------------------------------------------------------------+
| dt | string | |
+------------------------------------------------------------------------------------+
| Extended Info: |
+------------------------------------------------------------------------------------+
| TableID: 91a3395d3ef64b4d9ee1d2852755 |
| IsArchived: false |
| PhysicalSize: 0 |
| FileNum: 0 |
| ClusterType: hash |
| BucketNum: 1024 |
| ClusterColumns: [c] |
| SortColumns: [c ASC] |
+------------------------------------------------------------------------------------+
OK
查看Range聚簇非分区表t3的信息。聚簇属性将显示在Extended Info中。
DESC extended t3;
点击展开查看执行结果
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name |
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2020-11-16 18:01:05 |
| LastDDLTime: 2020-11-16 18:01:05 |
| LastModifiedTime: 2020-11-16 18:01:05 |
+------------------------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | ExtendedLabel | Nullable | DefaultValue | Comment |
+------------------------------------------------------------------------------------+
| a | string | | | true | NULL | |
| b | string | | | true | NULL | |
| c | bigint | | | true | NULL | |
+------------------------------------------------------------------------------------+
| Extended Info: |
+------------------------------------------------------------------------------------+
| TableID: 38d170aca2684f4baadbbe1931a6ae1f |
| IsArchived: false |
| PhysicalSize: 0 |
| FileNum: 0 |
| StoredAs: AliOrc |
| CompressionStrategy: normal |
| ClusterType: range |
| BucketNum: 1024 |
| ClusterColumns: [c] |
| SortColumns: [c ASC] |
+------------------------------------------------------------------------------------+
OK
查看Range聚簇分区表t4的信息。聚簇属性将显示在Extended Info中。
DESC extended t4;
点击展开查看执行结果
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name |
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2020-11-16 19:17:48 |
| LastDDLTime: 2020-11-16 19:17:48 |
| LastModifiedTime: 2020-11-16 19:17:48 |
+------------------------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | ExtendedLabel | Nullable | DefaultValue | Comment |
+------------------------------------------------------------------------------------+
| a | string | | | true | NULL | |
| b | string | | | true | NULL | |
| c | bigint | | | true | NULL | |
+------------------------------------------------------------------------------------+
| Partition Columns: |
+------------------------------------------------------------------------------------+
| dt | string | |
+------------------------------------------------------------------------------------+
| Extended Info: |
+------------------------------------------------------------------------------------+
| TableID: 6ebc3432e283449188c861427bcd6ee4 |
| IsArchived: false |
| PhysicalSize: 0 |
| FileNum: 0 |
| StoredAs: AliOrc |
| CompressionStrategy: normal |
| ClusterType: range |
| BucketNum: 0 |
| ClusterColumns: [c] |
| SortColumns: [c ASC] |
+------------------------------------------------------------------------------------+
OK
查看非分区表t5是否为Transactional表。
说明 推荐您使用MaxCompute客户端查看表是否为Transactional表,需要将MaxCompute客户端升级到0.35.4或以上版本。其他工具可能会存在版本升级未就绪的问题,导致查询结果不显示Transactional信息。
DESC extended t5;
点击展开查看执行结果
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$xxxxx@aliyun.com | Project: $project_name |
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2021-02-18 10:56:27 |
| LastDDLTime: 2021-02-18 10:56:27 |
| LastModifiedTime: 2021-02-18 10:56:27 |
+------------------------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | ExtendedLabel | Nullable | DefaultValue | Comment |
+------------------------------------------------------------------------------------+
| id | bigint | | | true | NULL | |
+------------------------------------------------------------------------------------+
| Extended Info: |
+------------------------------------------------------------------------------------+
...
| Transactional: true |
+------------------------------------------------------------------------------------+
查看分区表t6是否为Transactional表。
说明 推荐您使用MaxCompute客户端查看表是否为Transactional表,需要将MaxCompute客户端升级到0.35.4或以上版本。其他工具可能会存在版本升级未就绪的问题,导致查询结果不显示Transactional信息。
DESC extended t6;
点击展开查看执行结果
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$xxxxx@test.aliyunid.com | Project: $project_name |
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2021-02-18 15:34:54 |
| LastDDLTime: 2021-02-18 15:34:54 |
| LastModifiedTime: 2021-02-18 15:34:54 |
+------------------------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | Comment |
+------------------------------------------------------------------------------------+
| id | bigint | | |
+------------------------------------------------------------------------------------+
| Partition Columns: |
+------------------------------------------------------------------------------------+
| ds | string | |
+------------------------------------------------------------------------------------+
| Extended Info: |
+------------------------------------------------------------------------------------+
...
| Transactional: true |
+------------------------------------------------------------------------------------+
查看建表语句
生成创建表的SQL DDL语句,方便您通过SQL重建Schema。
命令格式
SHOW CREATE TABLE <table_name>;
参数说明
table_name:必填。待查看建表语句的表的名称。
使用示例
-- 查看表sale_detail的建表语句。
SHOW CREATE TABLE sale_detail;
返回结果如下。
CREATE TABLE IF NOT EXISTS max****.`default`.sale_detail(shop_name STRING, customer_id STRING, total_price DOUBLE)
PARTITIONED BY (sale_date STRING, region STRING) STORED AS ALIORC TBLPROPERTIES ('columnar.nested.type'='true');
列出项目下的表和视图
列出项目下所有的表、外部表、视图和物化视图,或符合某些规则的表、外部表、视图和物化视图。
命令格式
-- 列出项目下所有的表和视图。
SHOW TABLES;
-- 列出项目下表名或视图名与chart匹配的表。
SHOW TABLES LIKE '<chart>';
使用示例
-- 列出项目下表名与sale*匹配的表。*表示任意字段。
SHOW TABLES LIKE 'sale*';
返回结果如下。
ALIYUN$account_name:sale_detail
......
--ALIYUN是系统提示符,表示您是阿里云主账号用户。如果您是阿里云RAM用户,系统提示符为RAM。
列出项目下外部表
列出项目下所有的外部表,或符合某些规则的外部表。
说明 SHOW EXTERNAL TABLES命令需要在MaxCompute客户端(odpscmd)0.43.0及以上版本中执行。
命令格式
-- 列出项目下所有的外部表。
SHOW EXTERNAL TABLES;
-- 列出项目下名称与external_chart匹配的外部表。
SHOW EXTERNAL TABLES LIKE '<external_chart>';
使用示例
--列出项目下名称与a*匹配的外部表。*表示任意字段。
SHOW EXTERNAL TABLES LIKE 'a*';
返回结果如下。
ALIYUN$account_name:a_et
......
--ALIYUN是系统提示符,表示您是阿里云主账号用户。如果您是阿里云RAM用户,系统提示符为RAM。