有知道的老哥方便回答一下嗎?
在MaxCompute中上傳下載數(shù)據(jù)時的使用限制如下:
Tunnel Upload命令上傳限制
Tunnel命令不支持上傳下載ARRAY、MAP和STRUCT類型的數(shù)據(jù)。
上傳沒有速度限制,上傳速度的瓶頸為網(wǎng)絡(luò)帶寬以及服務(wù)器性能。
重傳有次數(shù)的限制,當(dāng)重傳次數(shù)超過限制,就會繼續(xù)上傳下一個Block。上傳完成后,可以通過select count(*) from table_name語句,檢查數(shù)據(jù)是否有丟失。
一個項目下Tunnel支持并發(fā)的連接數(shù)默認(rèn)上限為2000個。
每個Tunnel的Session在服務(wù)端的生命周期為24小時,創(chuàng)建后24小時內(nèi)均可使用,也可以跨進(jìn)程/線程共享使用,但是必須保證同一個BlockId沒有重復(fù)使用。
當(dāng)遇到并發(fā)寫入時,MaxCompute會根據(jù)ACID進(jìn)行并發(fā)寫的保障。關(guān)于ACID的具體語義,請參見ACID語義。
DataHub上傳數(shù)據(jù)限制
每個字段的大小不能超過這個字段本身的限制,詳情請參見數(shù)據(jù)類型版本說明。
說明 STRING的長度不能超過8 MB。
上傳的過程中,會將多條數(shù)據(jù)打包成一個Package來進(jìn)行上傳。
TableTunnel SDK接口限制
BlockId的取值范圍是[0, 20000),單個Block上傳的數(shù)據(jù)限制為100 GB。
Session的超時時間為24小時。大批量數(shù)據(jù)傳送導(dǎo)致超過24小時,需要自行拆分成多個Session。
RecordWriter對應(yīng)的HTTP Request超時時間為120s。如果120s內(nèi)HTTP連接上沒有數(shù)據(jù)流過,服務(wù)端會主動關(guān)閉連接。
在MaxCompute中開發(fā)SQL作業(yè)時的使用限制如下。 在MaxCompute中開發(fā)MapReduce作業(yè)時的使用限制如下。 Local Debug模式下: 默認(rèn)Map Instance個數(shù)為2,不能超過100。 默認(rèn)Reduce Instance個數(shù)為1,不能超過100。 默認(rèn)一路輸入下載記錄數(shù)100,不能超過10000。 在MaxCompute中基于DataWorks開發(fā)PyODPS作業(yè)時的使用限制如下: PyODPS節(jié)點獲取本地處理的數(shù)據(jù)不能超過50 MB,節(jié)點運(yùn)行時占用內(nèi)存不能超過1 GB,否則節(jié)點任務(wù)會被系統(tǒng)中止。請避免在PyODPS任務(wù)中寫額外的Python數(shù)據(jù)處理代碼。 在DataWorks上編寫代碼并進(jìn)行調(diào)試效率較低,為提升運(yùn)行效率,建議本地安裝IDE進(jìn)行代碼開發(fā)。 在DataWorks上使用PyODPS時,為了防止對DataWorks的Gate Way造成壓力,對內(nèi)存和CPU都有限制,該限制由DataWorks統(tǒng)一管理。如果您發(fā)現(xiàn)有Got killed報錯,即表明內(nèi)存使用超限,進(jìn)程被中止。因此,請盡量避免本地的數(shù)據(jù)操作。通過PyODPS發(fā)起的SQL和DataFrame任務(wù)(除to_pandas外)不受此限制。 由于缺少matplotlib等包,如下功能可能受限: DataFrame的plot函數(shù)。 DataFrame自定義函數(shù)需要提交到MaxCompute執(zhí)行。由于Python沙箱限制,第三方庫只支持所有的純粹Python庫以及Numpy,因此不能直接使用Pandas。 DataWorks中執(zhí)行的非自定義函數(shù)代碼可以使用平臺預(yù)裝的Numpy和Pandas。不支持其他帶有二進(jìn)制代碼的三方包。 由于兼容性原因,在DataWorks中,options.tunnel.use_instance_tunnel默認(rèn)設(shè)置為False。如果需要全局開啟instance tunnel,需要手動將該值設(shè)置為True。 由于實現(xiàn)的原因,Python的atexit包不被支持,請使用try-finally結(jié)構(gòu)實現(xiàn)相關(guān)功能。 Graph限制 在MaxCompute中開發(fā)Graph作業(yè)時的使用限制如下: 單個Job引用的Resource數(shù)量不超過256個,Table、Archive按照一個單位計算。 單個Job引用的Resource總計字節(jié)數(shù)大小不超過512 MB。 單個Job的輸入路數(shù)不能超過1024(輸入表的個數(shù)不能超過64)。單個Job的輸出路數(shù)不能超過256。 多路輸出中指定的Label不能為NULL或者空字符串,長度不能超過256個字符串,只能包括A-Z、a-z、0-9、下劃線(_)、井號(#)、英文句點(.)和短劃線(-)。 單個Job中自定義Counter的數(shù)量不能超過64個。Counter的group name和counter name中不能帶有井號(#),兩者長度和不能超過100。 單個Job的Worker數(shù)由框架計算得出,最大為1000個,超過拋異常。 單個Worker占用CPU默認(rèn)為200個,范圍為[50,800]。 單個Worker占用Memory默認(rèn)為4096 MB,范圍為[256 MB,12 GB]。 單個Worker重復(fù)讀一個Resource次數(shù)限制不大于64次。 split_size默認(rèn)為64 MB,您可自行設(shè)置,范圍為0<split_size≤(9223372036854775807>>20)。 MaxCompute Graph程序中的GraphLoader、Vertex、Aggregator等在集群運(yùn)行時,受到Java沙箱的限制(Graph作業(yè)的主程序則不受此限制),具體限制請參見Java沙箱。SQL限制
MapReduce限制限制項 最大值/限制條件 分類 說明 表名長度 128字節(jié) 長度限制 表名、列名中不能有特殊字符,以字母開頭,且只能用英文小寫字母(a-z)、英文大寫字母(A-Z)、數(shù)字和下劃線(_)。 注釋長度 1024字節(jié) 長度限制 長度不超過1024字節(jié)的有效字符串。 表的列定義 1200個 數(shù)量限制 單表的列定義個數(shù)最多為1200個。 單表分區(qū)數(shù) 60000個 數(shù)量限制 單表的分區(qū)個數(shù)最多為60000個。 表的分區(qū)層級 6級 數(shù)量限制 在表中創(chuàng)建的分區(qū)層次不能超過6級。 屏顯 10000行 數(shù)量限制 SELECT語句屏顯最多輸出10000行。 INSERT目標(biāo)個數(shù) 256個 數(shù)量限制 MULTI-INSERT場景,目標(biāo)表的數(shù)量限制為256個。 UNION ALL 256個 數(shù)量限制 UNION ALL場景,最多允許合并256個表。 MAPJOIN 128個 數(shù)量限制 MAPJOIN場景,最多允許連接128個小表。 MAPJOIN內(nèi)存限制 512 MB 數(shù)量限制 MAPJOIN場景,所有小表的內(nèi)存不能超過512 MB。 ptinsubq 1000行 數(shù)量限制 子查詢中存在分區(qū)列時,子查詢的返回結(jié)果不能超過1000行。 SQL語句長度 2 MB 長度限制 SQL語句的最大長度為2 MB。包括您使用SDK調(diào)用SQL的場景。 WHERE子句條件個數(shù) 256個 數(shù)量限制 WHERE子句中的條件個數(shù)最大為256個。 列記錄長度 8 MB 數(shù)量限制 表中單個單元的最大長度為8 MB。 IN的參數(shù)個數(shù) 1024 數(shù)量限制 IN的最大參數(shù)限制,例如in (1,2,3….,1024)。如果in(…)的參數(shù)過多,會影響編譯性能。1024為建議值,不是限制值。 jobconf.json 1 MB 長度限制 jobconf.json的大小為1 MB。當(dāng)表包含的分區(qū)數(shù)量較多時,大小可能超過jobconf.json,超過1 MB。 視圖 不可寫 操作限制 視圖不支持寫入,不支持INSERT操作。 列的數(shù)據(jù)類型 不可修改 操作限制 不允許修改列的數(shù)據(jù)類型及列位置。 Java UDF函數(shù) 不允許為ABSTRACT或者STATIC。 操作限制 Java UDF函數(shù)不能為ABSTRACT或STATIC。 最多查詢分區(qū)個數(shù) 10000個 數(shù)量限制 最多查詢分區(qū)個數(shù)不能超過10000個。 SQL執(zhí)行計劃長度 1 MB 長度限制 MaxCompute SQL生成的執(zhí)行計劃不能超過1 MB,否則會觸發(fā)FAILED: ODPS-0010000:System internal error - The Size of Plan is too large報錯。 邊界名 邊界值 分類 配置項名稱 默認(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 是 單個Map Instance或Reduce Instance占用Memory,有框架Memory(默認(rèn)2048 MB)和JVM的Heap Memory(默認(rèn)1024 MB)兩部分。 Resource數(shù)量 256個 數(shù)量限制 - 無 否 單個Job引用的Resource數(shù)量不超過256個,Table、Archive按照一個單位計算。 輸入路數(shù)和輸出路數(shù) 1024個和256個 數(shù)量限制 - 無 否 單個Job的輸入路數(shù)不能超過1024(同一個表的一個分區(qū)算一路輸入,總的不同表個數(shù)不能超過64個),單個Job的輸出路數(shù)不能超過256。 Counter數(shù)量 64個 數(shù)量限制 - 無 否 單個Job中自定義Counter的數(shù)量不能超過64,Counter的Group Name和Counter Name中不能帶有井號(#),兩者長度和不能超過100。 Map Instance [1,100000] 數(shù)量限制 odps.stage.mapper.num 無 是 單個Job的Map Instance個數(shù)由框架根據(jù)Split Size計算得出,如果沒有輸入表,可以通過odps.stage.mapper.num直接設(shè)置,最終個數(shù)范圍[1,100000]。 Reduce Instance [0,2000] 數(shù)量限制 odps.stage.reducer.num 無 是 單個Job默認(rèn)Reduce Instance個數(shù)為Map Instance個數(shù)的1/4,用戶設(shè)置作為最終的Reduce Instance個數(shù),范圍[0,2000]??赡艹霈F(xiàn)這樣的情形:Reduce處理的數(shù)據(jù)量會比Map大很多倍,導(dǎo)致Reduce階段比較慢,而Reduce只能最多2000。 重試次數(shù) 3 數(shù)量限制 - 無 否 單個Map Instance或Reduce Instance失敗重試次數(shù)為3,一些不可重試的異常會直接導(dǎo)致作業(yè)失敗。 Local Debug模式 Instance個數(shù)不超100 數(shù)量限制 - 無 否 重復(fù)讀取Resource次數(shù) 64次 數(shù)量限制 - 無 否 單個Map Instance或Reduce Instance重復(fù)讀一個Resource次數(shù)限制<=64次。 Resource字節(jié)數(shù) 2 GB 長度限制 - 無 否 單個Job引用的Resource總計字節(jié)數(shù)大小不超過2 GB。 Split Size 大于等于1 長度限制 odps.stage.mapper.split.size 256 MB 是 框架會參考設(shè)置的Split Size值來劃分Map,決定Map的個數(shù)。 STRING列內(nèi)容長度 8 MB 長度限制 - 無 否 MaxCompute表STRING列內(nèi)容長度不允許超出限制。 Worker運(yùn)行超時時間 [1,3600] 時間限制 odps.function.timeout 600 是 Map或者Reduce Worker在無數(shù)據(jù)讀寫且沒有通過context.progress()主動發(fā)送心態(tài)的情況下的超時時間,默認(rèn)值是600s。 MapReduce引用Table資源支持的字段類型 BIGINT、DOUBLE、STRING、DATETIME、BOOLEAN 數(shù)據(jù)類型限制 - 無 否 MapReduce任務(wù)引用表資源時,若表字段有其他類型字段執(zhí)行報錯。 MapReduce是否支持讀取OSS數(shù)據(jù) - 功能限制 - 無 否 MapReduce不支持讀取OSS數(shù)據(jù)。 MapReduce是否支持MaxCompute 2.0新類型 - 功能限制 - 無 否 MapReduce不支持MaxCompute 2.0新類型。 PyODPS限制