若您没有注意SQL限制条件,可能会发生业务启动后停止的现象。为避免此类现象的发生,本文对MaxCompute SQL限制项做了以下汇总。

边界名 最大值/限制条件 分类 说明
表名长度 128字节 长度限制 表名、列名中不能有特殊字符,只能用英文的a-z、A-Z、数字和下划线_,且以字母开头。
注释长度 1024字节 长度限制 注释内容是长度不超过1024字节的有效字符串。
表的列定义 1200个 数量限制 单表的列定义个数最多1200个。
单表分区数 60000 数量限制 一张表最多允许60000个分区。
表的分区层级 6级 数量限制 在表中建的分区层次不能超过6级。
表统计定义个数 100个 数量限制 表统计定义个数。
表统计定义长度 64000 长度限制 表统计项定义长度。
屏显 10000行 数量限制 SELECT语句屏显默认最多输出10000行。
INSERT目标个数 256个 数量限制 multiins同时INSERT的数据表数量。
UNION ALL 256个表 数量限制 最多允许256个表的UNION ALL。
MAPJOIN 256个小表 数量限制 MAPJOIN最多允许256张小表。
MAPJOIN内存限制 640M 数量限制 MAPJOIN所有小表的内存限制不能超过640M。
窗口函数 5个 数量限制 一个SELECT中最多允许5个窗口函数。
ptinsubq 1000行 数量限制 一个partition列in subquery时,subquery的返回结果不可超过1000行。
SQL语句长度 2M 长度限制 允许的SQL语句的最大长度。
WHERE子句条件个数 256个 数量限制 WHERE子句中可使用条件个数。
列记录长度 8M 数量限制 表中单个单元的最大长度。
IN的参数个数 1024 数量限制 IN的最大参数限制,例如in (1,2,3….,1024)in(…)如果参数过多,会造成编译时的压力;1024是建议值、不是限制值。
jobconf.json 1M 长度限制 jobconf.json的大小为1M。当表包含的Partition数量太多时,可能超过jobconf.json,超过1M。
视图 不可写 操作限制 视图不支持写入,不支持INSERT操作。
列的数据类 不允许 操作限制 不允许修改列的数据类型、列位置。
Java UDF函数 不能是abstract或者static 操作限制 Java UDF函数不能是abstract或static。
最多查询分区个数 10000 数量限制 最多查询分区个数不能超过10000。
说明 以上MaxCompute SQL限制项均无法修改。