本文为您介绍MaxCompute SQL的限制项。

限制项 最大值/限制条件 分类 说明
表名长度 128字节 长度限制 表名、列名中不能有特殊字符,以字母开头,且只能用英文小写字母(a-z)、英文大写字母(A-Z)、数字和下划线(_)。
注释长度 1024字节 长度限制 长度不超过1024字节的有效字符串。
表的列定义 1200个 数量限制 单表的列定义个数最多为1200个。
单表分区数 60000个 数量限制 单表的分区个数最多为60000个。
表的分区层级 6级 数量限制 在表中创建的分区层次不能超过6级。
屏显 10000行 数量限制 SELECT语句屏显最多输出10000行。
INSERT目标个数 256个 数量限制 MULTI-INSERT场景,目标表的数量限制为256个。
UNION ALL 256个 数量限制 UNION ALL场景,最多允许合并256个表。
MAPJOIN 128个 数量限制 MAPJOIN场景,最多允许连接128个小表。
MAPJOIN内存限制 512 MB 数量限制 MAPJOIN场景,所有小表的内存不能超过512 MB。
窗口函数 5个 数量限制 单个SELECT语句中最多允许存在5个窗口函数。
ptinsubq 1000行 数量限制 子查询中存在分区列时,子查询的返回结果不能超过1000行。
SQL语句长度 2 MB 长度限制 SQL语句的最大长度为2 MB。包括您使用SDK调用SQL的场景。
WHERE子句条件个数 256个 数量限制 WHERE子句中的条件个数最大为256个。
列记录长度 8 MB 数量限制 表中单个单元的最大长度为8 MB。
IN的参数个数 1024 数量限制 IN的最大参数限制,例如in (1,2,3….,1024)。如果in(…)的参数过多,会影响编译性能。1024为建议值,不是限制值。
jobconf.json 1 MB 长度限制 jobconf.json的大小为1 MB。当表包含的分区数量较多时,大小可能超过jobconf.json,超过1 MB。
视图 不可写 操作限制 视图不支持写入,不支持INSERT操作。
列的数据类型 不可修改 操作限制 不允许修改列的数据类型及列位置。
Java UDF函数 不允许为ABSTRACT或者STATIC 操作限制 Java UDF函数不能为ABSTRACTSTATIC
最多查询分区个数 10000个 数量限制 最多查询分区个数不能超过10000个。
SQL执行计划长度 1 MB 长度限制 MaxCompute SQL生成的执行计划不能超过1 MB,否则会触发FAILED: ODPS-0010000:System internal error - The Size of Plan is too large报错。
说明 上述MaxCompute SQL限制项均无法修改。