MaxCompute表操作

本文详细介绍了MaxCompute中关于表的各种操作,包括创建表(非分区表、分区表、外部表、聚簇表)、修改表的所有人、修改表的注释、修改表的修改时间、重命名表、清空非分区表数据、删除表、查看表信息以及查看分区信息等。此外,还阐述了创建和修改表的聚簇属性,以及如何处理Transactional表。这些操作对于数据仓库的管理和开发至关重要。
摘要由CSDN通过智能技术生成

MaxComputeSQL DDL语句-表操作

表是MaxCompute的数据存储单元。数据仓库的开发、分析及运维都需要对表数据进行处理。

创建表

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

  • 命令格式

    --创建新表。
     create [external] table [if not exists] <table_name>
     [(<col_name> <data_type> [not null] [default <default_value>] [comment <col_comment>], ...)]
     [comment <table_comment>]
     [partitioned by (<col_name> <data_type> [comment <col_comment>], ...)]
     --用于创建聚簇表时设置表的Shuffle和Sort属性。
     [clustered by | range clustered by (<col_name> [, <col_name>, ...]) [sorted by (<col_name> [asc | desc] [, <col_name> [asc | desc] ...])] into <number_of_buckets> buckets] 
     --仅限外部表。
     [stored by StorageHandler] 
     --仅限外部表。
     [with serdeproperties (options)] 
     --仅限外部表。
     [location <osslocation>] 
     --指定表为Transactional表,后续可以对该表执行更新或删除表数据操作,但是Transactional表有部分使用限制,请根据需求创建。
     [tblproperties("transactional"="true")]   
     [lifecycle <days>];
    
    --基于已存在的表创建新表并复制数据,但不复制分区属性。
    create table [if not exists] <table_name> [lifecycle <days>] as <select_statement>;
    
    --基于已存在的表创建具备相同结构的新表但不复制数据。
    create table [if not exists] <table_name> like <existing_table_name> [lifecycle <days>];
    
  • 参数说明

    • external:可选。表示创建的表为外部表。

    • if not exists:可选。如果不指定if not exists选项而存在同名表,会报错。如果指定if not exists,无论是否存在同名表,即使原表结构与要创建的目标表结构不一致,均返回成功。已存在的同名表的元数据信息不会被改动。

    • table_name:必填。表名。表名大小写不敏感,不能有特殊字符,只能包含az、AZ、数字和下划线(_)。建议以字母开头,名称的长度不超过128字节,否则报错。

    • col_name:可选。表的列名。列名大小写不敏感,不能有特殊字符,只能包含az、AZ、数字和下划线(_)。建议以字母开头,名称的长度不超过128字节,否则报错。

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

    • data_type:可选。列的数据类型,包含BIGINT、DOUBLE、BOOLEAN、DATETIME、DECIMAL和STRING等多种数据类型。

    • not null:可选。禁止该列的值为NULL。

    • default_value:可选。指定列的默认值,当insert操作不指定该列时,该列写入默认值。

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

    • partitioned by (<col_name> <data_type> [comment <col_comment>], …:可选。指定分区表的分区字段。

      • col_name:表的分区列名。列名大小写不敏感,不能有特殊字符,只能包含az、AZ、数字和下划线(_)。建议以字母开头,名称的长度不超过128字节,否则报错。
      • data_type:分区列的数据类型,包含BIGINT、DOUBLE、BOOLEAN、DATETIME、DECIMAL和STRING等多种数据类型。MaxCompute 1.0版本仅支持STRING类型。MaxCompute 2.0版本扩充了分区类型,包含TINYINT、SMALLINT、INT、BIGINT、VARCHAR和STRING类型。当使用分区字段对表进行分区时,新增分区、更新分区内数据和读取分区数据均不需要做全表扫描,提高处理效率。
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值