全部產品
Search
文件中心

MaxCompute:SQL使用限制項

更新時間:Feb 28, 2024

MaxCompute SQL是專門為大規模資料集設計的SQL語言,在服務大規模資料情境的同時,也需要遵循一定的限制來確保系統的穩定性和運行效率,本文為您介紹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函數不能為ABSTRACTSTATIC

最多查詢分區個數

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小時,超過後會自動停止運行。

set odps.sql.job.max.time.hours=72;
說明

上述MaxCompute SQL限制項均無法修改。