表是MaxCompute的数据存储单元,它在逻辑上也是由行和列组成的二维结构,每行代表一条记录,每列表示相同数据类型的一个字段,一条记录可以包含一个或多个列,各个列的名称和类型构成这张表的Schema。

MaxCompute中不同类型计算任务的操作对象(输入、输出)都是表。您可以创建表、删除表以及向表中导入数据
说明 DataWorks的数据管理模块可以对MaxCompute表进行新建、收藏、修改数据生命周期管理、修改表结构和数据表/资源/函数权限管理审批等操作,详情请参见数据管理概述
MaxCompute的表格有两种类型:内部表和外部表(MaxCompute2.0版本开始支持外部表)。
  • 对于内部表,所有的数据都被存储在MaxCompute中,表中的列可以是MaxCompute支持的任意一种数据类型
  • 对于外部表,MaxCompute并不真正持有数据,表格的数据可以存放在OSSOTS中 。MaxCompute仅会记录表格的Meta信息,您可以通过MaxCompute的外部表机制处理OSS或OTS上的非结构化数据,例如视频、音频、基因、气象、地理信息等。
说明

Dual表使用

  • MaxCompute与Oracle等数据库不同,并不会系统自动创建DUAL表。
  • 如果您习惯使用Dual表作为最原始的测试表,您可以手动使用命令CREATE TABLE IF NOT EXISTS DUAL (DUMMY VARCHAR(1));创建一个名为DUAL且只有一个字段的空表进行测试。
    说明 目前新数据类型默认不能使用,要使用需执行flag开启:
    • session级别:SQL或者新版MR任务涉及使用新数据类型(TinyINT、SmallINT、Int、Float、Varchar、TIMESTAMP BINARY)时,需在语句前加上set语句set odps.SQL.type.system.odps2=true;,并与该语句一起提交执行。通过MaxCompute Studio提交的SQL工具默认自动加上该set语句提交执行。应用示例请参见步骤一:创建和查看表
    • project级别(需特别注意打开后的影响):即支持对project级别进行新类型打开。project的Owner可根据需要对project进行设置,命令为:
      setproject odps.SQL.type.system.odps2=true;
  • DUAL的使用方式等同于Oracle,如select getdate() from dual;