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