表操作

更新时间: 2026-03-20 11:06:32

表是MaxCompute的数据存储单元。数据仓库的开发、分析及运维都需要处理表数据。本文通过具体示例介绍如何创建、删除和查看表等常用表操作。

执行工具

本文中的命令可以在如下工具平台执行:

常用命令

  1. 表操作

    类型

    功能

    角色

    创建表

    创建非分区表、分区表、外部表或聚簇表等。

    具备项目空间创建表权限(CreateTable)的用户。

    修改表的所有人

    修改表的所有人,即表Owner。

    项目空间Owner

    删除表

    删除非分区表或分区表。

    具备删除表权限(DROP)的用户。

    查看表或视图信息

    查看MaxCompute内部表、视图或外部表的信息。

    具备读取表元信息权限(Describe)的用户。

    查看分区信息

    查看某个分区表具体的分区信息。

    具备读取表元信息权限(Describe)的用户。

    列出项目空间下的表和视图

    列出项目空间下所有的表、视图或符合某规则(支持正则表达式)的表、视图。

    具备项目空间查看对象列表权限(List)的用户。

    列出所有分区

    列出一张表中的所有分区。

    具备项目空间查看对象列表权限(List)的用户。

  2. 分区操作

  3. 列操作

  4. 表的生命周期操作

创建表

创建非分区表、分区表、外部表或聚簇表。

使用限制

  • 分区表的分区层级不能超过6级。例如某张表以日期为分区列,分区层级为年/月/周/日/时/分

  • 一张表允许的分区个数支持按照具体的项目配置,默认为6万个。

更多表的限制条件,请参见SQL使用限制项

