使用限制
在使用MaxCompute前,建議您先了解產(chǎn)品相關(guān)使用限制,確保業(yè)務(wù)可順利開展。本文為您介紹使用MaxCompute過程中的操作限制。
包年包月計(jì)算資源可購買額度限制說明
MaxCompute包年包月計(jì)算資源(單位:CU)默認(rèn)最多可購買額度上限為2000 CU,若您希望購買超過2000 CU的計(jì)算資源,請(qǐng)您使用阿里云賬號(hào)填寫申請(qǐng)表單提交申請(qǐng),MaxCompute產(chǎn)品工作人員會(huì)在三個(gè)工作日內(nèi)審核您的提額申請(qǐng),審核結(jié)果將以短信形式通知您。
按量付費(fèi)標(biāo)準(zhǔn)版計(jì)算資源限制
為了避免單用戶占用過多集群資源而導(dǎo)致其他用戶無法發(fā)起作業(yè)的情況發(fā)生,MaxCompute限制了單用戶、單地域可使用的按量付費(fèi)標(biāo)準(zhǔn)版計(jì)算資源(單位:CU)上限,具體額度請(qǐng)參見下表。
國家或地區(qū) | 地域(Region) | 按量付費(fèi)標(biāo)準(zhǔn)版計(jì)算資源CU上限 |
中國地區(qū) | 華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華北6(烏蘭察布)、華南1(深圳)、華東2金融云(上海)、華北2政務(wù)云(北京)、華南1金融云(深圳) | 2000 |
西南1(成都)、中國(香港) | 500 | |
其他國家或地區(qū) | 新加坡、馬來西亞(吉隆坡)、印度尼西亞(雅加達(dá))、日本(東京)、德國(法蘭克福)、美國(硅谷)、美國(弗吉尼亞)、英國(倫敦)、阿聯(lián)酋(迪拜) | 500 |
以上CU上限值僅代表可獲取的最大值,并非保障值,MaxCompute也可能會(huì)突破此限制以加快查詢速度。
按量付費(fèi)閑時(shí)版計(jì)算資源限制
為了避免單用戶占用過多集群資源而導(dǎo)致其他用戶無法發(fā)起作業(yè)的情況發(fā)生,MaxCompute限制了單用戶、單地域可使用的按量付費(fèi)閑時(shí)版計(jì)算資源(單位:CU)上限,具體額度為下表所示。
國家或地區(qū) | 地域(Region) | 按量付費(fèi)閑時(shí)版計(jì)算資源CU上限 |
中國地區(qū) | 華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華北6(烏蘭察布)、華南1(深圳)、華東2金融云(上海)、華北2政務(wù)云(北京)、華南1金融云(深圳) | 2000 |
西南1(成都)、中國(香港) | 500 | |
其他國家或地區(qū) | 新加坡、馬來西亞(吉隆坡)、印度尼西亞(雅加達(dá))、日本(東京)、德國(法蘭克福)、美國(硅谷)、美國(弗吉尼亞)、英國(倫敦)、阿聯(lián)酋(迪拜) | 500 |
以上CU上限值僅代表可獲取的最大值,并非保障值。
包年包月數(shù)據(jù)傳輸服務(wù)并發(fā)可購買額度限制說明
MaxCompute包年包月數(shù)據(jù)傳輸服務(wù)并發(fā)(單位:Slot)默認(rèn)最多可購買額度上限為500,若您希望購買超過500并發(fā),請(qǐng)您提交工單申請(qǐng)。
數(shù)據(jù)傳輸服務(wù)(上傳/下載)限制
在MaxCompute中上傳下載數(shù)據(jù)時(shí)的使用限制請(qǐng)參見數(shù)據(jù)傳輸服務(wù)使用限制。
更多數(shù)據(jù)上傳下載信息,請(qǐng)參見數(shù)據(jù)上傳下載。
數(shù)據(jù)傳輸服務(wù)共享資源組說明
下表數(shù)據(jù)為不同區(qū)域下免費(fèi)共享資源(單位:Slot)Project級(jí)最多可用Slot數(shù)說明。
站點(diǎn) | 地域 | Slot(個(gè)數(shù)) |
中國 | 華東1(杭州) | 300 |
中國 | 華東2(上海) | 600 |
中國 | 華東2金融云(上海) | 50 |
中國 | 華北2(北京) | 300 |
中國 | 華北2政務(wù)云(北京) | 100 |
中國 | 華北3(張家口) | 300 |
中國 | 華北6(烏蘭察布) | 300 |
中國 | 華南1(深圳) | 150 |
中國 | 華南1金融云(深圳) | 50 |
中國 | 西南1(成都) | 150 |
中國 | 中國(香港) | 50 |
亞太 | 新加坡(新加坡) | 100 |
亞太 | 馬來西亞(吉隆坡) | 50 |
亞太 | 印度尼西亞(雅加達(dá)) | 50 |
亞太 | 日本(東京) | 50 |
歐洲與美洲 | 德國(法蘭克福) | 50 |
歐洲與美洲 | 美國(硅谷) | 100 |
歐洲與美洲 | 美國(弗吉尼亞) | 50 |
歐洲與美洲 | 英國(倫敦) | 50 |
中東與印度 | 阿聯(lián)酋(迪拜) | 50 |
SQL限制
在MaxCompute中開發(fā)SQL作業(yè)時(shí)的使用限制如下。
限制項(xiàng) | 最大值/限制條件 | 分類 | 說明 |
表名長度 | 128字節(jié) | 長度限制 | 表名、列名中不能有特殊字符,必須以字母開頭,且只能使用英文小寫字母(a-z)、英文大寫字母(A-Z)、數(shù)字和下劃線(_)。 |
注釋長度 | 1024字節(jié) | 長度限制 | 長度不超過1024字節(jié)的有效字符串。 |
表的列定義 | 1200個(gè) | 數(shù)量限制 | 單表的列定義個(gè)數(shù)最多為1200個(gè)。 |
單表分區(qū)數(shù) | 60000個(gè) | 數(shù)量限制 | 單表的分區(qū)個(gè)數(shù)最多為60000個(gè)。 |
表的分區(qū)層級(jí) | 6級(jí) | 數(shù)量限制 | 在表中創(chuàng)建的分區(qū)層次不能超過6級(jí)。 |
屏顯 | 10000行 | 數(shù)量限制 | SELECT語句屏顯最多輸出10000行。 |
| 256個(gè) | 數(shù)量限制 |
|
| 256個(gè) | 數(shù)量限制 |
|
| 128個(gè) | 數(shù)量限制 |
|
| 512 MB | 數(shù)量限制 |
|
| 1000行 | 數(shù)量限制 | 子查詢中存在分區(qū)列時(shí),子查詢的返回結(jié)果不能超過1000行。 |
SQL語句長度 | 2 MB | 長度限制 | SQL語句的最大長度為2 MB。包括您使用SDK調(diào)用SQL的場(chǎng)景。 |
列記錄長度 | 8 MB | 數(shù)量限制 | 表中單個(gè)單元的最大長度為8 MB。 |
IN的參數(shù)個(gè)數(shù) | 1024 | 數(shù)量限制 | IN的最大參數(shù)限制,例如 |
| 1 MB | 長度限制 |
|
視圖 | 不可寫 | 操作限制 | 視圖不支持寫入,不支持 |
列的數(shù)據(jù)類型 | 不可修改 | 操作限制 | 不允許修改列的數(shù)據(jù)類型及列位置。 |
Java UDF函數(shù) | 不允許為 | 操作限制 | Java UDF函數(shù)不能為 |
最多查詢分區(qū)個(gè)數(shù) | 10000個(gè) | 數(shù)量限制 | 最多查詢分區(qū)個(gè)數(shù)不能超過10000個(gè)。 |
SQL執(zhí)行計(jì)劃長度 | 1 MB | 長度限制 | MaxCompute SQL生成的執(zhí)行計(jì)劃不能超過1 MB,否則會(huì)觸發(fā) |
單作業(yè)最大執(zhí)行時(shí)間 | 72小時(shí) | 運(yùn)行時(shí)長限制 | 默認(rèn)情況下,SQL單個(gè)作業(yè)的最長運(yùn)行時(shí)間為24小時(shí),可以通過下面的參數(shù)設(shè)置,將單個(gè)作業(yè)的最長運(yùn)行時(shí)間增加到72小時(shí)。目前SQL作業(yè)不能超過72小時(shí),超過后會(huì)自動(dòng)停止運(yùn)行。
|
更多SQL信息,請(qǐng)參見SQL。
MapReduce限制
在MaxCompute中開發(fā)MapReduce作業(yè)時(shí)的使用限制如下。
邊界名 | 邊界值 | 分類 | 配置項(xiàng)名稱 | 默認(rèn)值 | 是否可配置 | 說明 |
Instance內(nèi)存占用 | [256 MB,12 GB] | 內(nèi)存限制 | odps.stage.mapper(reducer).mem 和odps.stage.mapper(reducer).jvm.mem | 2048 MB+1024 MB | 是 | 單個(gè)Map Instance或Reduce Instance占用Memory,有框架Memory(默認(rèn)2048 MB)和JVM的Heap Memory(默認(rèn)1024 MB)兩部分。 |
Resource數(shù)量 | 256個(gè) | 數(shù)量限制 | - | 無 | 否 | 單個(gè)Job引用的Resource數(shù)量不超過256個(gè),Table、Archive按照一個(gè)單位計(jì)算。 |
輸入路數(shù)和輸出路數(shù) | 1024個(gè)和256個(gè) | 數(shù)量限制 | - | 無 | 否 | 單個(gè)Job的輸入路數(shù)不能超過1024(同一個(gè)表的一個(gè)分區(qū)算一路輸入,總的不同表個(gè)數(shù)不能超過64個(gè)),單個(gè)Job的輸出路數(shù)不能超過256。 |
Counter數(shù)量 | 64個(gè) | 數(shù)量限制 | - | 無 | 否 | 單個(gè)Job中自定義Counter的數(shù)量不能超過64,Counter的Group Name和Counter Name中不能帶有井號(hào)(#),兩者長度和不能超過100。 |
Map Instance | [1,100000] | 數(shù)量限制 | odps.stage.mapper.num | 無 | 是 | 單個(gè)Job的Map Instance個(gè)數(shù)由框架根據(jù)Split Size計(jì)算得出,如果沒有輸入表,可以通過odps.stage.mapper.num直接設(shè)置,最終個(gè)數(shù)范圍[1,100000]。 |
Reduce Instance | [0,2000] | 數(shù)量限制 | odps.stage.reducer.num | 無 | 是 | 單個(gè)Job默認(rèn)Reduce Instance個(gè)數(shù)為Map Instance個(gè)數(shù)的1/4,用戶設(shè)置作為最終的Reduce Instance個(gè)數(shù),范圍[0,2000]。可能出現(xiàn)這樣的情形:Reduce處理的數(shù)據(jù)量會(huì)比Map大很多倍,導(dǎo)致Reduce階段比較慢,而Reduce只能最多2000。 |
重試次數(shù) | 3 | 數(shù)量限制 | - | 無 | 否 | 單個(gè)Map Instance或Reduce Instance失敗重試次數(shù)為3,一些不可重試的異常會(huì)直接導(dǎo)致作業(yè)失敗。 |
Local Debug模式 | Instance個(gè)數(shù)不超100 | 數(shù)量限制 | - | 無 | 否 | Local Debug模式下:
|
重復(fù)讀取Resource次數(shù) | 64次 | 數(shù)量限制 | - | 無 | 否 | 單個(gè)Map Instance或Reduce Instance重復(fù)讀一個(gè)Resource次數(shù)限制<=64次。 |
Resource字節(jié)數(shù) | 2 GB | 長度限制 | - | 無 | 否 | 單個(gè)Job引用的Resource總計(jì)字節(jié)數(shù)大小不超過2 GB。 |
Split Size | 大于等于1 | 長度限制 | odps.stage.mapper.split.size | 256 MB | 是 | 框架會(huì)參考設(shè)置的Split Size值來劃分Map,決定Map的個(gè)數(shù)。 |
STRING列內(nèi)容長度 | 8 MB | 長度限制 | - | 無 | 否 | MaxCompute表STRING列內(nèi)容長度不允許超出限制。 |
Worker運(yùn)行超時(shí)時(shí)間 | [1,3600] | 時(shí)間限制 | odps.function.timeout | 600 | 是 | Map或者Reduce Worker在無數(shù)據(jù)讀寫且沒有通過context.progress() 主動(dòng)發(fā)送心跳的情況下的超時(shí)時(shí)間,默認(rèn)值是600s。 |
MapReduce引用Table資源支持的字段類型 | BIGINT、DOUBLE、STRING、DATETIME、BOOLEAN | 數(shù)據(jù)類型限制 | - | 無 | 否 | MapReduce任務(wù)引用表資源時(shí),若表字段有其他類型字段執(zhí)行報(bào)錯(cuò)。 |
MapReduce是否支持讀取OSS數(shù)據(jù) | - | 功能限制 | - | 無 | 否 | MapReduce不支持讀取OSS數(shù)據(jù)。 |
MapReduce是否支持MaxCompute 2.0新類型 | - | 功能限制 | - | 無 | 否 | MapReduce不支持MaxCompute 2.0新類型。 |
更多MapReduce信息,請(qǐng)參見MapReduce。
PyODPS限制
在MaxCompute中基于DataWorks開發(fā)PyODPS作業(yè)時(shí)的使用限制如下:
PyODPS節(jié)點(diǎn)獲取本地處理的數(shù)據(jù)不能超過50 MB,節(jié)點(diǎn)運(yùn)行時(shí)占用內(nèi)存不能超過1 GB,否則節(jié)點(diǎn)任務(wù)會(huì)被系統(tǒng)中止。請(qǐng)避免在PyODPS任務(wù)中添加額外的Python數(shù)據(jù)處理代碼。
在DataWorks上編寫代碼并進(jìn)行調(diào)試效率較低,為提升運(yùn)行效率,建議本地安裝IDE進(jìn)行代碼開發(fā)。
在DataWorks上使用PyODPS時(shí),為了防止對(duì)DataWorks的Gate Way造成壓力,對(duì)內(nèi)存和CPU都有限制,該限制由DataWorks統(tǒng)一管理。如果您發(fā)現(xiàn)有Got killed報(bào)錯(cuò),即表明內(nèi)存使用超限,進(jìn)程被中止。因此,請(qǐng)盡量避免本地的數(shù)據(jù)操作。通過PyODPS發(fā)起的SQL和DataFrame任務(wù)(除to_pandas外)不受此限制。
由于缺少matplotlib等包,如下功能可能受限:
DataFrame的plot函數(shù)。
DataFrame自定義函數(shù)需要提交到MaxCompute執(zhí)行。由于Python沙箱限制,第三方庫只支持所有的純粹Python庫以及Numpy,因此不能直接使用Pandas。
DataWorks中執(zhí)行的非自定義函數(shù)代碼可以使用平臺(tái)預(yù)裝的Numpy和Pandas。不支持其他帶有二進(jìn)制代碼的第三方包。
由于兼容性原因,在DataWorks中,options.tunnel.use_instance_tunnel默認(rèn)設(shè)置為False。如果需要全局開啟instance tunnel,需要手動(dòng)將該值設(shè)置為True。
由于實(shí)現(xiàn)的原因,Python的atexit包不被支持,請(qǐng)使用try-finally結(jié)構(gòu)實(shí)現(xiàn)相關(guān)功能。
更多PyODPS信息,請(qǐng)參見PyODPS。
Graph限制
在MaxCompute中開發(fā)Graph作業(yè)時(shí)的使用限制如下:
單個(gè)Job引用的Resource數(shù)量不超過256個(gè),Table、Archive按照一個(gè)單位計(jì)算。
單個(gè)Job引用的Resource總計(jì)字節(jié)數(shù)大小不超過512 MB。
單個(gè)Job的輸入路數(shù)不能超過1024(輸入表的個(gè)數(shù)不能超過64)。單個(gè)Job的輸出路數(shù)不能超過256。
多路輸出中指定的Label不能為NULL或者空字符串,長度不能超過256個(gè)字符串,只能包括A-Z、a-z、0-9、下劃線(_)、井號(hào)(#)、英文句點(diǎn)(.)和短劃線(-)。
單個(gè)Job中自定義Counter的數(shù)量不能超過64個(gè)。Counter的
group name
和counter name
中不能帶有井號(hào)(#),兩者長度和不能超過100。單個(gè)Job的Worker數(shù)由框架計(jì)算得出,最大為1000個(gè),超過拋異常。
單個(gè)Worker占用CPU默認(rèn)為200個(gè),范圍為[50,800]。
單個(gè)Worker占用Memory默認(rèn)為4096 MB,范圍為[256 MB,12 GB]。
單個(gè)Worker重復(fù)讀一個(gè)Resource次數(shù)限制不大于64次。
split_size
默認(rèn)為64 MB,您可自行設(shè)置,范圍為0<split_size
≤(9223372036854775807>>20)。MaxCompute Graph程序中的GraphLoader、Vertex、Aggregator等在集群運(yùn)行時(shí),受到Java沙箱的限制(Graph作業(yè)的主程序則不受此限制),具體限制請(qǐng)參見Java沙箱。
更多Graph信息,請(qǐng)參見Graph。
其他限制
各地域下的單個(gè)MaxCompute項(xiàng)目支持同時(shí)提交的作業(yè)數(shù)量限制如下。
地域 | 單個(gè)MaxCompute項(xiàng)目作業(yè)并發(fā)上限 |
華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華北6(烏蘭察布)、華南1(深圳)、西南1(成都) | 2500 |
華東2金融云(上海)、華南1金融云(深圳) | 200 |
華北2政務(wù)云(北京)、中國香港、新加坡、馬來西亞(吉隆坡)、印度尼西亞(雅加達(dá))、日本(東京)、德國(法蘭克福)、美國(硅谷)、美國(弗吉尼亞)、英國(倫敦)、阿聯(lián)酋(迪拜) | 300 |
如果MaxCompute項(xiàng)目提交的作業(yè)已經(jīng)達(dá)到上限,繼續(xù)提交作業(yè)會(huì)返回報(bào)錯(cuò)。錯(cuò)誤信息示例:com.aliyun.odps.OdpsException: Request rejected by flow control. You have exceeded the limit for the number of tasks you can run concurrently in this project. Please try later
。