本文为您介绍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。 |
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函数不能为ABSTRACT 或STATIC 。 |
最多查询分区个数 | 10000个 | 数量限制 | 最多查询分区个数不能超过10000个。 |
SQL执行计划长度 | 1 MB | 长度限制 | MaxCompute SQL生成的执行计划不能超过1 MB,否则会触发FAILED: ODPS-0010000:System internal error - The Size of Plan is too large 报错。 |
单作业最大执行时间 | 24小时 | 运行时长限制 | 默认SQL单个作业运行最长时间为24小时,可以通过下面参数设置,让单个作业运行最长时间达到72小时。目前SQL作业不能超过72小时,超过后会自动被停止运行。
|
说明 上述MaxCompute SQL限制项均无法修改。