命令格式

  • 创建内部表(包含非分区表和分区表)。

    CREATE [OR REPLACE] TABLE [IF NOT EXISTS] <table_name> (
    <col_name> <data_type>, ... )
    [comment <table_comment>]
    [PARTITIONED BY (<col_name> <data_type> [comment <col_comment>], ...)]
    [AUTO PARTITIONED 
       BY (<auto_partition_expression> [AS <auto_partition_column_name>])
      [TBLPROPERTIES('ingestion_time_partition'='true')]
    ];
  • 创建聚簇表。

    CREATE TABLE [IF NOT EXISTS] <table_name> (
    <col_name> <data_type>, ... )
    [CLUSTERED BY | RANGE CLUSTERED BY (<col_name> [, <col_name>, ...]) 
    [SORTED BY (<col_name> [ASC | DESC] [, <col_name> [ASC | DESC] ...])] 
    INTO <number_of_buckets> buckets];
  • 创建外部表。

    以OSS外部表为例,通过内置文本数据解析器创建外部表。详情请参见ORC外部表

    CREATE EXTERNAL TABLE [IF NOT EXISTS] <mc_oss_extable_name> ( 
    <col_name> <data_type>, ... ) 
    STORED AS '<file_format>' 
    [WITH SERDEPROPERTIES (options)]  
    LOCATION '<oss_location>';
  • 创建表并指定表类型。

    • 指定表为Transactional表。后续可以对该表执行更新或删除表数据操作,但是Transactional表有部分使用限制,请根据需求创建。

      CREATE [EXTERNAL] TABLE [IF NOT EXISTS] <table_name> (
      <col_name <data_type> [NOT NULL] [DEFAULT <default_value>] [comment <col_comment>], ...   
      [comment <table_comment>]
      [TBLPROPERTIES ("transactional"="true")];
    • 指定表为Delta Table表。结合PRIMARY KEY,后续可以做upsert、增量查询和Time Travel等操作。

      CREATE [EXTERNAL] TABLE [IF NOT EXISTS] <table_name> (
      <col_name <data_type> [NOT NULL] [DEFAULT <default_value>] [comment <col_comment>], ...   
      [PRIMARY KEY (<pk_col_name>[, <pk_col_name2>, ...] )]) 
      [comment <table_comment>]
      [TBLPROPERTIES ("transactional"="true" 
      [, "write.bucket.num" = "N", "acid.data.retain.hours"="hours"...])] [LIFECYCLE <days>];
  • 基于已存在表创建新表。

    • 基于已存在的表创建新表并复制数据,但不复制分区属性。支持外部表和湖仓一体外部项目中的表。

      CREATE TABLE [IF NOT EXISTS] <table_name> [LIFECYCLE <days>] AS <select_statement>;
    • 基于已存在的表创建具备相同结构的新表,但不复制数据。支持外部表和湖仓一体外部项目中的表。

      CREATE TABLE [IF NOT EXISTS] <table_name> [LIFECYCLE <days>] LIKE <existing_table_name>;

参数说明

通用参数

参数

是否必填

说明

备注

OR REPLACE

若<table_name>已经存在,则对现有表使用DROP TABLE,然后创建具有相同名称的新表进行替换。

等效于执行如下两条命令:

DROP TABLE IF EXISTS <tableName>;  -- 假如目标表存在,则先删除它
CREATE TABLE <tableName> ...;      -- 创建表
说明

使用限制:CREATE OR REPLACE TABLE暂不支持和以下语法共用。

  • CREATE TABLE ... IF NOT EXISTS。

  • CREATE TABLE ... AS SELECT。

  • CREATE TABLE ... LIKE。

EXTERNAL

创建的表为外部表。

IF NOT EXISTS

确认库中是否已存在创建表名。

如果不指定IF NOT EXISTS选项而存在同名表,会报错。如果指定IF NOT EXISTS,只要存在同名表,即使原表结构与要创建的目标表结构不一致,均返回成功。已存在的同名表的元数据信息不会被改动。

table_name

表名。

表名大小写不敏感,不能有特殊字符,只能包含a~z、A~Z、数字和下划线(_)。建议以字母开头,名称的长度不超过128字节,否则报错。

PRIMARY KEY(pk)

表的主键。

可以定义一个或多个列作为主键,表示这些列的组合在表中必须唯一,语法遵循标准SQL primary key语法,pk列必须设置NOT NULL,不允许修改。

重要

该参数仅适用于Delta Table。

col_name

表的列名。

列名大小写不敏感,不能有特殊字符,只能包含a~z、A~Z、数字、下划线(_)或中文。建议以字母开头,名称的长度不超过128字节,否则报错。

col_comment

列名的注释。

注释内容为长度不超过1024字节的有效字符串,否则报错。

data_type

列的数据类型。

包含BIGINT、DOUBLE、BOOLEAN、DATETIME、DECIMAL和STRING等多种数据类型,详情请参见数据类型版本说明

NOT NULL

禁止该列的值为NULL。

更多修改非空属性信息,请参见分区操作

default_value

列的默认值。

insert操作不指定该列时,将该列写入默认值。

说明

当前默认值不支持函数,例如GETDATE()NOW()等。

table_comment

表注释。

注释内容为长度不超过1024字节的有效字符串,否则报错。

LIFECYCLE

表的生命周期。

仅支持正整数。单位为天。

  • 非分区表:自最后一次修改表数据开始计算,经过days天后数据无改动,则您无需干预此表,MaxCompute会自动回收(类似drop table操作)。

  • 分区表:系统根据各分区的LastModifiedTime判断是否需要回收分区。不同于非分区表,分区表的最后一个分区被回收后,该表不会被删除。生命周期只能设定到表级别,不支持在分区级别设置生命周期。

分区表参数

MaxCompute支持普通分区表和自动分区表(AUTO PARTITION)两种分区表类型,您可根据不同场景下预期的分区列生成方式,选择不同的分区表类型。详情请参见分区表概述

普通分区表参数

参数

是否必填

说明

备注

PARTITIONED BY

指定普通分区表的分区。

仅支持选择PARTITIONED BY和AUTO PARTITIONED BY两者中的一种方式指定分区。

col_name

表的分区列名。

列名大小写不敏感,不能有特殊字符,只能包含a~z、A~Z、数字、下划线(_)或中文。建议以字母开头,名称的长度不超过128字节,否则报错。

data_type

分区列的数据类型。

MaxCompute 1.0版本仅支持STRING类型。MaxCompute 2.0版本扩充了分区类型,包含TINYINT、SMALLINT、INT、BIGINT、VARCHAR和STRING类型。详情请参见数据类型版本说明。当使用分区字段对表进行分区时,新增分区、更新分区内数据和读取分区数据均不需要做全表扫描,提高处理效率。

col_comment

分区列的注释内容。

注释内容为长度不超过1024字节的有效字符串,否则报错。

说明

分区值不能包含双字节字符(如中文),必须以字母开头,包含字母、数字和允许的字符,长度不超过255字节。允许的字符包括空格、冒号(:)、下划线(_)、美元符号($)、井号(#)、英文句点(.)、感叹号(!)和at(@),其他字符的行为未定义,例如转义字符\t\n/

AUTO PARTITION表参数

自动分区表(AUTO PARTITION)的分区列支持基于一定方式自动生成。更多关于AUTO PARTITION表的使用说明,请参见分区表类型

参数

是否必填

说明

备注

AUTO PARTITIONED BY

指定AUTO PARTITION表的分区。

仅支持选择PARTITIONED BY和AUTO PARTITIONED BY两者中的一种方式指定分区。

auto_partition_expression

定义如何进行分区列计算的表达式。

当前仅支持使用TRUNC_TIME函数生成分区列,仅支持一个分区列。

TRUNC_TIME函数支持对表中的时间/日期类型的列的数据,按照指定的时间单位进行截取计算,并生成分区列。

auto_partition_column_name

生成分区列的列名。

若未指定分区列的列名,则系统会以_pt_col_0_ 为默认列名,依次检查表中是否存在该列名,若存在则自动递增后缀(如 _pt_col_1__pt_col_2_ 等),直到找到未被占用的列名为止。

使用分区表达式进行分区计算后,会根据计算结果生成一个STRING类型的分区列,列名可以显式指定,列类型和列的取值均不支持直接操作。

TBLPROPERTIES('ingestion_time_partition'='true')

是否按数据写入时间生成分区列。

按数据写入时间生成分区的使用方式,请参见基于数据写入时间的自动分区表

聚簇表参数

聚簇表分为Hash聚簇表和Range聚簇表两种。

HASH聚簇表

参数

是否必填

说明

备注

CLUSTERED BY

指定Hash Key。

MaxCompute将对指定列进行Hash运算,按照Hash值分散到各个Bucket中。为避免数据倾斜和热点,并取得较好的并行执行效果,CLUSTERED BY列适宜选择取值范围大,重复键值少的列。此外,为了达到join优化的目的,也应该考虑选取常用的Join或Aggregation Key,即类似于传统数据库中的主键。

SORTED BY

指定Bucket内字段的排序方式。

建议SORTED BYCLUSTERED BY保持一致,以取得较好的性能。此外,当指定SORTED BY子句后,MaxCompute将自动生成索引,并且在查询时利用索引来加快执行。

number_of_buckets

指定哈希桶的数量。

该值必须填写,且由数据量大小决定。此外,MaxCompute默认支持最多1111个Reducer,所以此处最多只支持1111个哈希桶。您可以使用set odps.stage.reducer.num =<并发数>;来提升这个限制,但最大不得超过4000,否则会影响性能。

说明

选择哈希桶数目时,请您遵循以下两个原则:

  • 哈希桶大小适中:建议每个Bucket的大小为500 MB左右。例如,分区大小估计为500 GB,粗略估算Bucket数目应该设为1000,这样平均每个Bucket大小约为500 MB。对于特别大的表,500 MB的限制可以突破,每个Bucket在2 GB~3 GB左右比较合适。同时,可以结合set odps.stage.reducer.num=<并发数>;来突破1111个桶的限制。

  • 对于join优化场景,去除Shuffle和Sort步骤能显著提升性能。因此要求两个表的哈希桶数目成倍数关系,例如256和512。建议哈希桶的数量统一使用2n,例如512、1024、2048或4096,这样系统可以自动进行哈希桶的分裂和合并,也可以去除Shuffle和Sort的步骤,提升执行效率。

RANGE聚簇表

参数

是否必填

说明

备注

RANGE CLUSTERED BY

指定范围聚簇列。

MaxCompute将对指定列进行分桶运算,按照分桶编号分散到各个Bucket中。

SORTED BY

指定Bucket内字段排序方式。

使用方法与Hash聚簇表相同。

number_of_buckets

指定哈希桶的数量。

Range聚簇表的Bucket桶数没有Hash聚簇表的2n最佳实践,在数据量分布合理的情况下,任何桶数都可以。Range聚簇表的Bucket数不是必须的,可以省略,此时系统会根据数据量自动决定最佳的Bucket数目。

当Join或Aggregation的对象是Range聚簇表,且Join Key或Group Key是Range Clustering Key或其前缀时,可以通过控制Flag消除数据的重分布,即Shuffle Remove,提升执行效率。您可以通过set odps.optimizer.enable.range.partial.repartitioning=true/false;进行设置,默认关闭。

说明
  • 聚簇表的优点:

    • 优化Bucket Pruning。

    • 优化Aggregation。

    • 优化存储。

  • 聚簇表的限制:

    • 不支持INSERT INTO,只能通过INSERT OVERWRITE来添加数据。

    • 不支持Tunnel直接Upload到Range聚簇表,因为Tunnel上传数据是无序的。

    • 不支持备份恢复功能。

外部表参数

本示例以OSS外部表创建参数为例。更多外部表创建,详情请参见外部表

参数

是否必填

说明

STORED AS '<file_format>'

按照外部表数据格式指定file_format。

WITH SERDEPROPERTIES(options)

外部表的授权、压缩、字符解析等相关参数。

oss_location

外部表数据OSS存储位置,详情请参见OSS外部表

Transaction Table与Delta Table表参数

Delta Table表参数

Delta Table是一种可支持近实时读写,增量存储和读写,实时更新等能力的表格式,目前只支持主键表。

参数

是否必填

说明

备注

PRIMARY KEY(PK)

创建Delta Table主键表时必填,可包含多列。

语法遵循标准SQL primary key语法,PK列必须设置not null,不允许修改。 设置后,后续表数据会根据PK列进行去重,Unique约束在单个partition范围内有效,或非分区表内有效。

transactional

创建Delta Table类型表时必填,必须设置为true。

表示符合MaxCompute的ACID表的事务特性,采用MVCC事务管理模式,保证快照隔离级别。

write.bucket.num

默认取值为16,取值范围为(0, 4096]

表示每个partition或者非分区表的分桶数量,也表示数据写入的并发节点数量。分区表支持修改,新分区默认生效,非分区表不支持修改。该参数用法可参考如下建议:

  • 如果是通过Tunnel导入,代表Tunnel并发节点数,设置结果会影响导入流量,也会受Tunnel最大并发节点数约束。

  • 如果是通过SQL写入,代表写入数据的Reducer的并发度,受Reducer最大并发节点数约束。

  • 建议每个Bucket的数据写入大小为500 MB左右。例如,分区大小估计为500 GB,粗略估算Bucket数目应该设为1000,这样平均每个Bucket大小约为500 MB。对于特别大的表,500 MB的限制可以突破,每个Bucket在2 GB到3 GB左右比较合适。

acid.data.retain.hours

默认取值为24,取值范围为[24, 168]

表示TimeTravel可查询数据历史状态的时间范围(单位为小时)。若需要超过168小时(7天)的长时间TimeTravel历史回溯,可联系MaxCompute技术支持。

  • 取值为0时表示不保留数据历史状态,也就是不支持timetravel查询。

  • 如果数据历史状态存在时间超过了此参数设置的值,可被删除或者Compact。

  • 如果SQL timetravel查询的时间早于该参数的值,会直接报错,比如属性值为72小时,timetravel要查询72小时之前的数据历史状态,会直接报错。

acid.incremental.query.out.of.time.range.enabled

默认false

True表示增量查询指定的endTimestamp可大于表最大的数据Commit Time,在endTimestamp大于当前时间场景下,用户多次查询可能得到不同的结果,因为可能有新的数据插入。支持修改表的此参数取值。

acid.write.precombine.field

可以指定一个列的名称,且只能指定一个。

如果指定了列名,在同一提交的文件处理中,系统会结合主键(PK)列对数据进行去重处理,确保数据的唯一性和一致性。

说明

当一次性提交的数据量超过128 M时,会导致生成多个文件,该参数对多个文件不适用。

acid.partial.fields.update.enable

设置为true时,支持使用SQL或Tunnel对Delta Table进行部分列更新

该参数在创建表时进行设置。表创建成功后不支持修改

  • Delta Table其他通用参数的设置要求。

    • LIFECYCLE: 表生命周期必须大于等于Time Travel可查询的生命周期,即lifecycle >= acid.data.retain.hours / 24。创建表时会做检查,不符合会报错。

    • 其他不支持的特性:不支持设置CLUSTER BY、EXTERNAL外表和CREATE TABLE AS。

  • 其他使用限制:

    • 当前不支持除MaxCompute SQL外的其他引擎直接操作Delta Table。

    • 存量普通表不支持修改为Delta Table。

    • 不支持对Delta Table主键表的PK列做表结构变更。

Transaction Table表参数

参数

是否必填

说明

TBLPROPERTIES(transactional"="true")

设置表为Transactional表。后续可以对Transactional表执行updatedelete操作实现行级更新或删除数据。更多信息,请参见更新或删除数据(UPDATE | DELETE)

Transactional表的使用限制如下:

  • MaxCompute只允许在创建表时设置Transactional属性。已创建的表不允许通过ALTER TABLE方式修改Transactional属性,执行如下语句会报错:

    ALTER TABLE not_txn_tbl SET TBLPROPERTIES("transactional"="true");
    --报错。
    FAILED: Catalog Service Failed, ErrorCode: 151, Error Message: Set transactional is not supported
  • 在创建表时,不支持将聚簇表、外部表设置为Transactional表。

  • 不支持MaxCompute内部表、外部表、聚簇表与Transactional表互转。

  • 不支持自动合并Transactional表文件,需要手动执行合并操作,详情请参见合并Transactional表文件

  • 不支持merge partition操作。

  • 其他系统的作业访问Transactional表有一些限制,例如Graph不支持读写;Spark、PAI只支持读,不支持写。

基于已有数据表建表参数

  • 通过CREATE TABLE [IF NOT EXISTS] <table_name> [LIFECYCLE <days>] AS <select_statement>;语句可以再创建一个表,并在建表的同时将数据复制到新表中。

    • 但通过该语句创建的表不会复制分区属性,只会把源表的分区列作为目标表的一般列处理,也不会复制源表的生命周期属性。

    • 您还可以通过lifecycle参数回收表。同时也支持创建内部表复制外部表的数据。

  • 通过CREATE TABLE [IF NOT EXISTS] <table_name> [LIFECYCLE <days>] LIKE <existing_table_name>;语句可以再创建一个表,使目标表和源表具有相同的表结构。

    • 但通过该语句创建的表不复制数据,也不会复制源表的生命周期属性。

    • 您还可以通过lifecycle参数回收表。同时也支持创建内部表复制外部表的结构。

使用示例

创建非分区表

  • 创建非分区表

    CREATE TABLE test1 (key STRING);
  • 创建非分区表,并为字段指定默认值。

    CREATE TABLE test_default( 
    tinyint_name tinyint NOT NULL default 1Y,
    smallint_name SMALLINT NOT NULL DEFAULT 1S,
    int_name INT NOT NULL DEFAULT 1,
    bigint_name BIGINT NOT NULL DEFAULT 1,
    binary_name BINARY ,
    float_name FLOAT ,
    double_name DOUBLE NOT NULL DEFAULT 0.1,
    decimal_name DECIMAL(2, 1) NOT NULL DEFAULT 0.0BD,
    varchar_name VARCHAR(10) ,
    char_name CHAR(2) ,
    string_name STRING NOT NULL DEFAULT 'N',
    boolean_name BOOLEAN NOT NULL DEFAULT TRUE
    );

创建分区表

  • 创建普通分区表。

    CREATE TABLE IF NOT EXISTS sale_detail(
     shop_name     STRING,
     customer_id   STRING,
     total_price   DOUBLE)
    PARTITIONED BY (sale_date STRING, region STRING);
  • 创建AUTO PARTITION分区表,根据时间类型的数据列,使用时间计算函数生成分区。

    -- 对表中sale_date列,按月为粒度进行截取,生成了名为sale_month的分区列,并根据该分区列进行表的分区
    CREATE TABLE IF NOT EXISTS auto_sale_detail(
     shop_name     STRING,
     customer_id   STRING,
     total_price   DOUBLE,
     sale_date    DATE )
    AUTO PARTITIONED BY (TRUNC_TIME(sale_date, 'month') AS sale_month);
  • 创建AUTO PARTITION分区表并指定基于数据写入时间生成分区,此时系统会自动获取数据写入至MaxCompute的时间,结合时间计算函数生成分区。

    -- 表创建完成后,当数据写入时系统会自动获取数据写入时间_partitiontime,按天为粒度进行截取,并生成名为sale_date的分区列,并根据该分区列进行表的分区
    CREATE TABLE IF NOT EXISTS auto_sale_detail2(
     shop_name     STRING,
     customer_id   STRING,
     total_price   DOUBLE,
     _partitiontime TIMESTAMP_NTZ)
    AUTO PARTITIONED BY (TRUNC_TIME(_partitiontime, 'day') AS sale_date)
    TBLPROPERTIES('ingestion_time_partition'='true');

创建新表

  • 创建新表,替换原有表。

    1. 创建原有表mytable,并写入数据。

      CREATE OR REPLACE TABLE my_table(a BIGINT);
      
      INSERT INTO my_table(a) VALUES (1),(2),(3);
    2. 使用OR REPLACE创建新的同名表,并修改字段。

      CREATE OR REPLACE TABLE my_table(b STRING);
    3. 查询my_table表,返回结果如下。

      +------------+
      | b          | 
      +------------+
      +------------+

    以下为非法的SQL语句:

    CREATE OR REPLACE TABLE IF NOT EXISTS my_table(b STRING);
    CREATE OR REPLACE TABLE my_table AS SELECT;
    CREATE OR REPLACE TABLE my_table LIKE newtable;
  • 创建新表,将已有表数据复制到新表,并设置生命周期。

    -- 创建一个新表sale_detail_ctas1,将sale_detail的数据复制到sale_detail_ctas1中,并设置生命周期。
    SET odps.sql.allow.fullscan=true;
    CREATE TABLE sale_detail_ctas1 LIFECYCLE 10 AS SELECT * FROM sale_detail;

    您可以通过DESC EXTENDED sale_detail_ctas1;命令查看到表的结构及生命周期等详细信息。

    说明

    此处sale_detail是一张分区表,而通过CREATE TABLE ... AS select_statement ...语句创建的表sale_detail_ctas1不会复制分区属性,只会把源表的分区列作为目标表的一般列处理。即sale_detail_ctas1是一个含有5列的非分区表。

  • 创建新表,在SELECT语句中使用常量作为列的值。

    说明

    如果在SELECT子句中使用常量作为列的值,建议您指定列的名字。创建的表sale_detail_ctas3的第四、五列类似于_c4_c5

    • 指定列的名字。

      SET odps.sql.allow.fullscan=true;
      CREATE TABLE sale_detail_ctas2
      AS
      SELECT shop_name, customer_id, total_price, '2013' AS sale_date, 'China' AS region
      FROM sale_detail;
    • 不指定列的名字。

      SET odps.sql.allow.fullscan=true;
      
      CREATE TABLE sale_detail_ctas3
      AS
      SELECT shop_name, customer_id, total_price, '2013', 'China' 
      FROM sale_detail;
  • 创建新表,与已有表的结构相同,并设置生命周期。

    CREATE TABLE sale_detail_like LIKE sale_detail LIFECYCLE 10;

    您可以通过DESC EXTENDED sale_detail_like;命令查看到表的结构及生命周期等详细信息。

    说明

    sale_detail_like的表结构与sale_detail完全相同。除生命周期属性外,列名、列注释以及表注释等均相同。但sale_detail中的数据不会被复制到sale_detail_like表中。

  • 创建新表,与外部表具有相同的表结构。

    -- 创建一个新表mc_oss_extable_orc_like,与外部表mc_oss_extable_orc具有相同的表结构。
    CREATE TABLE mc_oss_extable_orc_like LIKE mc_oss_extable_orc;

    您可以通过DESC mc_oss_extable_orc_like;命令查看表结构等详细信息。

    +------------------------------------------------------------------------------------+
    | Owner: ALIYUN$****@***.aliyunid.com | Project: max_compute_7u************yoq              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2022-08-11 11:10:47                                      |
    | LastDDLTime:              2022-08-11 11:10:47                                      |
    | LastModifiedTime:         2022-08-11 11:10:47                                      |
    +------------------------------------------------------------------------------------+
    | InternalTable: YES      | Size: 0                                                  |
    +------------------------------------------------------------------------------------+
    | Native Columns:                                                                    |
    +------------------------------------------------------------------------------------+
    | Field           | Type       | Label | Comment                                     |
    +------------------------------------------------------------------------------------+
    | id              | string     |       |                                             |
    | name            | string     |       |                                             |
    +------------------------------------------------------------------------------------+

创建使用新数据类型的表

SET odps.sql.type.system.odps2=true;
CREATE TABLE test_newtype (
    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))
LIFECYCLE 1;

创建Hash/Range聚簇表

  • 创建Hash聚簇非分区表。

    CREATE TABLE t1 (a STRING, b STRING, c BIGINT) CLUSTERED BY (c) SORTED BY (c) INTO 1024 buckets;
  • 创建Hash聚簇分区表。

    CREATE TABLE t2 (a STRING, b STRING, c BIGINT) 
    PARTITIONED BY (dt STRING) CLUSTERED BY (c) SORTED BY (c) INTO 1024 buckets;
  • 创建Range聚簇非分区表。

    CREATE TABLE t3 (a STRING, b STRING, c BIGINT) RANGE CLUSTERED BY (c) SORTED BY (c) INTO 1024 buckets;
  • 创建Range聚簇分区表。

    CREATE TABLE t4 (a STRING, b STRING, c BIGINT) 
    PARTITIONED BY (dt STRING) RANGE CLUSTERED BY (c) SORTED BY (c); 

创建Transaction表

  • 创建Transactional非分区表。

    CREATE TABLE t5(id BIGINT) TBLPROPERTIES ("transactional"="true");
  • 创建Transactional分区表。

    CREATE TABLE IF NOT EXISTS t6(id BIGINT) 
    PARTITIONED BY (ds STRING) TBLPROPERTIES ("transactional"="true");

创建内部表

  • 创建内部表复制外部分区表数据,内部表不包含分区属性。

    1. 创建OSS外部表和MaxCompute内部表。

      -- 创建oss外部表并插入数据。
      CREATE EXTERNAL TABLE max_oss_test(a INT, b INT, c INT) 
      STORED AS TEXTFILE
      LOCATION "oss://oss-cn-hangzhou-internal.aliyuncs.com/<bucket_name>";
      
      INSERT INTO max_oss_test VALUES 
      (101, 1, 20241108),
      (102, 2, 20241109),
      (103, 3, 20241110);
      
      SELECT * FROM max_oss_test;
      
      -- 结果
      a    b    c
      101    1    20241108
      102    2    20241109
      103    3    20241110
      
      
      -- 使用create table as创建内部表
      CREATE TABLE from_exetbl_oss AS SELECT * FROM max_oss_test;
      
      -- 查询新建内部表
      SELECT * FROM from_exetbl_oss;
      
      -- 返回结果,全表数据都有
      a    b    c
      101    1    20241108
      102    2    20241109
      103    3    20241110
    2. 执行DESC from_exetbl_as_par;查询内部表结构。返回结果如下。

      +------------------------------------------------------------------------------------+
      | Owner:                    ALIYUN$***********                                       |
      | Project:                  ***_*****_***                                            |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2023-01-10 15:16:33                                      |
      | LastDDLTime:              2023-01-10 15:16:33                                      |
      | LastModifiedTime:         2023-01-10 15:16:33                                      |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 919                                                |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field           | Type       | Label | Comment                                     |
      +------------------------------------------------------------------------------------+
      | a               | string     |       |                                             |
      | b               | string     |       |                                             |
      | c               | string     |       |                                             |
      +------------------------------------------------------------------------------------+
  • 创建内部表复制外部分区表数据,内部表包含分区属性。

    1. 创建内部表from_exetbl_like

      -- MaxCompute侧查询湖仓一体外部表
      SELECT * FROM max_oss_test;
      -- 返回结果
      a    b    c
      101    1    20241108
      102    2    20241109
      103    3    20241110
      
      -- 使用create table like创建内部表
      CREATE TABLE from_exetbl_like LIKE max_oss_test;
      
      -- 查询新建内部表
      SELECT * FROM from_exetbl_like;
      -- 返回结果,只有表结构出现
      a    b    c
    2. 执行DESC from_exetbl_like;查询内部表结构。返回结果如下。

      +------------------------------------------------------------------------------------+
      | Owner:                    ALIYUN$************                                      |
      | Project:                  ***_*****_***                                            |
      | TableComment:                                                                      |
      +------------------------------------------------------------------------------------+
      | CreateTime:               2023-01-10 15:09:47                                      |
      | LastDDLTime:              2023-01-10 15:09:47                                      |
      | LastModifiedTime:         2023-01-10 15:09:47                                      |
      +------------------------------------------------------------------------------------+
      | InternalTable: YES      | Size: 0                                                  |
      +------------------------------------------------------------------------------------+
      | Native Columns:                                                                    |
      +------------------------------------------------------------------------------------+
      | Field           | Type       | Label | Comment                                     |
      +------------------------------------------------------------------------------------+
      | a               | string     |       |                                             |
      | b               | string     |       |                                             |
      +------------------------------------------------------------------------------------+
      | Partition Columns:                                                                 |
      +------------------------------------------------------------------------------------+
      | c               | string     |                                                     |
      +------------------------------------------------------------------------------------+

创建Delta Table表

  • 创建Delta Table。

    CREATE TABLE mf_tt (pk BIGINT NOT NULL PRIMARY KEY, val BIGINT) 
      TBLPROPERTIES ("transactional"="true");
  • 创建Delta Table表,设置主要表属性。

    CREATE TABLE mf_tt2 ( 
      pk BIGINT NOT NULL, 
      pk2 BIGINT NOT NULL, 
      val BIGINT, 
      val2 BIGINT, 
      PRIMARY KEY (pk, pk2)
    ) 
    TBLPROPERTIES (
      "transactional"="true", 
      "write.bucket.num" = "64", 
      "acid.data.retain.hours"="120"
    ) LIFECYCLE 7;

修改表的所有人

使用限制

仅项目所有者(Project Owner)或具备Super_Administrator角色的用户可执行修改表Owner的命令。

命令格式

ALTER TABLE <table_name> CHANGEOWNER TO <new_owner>;

参数说明

  • table_name:必填。待修改Owner的表名。

  • new_owner:必填。修改后的Owner账号。

    如果要修改Owner为RAM用户:

    • 需确保RAM用户已加入到表所在的项目中。

    • 格式为:RAM$<UID>:<ram_name>,其中UID为阿里云账号的账号ID,ram_name为RAM用户显示名称。

使用示例

  • 将表test1的所有人修改为ALIYUN$xxx@aliyun.com

    ALTER TABLE test1 CHANGEOWNER TO 'ALIYUN$xxx@aliyun.com';
  • 将表test1的所有人修改为名称为ram_test的RAM用户。

    ALTER TABLE test1 CHANGEOWNER TO 'RAM$13xxxxxxxxxxx:ram_test';

删除表

删除非分区表或分区表。

注意事项

  • 请谨慎操作,确认表可以删除后,再执行删除操作。如果误删了表,当项目开启了备份恢复功能,且删除操作未超过项目设置的备份数据保留天数时,则可以恢复表。更多备份恢复信息,请参见本地备份

  • 删除表之后,MaxCompute项目的存储量会降低。

命令格式

DROP TABLE [IF EXISTS] <table_name>; 

参数说明

参数

是否必填

说明

IF EXISTS

如果不指定IF EXISTS且表不存在,则返回异常。如果指定IF EXISTS,无论表是否存在,均返回成功。

table_name

待删除的表名。

使用示例

--删除表sale_detail。无论sale_detail表是否存在,均返回成功。
DROP TABLE IF EXISTS sale_detail; 

查看表或视图信息

查看MaxCompute内部表、视图、物化视图、外部表、聚簇表或Transactional表的信息。

命令格式

-- 查看内部表或视图信息。
DESC <table_name|view_name> [PARTITION (<pt_spec>)]; 
-- 查看物化视图、外部表、聚簇表或Transactional表信息。也可以查看内部表的扩展信息。
DESC extended <table_name|mv_name>; 

参数说明

参数名

说明

table_name

必填。待查看表的名称。

view_name

必填。待查看视图的名称。

mv_name

待查询物化视图的名称。

pt_spec

可选。待查看分区表的指定分区。

格式为(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...)

extended

如果为物化视图、外部表、聚簇表或Transactional表,需要包含此参数以显示表的扩展信息。对于内部表,也可以使用此参数查看扩展信息,例如列的非空属性。

返回值说明

参数名

说明

Owner

表或视图的所有者账号。

Project

表或视图的所属项目。

TableComment

表或视图的注释信息。

CreateTime

表或视图的创建时间。

LastDDLTime

表或视图的DDL最后变更时间。

LastModifiedTime

表或视图的数据最后变更时间。

LastAccessTime

表或视图的数据最后访问时间。该时间为参考值,与数据实际最后访问时间最大存在24小时时间差。

因数据可能会被频繁访问,为降低LastAccessTime刷新的性能损耗,访问某张表的数据时如果LastAccessTime在最近24h内更新过,则不会再次更新。

Lifecycle

生命周期(天)。

InternalTable

是否为内部表,Table对象才有此返回值。

VirtualView

是否为视图,View对象才有此返回值。

Size

表大小,单位为Byte。

NativeColumns

表或视图的列信息。

PartitionColumns

分区列信息,分区表才有此返回值。

使用示例

说明
  • 通过DESC table_name查看到的Size包含了在回收站的数据Size。

  • 如果需要清空回收站,可以先执行PURGE TABLE table_name,然后再执行DESC table_name查看除回收站以外的数据大小。

  • 执行SHOW recyclebin查看本项目中回收站内的数据明细。

示例1:查看创建的非分区表信息

  • 创建测试表

    CREATE TABLE test_table (
        key STRING
    );
  • 查看创建的test_table表信息

    DESC test_table;
  • 返回结果

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$***_com                                           |
    | Project:                  testproject                                              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 15:04:49                                      |
    | LastDDLTime:              2025-12-15 15:04:50                                      |
    | LastModifiedTime:         2025-12-15 15:04:49                                      |
    +------------------------------------------------------------------------------------+
    | InternalTable: YES      | Size: 0                                                  |
    +------------------------------------------------------------------------------------+
    | Native Columns:                                                                    |
    +------------------------------------------------------------------------------------+
    | Field           | Type       | Label | Comment                                     |
    +------------------------------------------------------------------------------------+
    | key             | string     |       |                                             |
    +------------------------------------------------------------------------------------+

示例2:查看创建的分区表信息

  • 创建测试表

    CREATE TABLE test_table_partition (
        shop_name       STRING,
        customer_id     STRING,
        total_price     DOUBLE
    )
    PARTITIONED BY (
        sale_date       STRING,
        region          STRING
    );
  • 查看创建的表信息

    DESC test_table_partition;
  • 返回结果

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$***_com                                           |
    | Project:                  testproject                                              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 15:08:27                                      |
    | LastDDLTime:              2025-12-15 15:08:27                                      |
    | LastModifiedTime:         2025-12-15 15:08:27                                      |
    +------------------------------------------------------------------------------------+
    | 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     |                                                     |
    +------------------------------------------------------------------------------------+
    

示例3:查看包含分区表详细信息

  • 创建测试表

    CREATE TABLE IF NOT EXISTS test_table_partition (
        shop_name       STRING,
        customer_id     STRING,
        total_price     DOUBLE
    )
    PARTITIONED BY (
        sale_date       STRING,
        region          STRING
    );
  • 查看创建的表信息

    DESC EXTENDED test_table_partition;
  • 返回结果

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$***_com                                           |
    | Project:                  testproject                                              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 15:08:27                                      |
    | LastDDLTime:              2025-12-15 15:08:27                                      |
    | LastModifiedTime:         2025-12-15 15:08:27                                      |
    +------------------------------------------------------------------------------------+
    | 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:                  8c4d6ed34c964326b45d0435a3babe45                         |
    | IsArchived:               false                                                    |
    | PhysicalSize:             0                                                        |
    | FileNum:                  0                                                        |
    | StoredAs:                 AliOrc                                                   |
    | CompressionStrategy:      normal                                                   |
    | odps.timemachine.retention.days: 1                                                        |
    | encryption_enable:        false                                                    |
    +------------------------------------------------------------------------------------+
    

示例4:查看包含生命周期表的详细信息

  • 创建测试表

    CREATE TABLE sale_detail_ctas(
        shop_name       STRING,
        customer_id     STRING,
        total_price     DOUBLE,
        sale_date       STRING,
        region          STRING
    )
    LIFECYCLE 10;
  • 查看创建的表详细信息

    DESC EXTENDED sale_detail_ctas;
  • 返回结果

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$***_com                                           |
    | Project:                  testproject                                              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 15:13:22                                      |
    | LastDDLTime:              2025-12-15 15:13:22                                      |
    | LastModifiedTime:         2025-12-15 15:13:22                                      |
    | 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:                  8271334ac9724d09a4973b5b3d536f4c                         |
    | IsArchived:               false                                                    |
    | PhysicalSize:             0                                                        |
    | FileNum:                  0                                                        |
    | StoredAs:                 AliOrc                                                   |
    | CompressionStrategy:      normal                                                   |
    | odps.timemachine.retention.days: 1                                                        |
    | ColdStorageStatus:        N/A                                                      |
    | encryption_enable:        false                                                    |
    | StorageTier:              Standard                                                 |
    | StorageTierLastModifiedTime:  2025-12-15 15:13:22                                  |
    +------------------------------------------------------------------------------------+

示例5:查看创建的包含不同数据类型字段的表信息

  • 创建测试表

    CREATE TABLE  test_newtype(
        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)
    );
  • 查看创建的表详细信息

    DESC test_newtype;
  • 返回结果

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$***_com                                           |
    | Project:                  testproject                                              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 16:09:18                                      |
    | LastDDLTime:              2025-12-15 16:09:18                                      |
    | LastModifiedTime:         2025-12-15 16:09:18                                      |
    +------------------------------------------------------------------------------------+
    | InternalTable: YES      | Size: 0                                                  |
    +------------------------------------------------------------------------------------+
    | Native Columns:                                                                    |
    +------------------------------------------------------------------------------------+
    | Field           | Type       | Label | Comment                                     |
    +------------------------------------------------------------------------------------+
    | c1              | tinyint    |       |                                             |
    | c2              | smallint   |       |                                             |
    | c3              | int        |       |                                             |
    | c4              | bigint     |       |                                             |
    | c5              | float      |       |                                             |
    | c6              | double     |       |                                             |
    | c7              | decimal(38,18) |   |                                             |
    | c8              | binary     |       |                                             |
    | c9              | timestamp  |       |                                             |
    | c10             | array<map<bigint,bigint>> |       |                              |
    | c11             | map<string,array<bigint>> |       |                              |
    | c12             | struct<s1:string,s2:bigint> |       |                            |
    | c13             | varchar(20) |       |                                            |
    +------------------------------------------------------------------------------------+

示例6:查看创建的Hash聚簇非分区表信息

  • 创建测试表

    CREATE TABLE hash_clustered_nonpar (
        a               STRING,
        b               STRING,
        c               BIGINT
    )
    CLUSTERED BY (c)
    SORTED BY (c ASC)
    INTO 1024 BUCKETS;
    
  • 查看创建的表详细信息

    DESC EXTENDED hash_clustered_nonpar;
  • 返回结果

    聚簇属性将显示在Extended Info中。

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$***_com                                           |
    | Project:                  testproject                                              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 16:18:07                                      |
    | LastDDLTime:              2025-12-15 16:18:07                                      |
    | LastModifiedTime:         2025-12-15 16:18:07                                      |
    +------------------------------------------------------------------------------------+
    | 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:                  904e6a0d76624346903d59a2b536d0a3                         |
    | IsArchived:               false                                                    |
    | PhysicalSize:             0                                                        |
    | FileNum:                  0                                                        |
    | StoredAs:                 AliOrc                                                   |
    | CompressionStrategy:      normal                                                   |
    | odps.timemachine.retention.days: 1                                                 |
    | ColdStorageStatus:        N/A                                                      |
    | encryption_enable:        false                                                    |
    | ClusterType:              hash                                                     |
    | BucketNum:                1024                                                     |
    | ClusterColumns:           [c]                                                      |
    | SortColumns:              [c ASC]                                                  |
    | StorageTier:              Standard                                                 |
    | StorageTierLastModifiedTime:  2025-12-15 16:18:07                                  |
    +------------------------------------------------------------------------------------+

示例7:查看创建的Hash聚簇分区表信息

  • 创建测试表

    CREATE TABLE hash_clustered_par (
        a               STRING,
        b               STRING,
        c               BIGINT
    )
    PARTITIONED BY (
        dt              STRING
    )
    CLUSTERED BY (c)
    SORTED BY (c ASC)
    INTO 1024 BUCKETS
    LIFECYCLE 2;
    
  • 查看创建的表详细信息

    DESC EXTENDED hash_clustered_par;
  • 返回结果

    聚簇属性将显示在Extended Info中。

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$***_com                                           |
    | Project:                  testproject                                              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 16:26:24                                      |
    | LastDDLTime:              2025-12-15 16:26:24                                      |
    | LastModifiedTime:         2025-12-15 16:26:24                                      |
    | Lifecycle:                2                                                        |
    +------------------------------------------------------------------------------------+
    | 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:                  5680f0711add43928389db3655d9183e                         |
    | IsArchived:               false                                                    |
    | PhysicalSize:             0                                                        |
    | FileNum:                  0                                                        |
    | StoredAs:                 AliOrc                                                   |
    | CompressionStrategy:      normal                                                   |
    | odps.timemachine.retention.days: 1                                                 |
    | encryption_enable:        false                                                    |
    | ClusterType:              hash                                                     |
    | BucketNum:                1024                                                     |
    | ClusterColumns:           [c]                                                      |
    | SortColumns:              [c ASC]                                                  |
    +------------------------------------------------------------------------------------+

示例8:查看Range聚簇非分区表信息

  • 创建测试表

    CREATE TABLE range_clustered_nonpar (
        a               STRING,
        b               STRING,
        c               BIGINT
    )
    RANGE CLUSTERED BY (c);
  • 查看创建的表详细信息

    DESC EXTENDED range_clustered_nonpar;
  • 返回结果

    聚簇属性将显示在Extended Info中。

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$***_com                                           |
    | Project:                  testproject                                              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 16:30:45                                      |
    | LastDDLTime:              2025-12-15 16:30:45                                      |
    | LastModifiedTime:         2025-12-15 16:30:45                                      |
    +------------------------------------------------------------------------------------+
    | 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:                  bf01d946c4b24c0e9c54ccfe8750b7c2                         |
    | IsArchived:               false                                                    |
    | PhysicalSize:             0                                                        |
    | FileNum:                  0                                                        |
    | StoredAs:                 AliOrc                                                   |
    | CompressionStrategy:      normal                                                   |
    | odps.timemachine.retention.days: 1                                                 |
    | ColdStorageStatus:        N/A                                                      |
    | encryption_enable:        false                                                    |
    | ClusterType:              range                                                    |
    | BucketNum:                0                                                        |
    | ClusterColumns:           [c]                                                      |
    | StorageTier:              Standard                                                 |
    | StorageTierLastModifiedTime:  2025-12-15 16:30:45                                  |
    +------------------------------------------------------------------------------------+

示例9:查看Range聚簇分区表信息

  • 创建测试表

    CREATE TABLE range_clustered_par (
        a               STRING,
        b               STRING,
        c               BIGINT
    )
    PARTITIONED BY (
        dt              STRING
    )
    RANGE CLUSTERED BY (c);
  • 查看创建的表详细信息

    DESC EXTENDED range_clustered_par;
  • 返回结果

    聚簇属性将显示在Extended Info中。

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$***_com                                           |
    | Project:                  testproject                                              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 16:33:09                                      |
    | LastDDLTime:              2025-12-15 16:33:09                                      |
    | LastModifiedTime:         2025-12-15 16:33:09                                      |
    +------------------------------------------------------------------------------------+
    | 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:                  bdc4f6897691479ea9c315664f26fe39                         |
    | IsArchived:               false                                                    |
    | PhysicalSize:             0                                                        |
    | FileNum:                  0                                                        |
    | StoredAs:                 AliOrc                                                   |
    | CompressionStrategy:      normal                                                   |
    | odps.timemachine.retention.days: 1                                                 |
    | encryption_enable:        false                                                    |
    | ClusterType:              range                                                    |
    | BucketNum:                0                                                        |
    | ClusterColumns:           [c]                                                      |
    +------------------------------------------------------------------------------------+

示例10:查看非分区表是否为Transactional表

说明

推荐使用MaxCompute客户端查看表是否为Transactional表,且客户端需要为0.35.4及以上版本。

其他工具可能会存在版本升级未就绪的问题,导致查询结果不显示Transactional信息。

  • 创建测试表

    CREATE TABLE tran_nonpar (
        id              BIGINT
    )
    TBLPROPERTIES ('transactional'='true');
  • 查看创建的表详细信息

    DESC EXTENDED tran_nonpar;
  • 返回结果

    在Extended Info中显示Transactional属性。

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$***_com                                           |
    | Project:                  testproject                                              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 16:37:27                                      |
    | LastDDLTime:              2025-12-15 16:37:27                                      |
    | LastModifiedTime:         2025-12-15 16:37:27                                      |
    +------------------------------------------------------------------------------------+
    | InternalTable: YES      | Size: 0                                                  |
    +------------------------------------------------------------------------------------+
    | Native Columns:                                                                    |
    +------------------------------------------------------------------------------------+
    | Field    | Type   | Label | ExtendedLabel | Nullable | DefaultValue | Comment      |
    +------------------------------------------------------------------------------------+
    | id       | bigint |       |               | true     | NULL         |              |
    +------------------------------------------------------------------------------------+
    | Extended Info:                                                                     |
    +------------------------------------------------------------------------------------+
    | TableID:                  43e9710c2b4c404780a7be9998afb23e                         |
    | IsArchived:               false                                                    |
    | PhysicalSize:             0                                                        |
    | FileNum:                  0                                                        |
    | StoredAs:                 AliOrc                                                   |
    | CompressionStrategy:      normal                                                   |
    | Transactional:            true                                                     |
    | IsolationMin:             NONSTRICT_SNAPSHOT_ISOLATION                             |
    | odps.timemachine.retention.days: 1                                                 |
    | ColdStorageStatus:        N/A                                                      |
    | encryption_enable:        false                                                    |
    | StorageTier:              Standard                                                 |
    | StorageTierLastModifiedTime:  2025-12-15 16:37:27                                  |
    +------------------------------------------------------------------------------------+

示例11:查看分区表是否为Transactional表

说明

推荐使用MaxCompute客户端查看表是否为Transactional表,且客户端需要为0.35.4及以上版本。

其他工具可能会存在版本升级未就绪的问题,导致查询结果不显示Transactional信息。

  • 创建测试表

    CREATE TABLE tran_par (
        id              BIGINT
    )
    PARTITIONED BY (
        ds              STRING
    )
    TBLPROPERTIES ('transactional'='true');
  • 查看创建的表详细信息

    DESC EXTENDED tran_par;
  • 返回结果

    在Extended Info中显示Transactional属性。

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$***_com                                           |
    | Project:                  testproject                                              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 16:42:26                                      |
    | LastDDLTime:              2025-12-15 16:42:26                                      |
    | LastModifiedTime:         2025-12-15 16:42:26                                      |
    +------------------------------------------------------------------------------------+
    | InternalTable: YES      | Size: 0                                                  |
    +------------------------------------------------------------------------------------+
    | Native Columns:                                                                    |
    +------------------------------------------------------------------------------------+
    | Field    | Type   | Label | ExtendedLabel | Nullable | DefaultValue | Comment      |
    +------------------------------------------------------------------------------------+
    | id       | bigint |       |               | true     | NULL         |              |
    +------------------------------------------------------------------------------------+
    | Partition Columns:                                                                 |
    +------------------------------------------------------------------------------------+
    | ds              | string     |                                                     |
    +------------------------------------------------------------------------------------+
    | Extended Info:                                                                     |
    +------------------------------------------------------------------------------------+
    | TableID:                  d4dd59b15f7940bcad4cb5efdb42f242                         |
    | IsArchived:               false                                                    |
    | PhysicalSize:             0                                                        |
    | FileNum:                  0                                                        |
    | StoredAs:                 AliOrc                                                   |
    | CompressionStrategy:      normal                                                   |
    | Transactional:            true                                                     |
    | IsolationMin:             NONSTRICT_SNAPSHOT_ISOLATION                             |
    | odps.timemachine.retention.days: 1                                                 |
    | encryption_enable:        false                                                    |
    +------------------------------------------------------------------------------------+

示例12:查询物化视图mv的信息

  • 创建测试表

    -- 创建一个测试基础表。
    CREATE TABLE page_view_logs (
        page_id STRING,
        user_id STRING,
        view_timestamp BIGINT
    );
    
    -- 创建一个物化视图,计算每个页面的浏览次数 (PV)。
    CREATE MATERIALIZED VIEW mv AS
    SELECT
        page_id,
        COUNT(1) AS pv_count
    FROM
        page_view_logs
    GROUP BY
        page_id;
  • 查看物化视图详细信息

    DESC EXTENDED mv;
  • 返回结果

    +------------------------------------------------------------------------------------+
    | Owner:                    ALIYUN$***_com                                           |
    | Project:                  testproject                                              |
    | TableComment:                                                                      |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 16:47:51                                      |
    | LastDDLTime:              2025-12-15 16:47:51                                      |
    | LastModifiedTime:         2025-12-15 16:47:51                                      |
    +------------------------------------------------------------------------------------+
    | MaterializedView: YES                                                              |
    | ViewText: SELECT
        page_id,
        COUNT(1) AS pv_count
    FROM
        page_view_logs
    GROUP BY
        page_id |
    | Rewrite Enabled: true                                                              |
    | AutoRefresh Enabled: false                                                         |
    +------------------------------------------------------------------------------------+
    | Native Columns:                                                                    |
    +------------------------------------------------------------------------------------+
    | Field    | Type   | Label | ExtendedLabel | Nullable | DefaultValue | Comment      |
    +------------------------------------------------------------------------------------+
    | page_id  | string |       |               | true     | NULL         |              |
    | pv_count | bigint |       |               | true     | NULL         |              |
    +------------------------------------------------------------------------------------+
    | Extended Info:                                                                     |
    +------------------------------------------------------------------------------------+
    | IsOutdated:               false                                                    |
    | TableID:                  a8742f3751904ec3ade23a7ecc2a2b0b                         |
    | IsArchived:               false                                                    |
    | PhysicalSize:             0                                                        |
    | FileNum:                  0                                                        |
    | StoredAs:                 CFile                                                    |
    | CompressionStrategy:      normal                                                   |
    | odps.timemachine.retention.days: 1                                                        |
    | ColdStorageStatus:        N/A                                                      |
    | encryption_enable:        false                                                    |
    | StorageTier:              Standard                                                 |
    | StorageTierLastModifiedTime:  2025-12-15 16:47:51                                  |
    +------------------------------------------------------------------------------------+
    

示例13:查询分区表的分区信息

  • 创建测试表

    -- 创建一个测试表。
    CREATE TABLE IF NOT EXISTS test_table_partition (
        shop_name       STRING,
        customer_id     STRING,
        total_price     DOUBLE
    )
    PARTITIONED BY (
        sale_date       STRING,
        region          STRING
    );
    
    -- 创建分区。
    ALTER TABLE test_table_partition ADD IF NOT EXISTS 
      PARTITION (sale_date='201310', region='beijing');
      
    -- 使用INSERT INTO向指定分区追加数据。
    INSERT INTO TABLE test_table_partition PARTITION (sale_date='201310', region='beijing')
    VALUES
        ('Apple Store', 'user001', 8888.0),
        ('Nike Store', 'user002', 1200.5),
        ('Starbucks', 'user001', 45.0);
  • 查询分区表的分区信息。

    DESC test_table_partition PARTITION (sale_date='201310', region='beijing');
  • 返回结果

    +------------------------------------------------------------------------------------+
    | PartitionSize: 1163                                                                |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2025-12-15 16:54:16                                      |
    | LastDDLTime:              2025-12-15 16:54:16                                      |
    | LastModifiedTime:         2025-12-15 16:54:23                                      |
    +------------------------------------------------------------------------------------+

查看分区信息

查看某个分区表具体的分区的信息。

  • 命令格式

    desc <table_name> partition (<pt_spec>);
  • 参数说明

    • table_name:必填。待查看分区信息的分区表名称。

    • pt_spec:必填。待查看的分区信息。格式为partition_col1=col1_value1, partition_col2=col2_value1...。对于有多级分区的表,必须指明全部的分区值。

  • 使用示例

    --查询分区表sale_detail的分区信息。
    desc sale_detail partition (sale_date='201310',region='beijing');

    返回结果如下。

    +------------------------------------------------------------------------------------+
    | PartitionSize: 2109112                                                             |
    +------------------------------------------------------------------------------------+
    | CreateTime:               2015-10-10 08:48:48                                      |
    | LastDDLTime:              2015-10-10 08:48:48                                      |
    | LastModifiedTime:         2015-10-11 01:33:35                                      |
    +------------------------------------------------------------------------------------+
    OK

列出项目下的表和视图

列出项目下所有的表和视图,或符合某规则的表和视图。

  • 命令格式

    --列出项目下所有的表和视图。
    show tables;
    --列出项目下表名或视图名与chart匹配的表。
    show tables like '<chart>';
  • 使用示例

    --列出项目下表名与sale*匹配的表。*表示任意字段。
    show tables like 'sale*';              

    返回结果如下。

    ALIYUN$account_name:sale_detail
    ......
    --ALIYUN是系统提示符,表示您是阿里云主账号用户。如果您是阿里云RAM用户,系统提示符为RAM。

列出所有分区

列出一张表中的所有分区。当表不存在或为非分区表时,返回报错。

  • 命令格式

    show partitions <table_name>; 
  • 参数说明

    table_name:必填。待查看分区信息的分区表名称。

  • 使用示例

    --列出sale_detail中的所有分区。
    show partitions sale_detail;

    返回结果如下。

    sale_date=201310/region=beijing
    sale_date=201312/region=shenzhen
    sale_date=201312/region=xian
    sale_date=2014/region=shenzhen
    
    OK

相关文档

上一篇: 授权操作 下一篇: 实例操作
阿里云首页 云原生大数据计算服务 MaxCompute 相关技术圈