本文介紹MaxCompute投遞(新版)的穩定性與使用限制。
穩定性說明
讀Simple Log Service
穩定項 | 說明 |
可用性 | 可用性較高。 如果Simple Log Service出錯,無法讀取資料,MaxCompute投遞任務會在內部至少重試10次。如果仍然失敗,任務執行會報錯,然後任務重啟。 |
寫MaxCompute
穩定項 | 說明 |
並發度 | 按照Simple Log ServiceShard進行分區並建立投遞執行個體,支援快速擴容。 如果Simple Log Service源Logstore進行Shard分裂,可以在數秒以內完成投遞執行個體的擴容,加快資料匯出速度。 |
資料不丟失 | MaxCompute投遞任務基於消費組進行擴充,提供一致性保證。投遞完成後,才會提交offset,因此可以保證資料寫入MaxCompute之前,offset不被提交,即保證投遞資料不丟失。 |
Schema變更 | 如果投遞過程中在MaxCompute表中添加了新列,則新列只會被寫入新分區,不會被寫入舊分區以及當前分區。 |
處理髒資料
錯誤項 | 是否計入失敗條數 | 說明 |
分區錯誤 | 是 | 常見情境為分區不合法或分區列不存在。該條資料不會寫入MaxCompute。 |
資料列不合法 | 否 | 常見情境類型為不匹配或者類型轉換失敗。該列資料不會寫入MaxCompute,其餘列正常寫入MaxCompute。 |
資料列過長 | 否 | 常見情境為資料超出string類型或者varchar長度限制。該列資料經過截斷後寫入MaxCompute,其餘列正常寫入MaxCompute。 |
監控警示
穩定項 | 說明 |
監控警示 | 資料投遞有完善的監控,可即時追蹤投遞任務的延遲、流量等指標。您可以根據業務需求,配置自訂警示,及時發現投遞問題(例如匯出執行個體不足、網路Quota限制等)。具體操作,請參見為MaxCompute投遞任務(新版)設定警示。 |
重啟任務
穩定項 | 說明 |
分區數過多 | 任務重啟時,因為分區數過多(5分鐘仍未完成寫入),可能導致資料重複。 |
資料寫入失敗 | 任務重啟且資料寫入MaxCompute失敗(授權錯誤、網路錯誤)時,可能導致資料部分重複。 |
使用限制
網路
限制項 | 說明 |
同地區投遞的網路 | 同地區投遞時,資料通過阿里雲內網傳輸,因此網路穩定性和速度更有保障。 |
讀流量
限制項 | 說明 |
讀流量 | 單個Project以及單個Shard存在最高流量限制。更多資訊,請參見資料讀寫。 如果超過最高流量限制,請分裂Shard或者申請擴容Project讀流量限制。超過限制,會導致MaxCompute投遞任務讀取資料失敗,並在內部至少重試10次,如果仍然失敗,任務執行會報錯,然後任務重啟。 |
寫MaxCompute
限制項 | 說明 |
並發執行個體 | 支援最大的匯出並發執行個體為64。 如果Simple Log ServiceShard數量超過64,則會合并多個Shard到一個執行個體中進行匯出處理,並且盡量保證每個執行個體中的Shard數相同。 |
寫入閾值 |
重要 超過MaxCompute寫入限制,寫資料到MaxCompute會不穩定,且會觸發MaxCompute側的流控,導致FlowExceeded或者SlotExceed錯誤,請聯絡MaxCompute值班人員解決。 |
禁止修改資料 | MaxCompute投遞(新版)使用了MaxCompute流式寫入。在流式寫入資料到MaxCompute期間,MaxCompute流式資料通道服務會禁止寫入的表有更新、刪除、插入等資料修改操作。 由于禁止修改資料的限制,MaxCompute投遞(新版)和MaxCompute投遞(舊版)不能同時向同一張MaxCompute表寫資料。 |
不支援寫入特殊表 | 不支援寫資料到MaxCompute的External表、Transactional表和Clustered表。 |
表Schema變更 | 如果您的MaxCompute表Schema有變更,您需要先暫停MaxCompute投遞20分鐘,再重新啟動,使表Schema變更生效。 |
許可權管理
限制項 | 說明 |
寫授權 | MaxCompute寫授權支援RAM使用者以及RAM角色兩種方式,並且需要在MaxCompute側進行單獨操作。 |
資料類型
普通列
類型
樣本
說明
string
"hello"
最大長度為8 MB。
datetime
"2021-12-22 05:00:00"
Simple Log Service中的資料需滿足MaxCompute的資料格式要求。
date
"2021-12-22"
Simple Log Service中的資料需滿足MaxCompute的資料格式要求。
timestamp
1648544867
毫秒級或秒級精度。
decimal
1.2
Simple Log Service中的資料需滿足MaxCompute的資料格式要求。
char
"hello"
最大長度為255位元組。
varchar
"hello"
最大長度為65535位元組。
binary
"hello"
最大長度為8 MB。
bigint
123
最大支援int64。
boolean
1
1 、t、T、true、TRUE、True解析為True。
0、f、F、false、FALSE、False解析為False。
double
1.2
最大支援64位浮點數。
float
1.2
最大支援32位浮點數。
integer
123
最大支援int32。
smallint
12
最大支援int16。
tinyint
12
最大支援int8。
分區列
限制項
說明
分區列
按照字串處理,需要滿足MaxCompute分區列的格式要求。
管理投遞
限制項 | 說明 |
暫停投遞任務 | 投遞任務會記錄上次投遞的日誌Cursor,恢複運行時從屬記錄的Cursor開始繼續投遞。因此暫停投遞任務時存在如下機制。
|
MaxCompute IP白名單
限制項 | 說明 |
在MaxCompute專案管理中開啟白名單(例如開啟傳統網路IP白名單),可能導致MaxCompute投遞失敗 | 可以在MaxCompute側執行命令解決白名單導致的MaxCompute投遞失敗問題。
|