概述
关键字
MaxCompute将SQL语句的关键字作为保留字。在对表、列或是分区命名时如若使用关键字,需给关键字加 ``
符号进行转义,否则会报错。保留字不区分大小写。下面只给出常用的保留字列表
% & && ( ) * +
- . / ; < <= <>
= > >= ? ADD ALL ALTER
AND AS ASC BETWEEN BIGINT BOOLEAN BY
CASE CAST COLUMN COMMENT CREATE DESC DISTINCT
DISTRIBUTE DOUBLE DROP ELSE FALSE FROM FULL
GROUP IF IN INSERT INTO IS JOIN
LEFT LIFECYCLE LIKE LIMIT MAPJOIN NOT NULL
ON OR ORDER OUTER OVERWRITE PARTITION RENAME
REPLACE RIGHT RLIKE SELECT SORT STRING TABLE
THEN TOUCH TRUE UNION VIEW WHEN WHERE
类型转换说明
MaxCompute SQL允许数据类型之间的转换,类型转换方式包括显式类型转换和隐式类型转换。
- 显式类型转换:是指用cast函数将一种数据类型的值转换为另一种类型的值的行为。
- 隐式类型转换:是指在运行时,由MaxCompute依据上下文使用环境及类型转换规则自动进行的类型转换。隐式转换作用域包括各种运算符、内建函数等。
分区表
- 支持分区
MaxComputeDDL语法差异对比
语法 | MaxCompute | Hive | MySQL | Oracle | SQL Server |
---|---|---|---|---|---|
CREATE TABLE—PRIMARY KEY | N | N | Y | Y | Y |
CREATE TABLE—NOT NULL | Y | N | Y | Y | Y |
CREATE TABLE—CLUSTER BY | Y | Y | N | Y | Y |
CREATE TABLE—EXTERNAL TABLE | Y (OSS, OTS, TDDL) | Y | N | Y | N |
CREATE TABLE—TEMPORARY TABLE | N | Y | Y | Y | Y (with #prefix) |
INDEX—CREATE INDEX | N | Y | Y | Y | Y |
VIRTUAL COLUMN | N | N | N | Y | Y |
MaxComputeDML语法差异对比
语法 | MaxCompute | Hive | MySQL | Oracle | SQL Server |
---|---|---|---|---|---|
CTE | Y | Y | Y | Y | Y |
SELECT—recursive CTE | N | N | N | Y | Y |
SELECT—GROUP BY ROLL UP | Y | Y | Y | Y | Y |
SELECT—GROUP BY CUBE | Y | Y | N | Y | Y |
SELECT—GROUPING SET | Y | Y | N | Y | Y |
SELECT—IMPLICT JOIN | Y | Y | N | Y | Y |
SELECT—PIVOT | N | N | N | Y | Y |
SEMI JOIN | Y | Y | Y | N | N |
SELEC TRANSFROM | Y | Y | N | N | N |
SELECT—corelated subquery | Y | Y | Y | Y | Y |
ORDER BY NULLS FIRST/LAST | N | Y | Y | Y | Y |
LATERAL VIEW | Y | Y | N | Y | Y (CROSS APPLY keyword) |
SET OPERATOR—UNION (disintct) | Y | Y | Y | Y | Y |
SET OPERATOR—INTERSECT | Y | N | N | Y | Y |
SET OPERATOR—MINUS/EXCEPT | Y | N | N | Y | Y(keyword EXCEPT) |
INSERT INTO ... VALUES | Y | Y | Y | Y | Y |
INSERT INTO (ColumnList) | Y | Y | Y | Y | Y |
UPDATE … WHERE | N | Y | Y | Y | Y |
UPDATE … ORDER BY LIMIT | N | N | Y | N | Y |
DELETE … WHERE | N | Y | Y | Y | Y |
DELETE … ORDER BY LIMIT | N | N | Y | N | N |
ANALYTIC—reusable WINDOWING CLUSUE | Y | Y | N | N | N |
ANALYTIC—CURRENT ROW | Y | Y | N | Y | Y |
ANALYTIC—UNBOUNDED | Y | N | Y | Y | Y |
ANALYTIC—RANGE … | N | Y | N | Y | Y |
WHILE DO | N | N | Y | Y | Y |
VIEW WITH PARAMETERS | Y | N | N | N 说明 SQL Function/Storage Procedure一定程度上能满足MaxCompute参数化VIEW的功能。 | N |
MaxCompute SCRIPTING语法差异对比
语法 | MaxCompute | Hive | MySQL | Oracle | SQL Server |
---|---|---|---|---|---|
TABLE VARIABLE | Y | Y | Y | Y | Y |
SCALER VARIABLE | Y | Y | Y | Y | Y |
ERROR HANDLING—RAISE ERROR | N | N | Y | Y | Y |
ERROR HANDLING—TRY CATCH | N | N | N | Y | Y |
FLOW CONTROL—LOOP | N | N | Y | Y | Y |
CURSOR | N | N | Y | Y | Y |
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函数不能为ABSTRACT 或STATIC 。 |
最多查询分区个数 | 10000个 | 数量限制 | 最多查询分区个数不能超过10000个。 |
SQL执行计划长度 | 1 MB | 长度限制 | MaxCompute SQL生成的执行计划不能超过1 MB,否则会触发FAILED: ODPS-0010000:System internal error - The Size of Plan is too large 报错。 |
上述MaxCompute SQL限制项均无法修改。
最后
以上就是矮小黄蜂为你收集整理的Maxcompute SQL关键字分区表MaxCompute SQL的限制项的全部内容,希望文章能够帮你解决Maxcompute SQL关键字分区表MaxCompute SQL的限制项所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复