本文介紹日志服務數據加工的使用限制。
任務配置
限制項
說明
任務數
1個Project中最多可創建100個數據加工任務。
重要數據加工任務處于停止或者運行完成狀態時,依然會占用配額,建議及時清理停止或者運行完成狀態、并且確認不再使用的數據加工任務,減少配額占用。更多信息,請參見管理數據加工任務。
如您有更大的使用需求,請提工單申請。
源數據Logstore消費組依賴
1個數據加工任務運行依賴源數據Logstore的一個消費組實例。
加工任務在運行中,不能針對該任務依賴的消費組實例執行刪除和重置消費點位的操作,否則任務將重新從其配置的起始時間開始消費數據,可能會導致結果數據出現重復。
重要為了優化數據加工的運行效率,任務的Shard消費進度會定時更新至其依賴的消費組實例,所以該消費組實例的GetCheckPoint接口結果不能反映最新的加工進度。準確的加工進度數據請參考數據加工儀表盤中的Shard消費延遲模塊。
源數據Logstore消費組數目
1個Logstore中最多可創建30個消費組,即1個源數據Logstore最多可創建30個數據加工任務。更多信息,請參見基礎資源。
超出此限制時,加工任務啟動后無法正常運行,任務通過其運行日志輸出具體錯誤信息,詳情請參考錯誤日志查看方式。
重要數據加工任務處于停止或者運行完成狀態時,日志服務并不會主動刪除其依賴的消費組實例,建議及時清理處于停止或運行完成狀態、并且確認不再使用的數據加工任務,減少無效消費組實例。更多信息,請參見管理數據加工任務。
任務時間范圍修改
運行中的任務修改了時間范圍后,將根據新指定的起始時間點開始運行,并處理新時間范圍內的所有數據。
如果需要擴展時間范圍:建議保留現有任務,新增任務補全需要擴展的時間范圍。
如果需要縮小時間范圍:已經寫到目標的數據將不會被刪除,所以建議必要時清除已經寫到目標的數據,再修改任務,以防數據重復。
輸出目標數
在1個數據加工任務中配置獨立靜態輸出目標數限制為20個。
在加工代碼中使用1個靜態輸出目標配置,動態指定Project和Logstore輸出數限制為200個。超出此限制時,寫入到新增目標的數據將被丟棄。
加工處理
限制項
說明
快速預覽
數據加工快速預覽功能用于調試數據加工代碼,使用有以下限制:
不支持連接到外部資源(RDS/OSS/SLS等),可通過自定義輸入測試維表數據。
單次請求測試原始數據和維表各自均不超過 1 MB 數據,超出時該請求返回錯誤。
單次請求最多返回前100條加工結果。
數據加工高級預覽功能無此限制。
運行時并發度
數據加工任務使用源數據Logstore的讀寫Shard數目作為任務的最大運行時并發度。更多信息,請參見加工原理。
Logstore的Shard使用限制請參考基礎資源,Logstore的分裂Shard操作請參考管理Shard。
重要數據加工任務運行并發度不足不會觸發源數據Logstore的自動分裂Shard功能,需要手動分裂源數據Logstore的Shard,才能提高加工任務的運行并發度。自動分裂Shard操作請參考管理Shard。
分裂源數據Logstore的Shard提升任務的最大運行時并發度,只對分裂Shard操作以后新寫入的數據有效。在分裂Shard操作之前已寫入的數據,其最大運行時并發度由數據寫入時的源數據Logstore讀寫Shard數目決定。
并發單元數據負載
數據加工任務單個并發單元的數據負載,由其所運行的源數據Logstore Shard中存儲數據量所決定。如果寫入源數據Logstore的數據在其Shard間分布不均衡,會使得數據加工任務運行時出現熱點并發單元,導致部分Shard處理延遲。
如果源數據通過Key路由Shard模式(KeyHash)寫入,建議合理分配Key與Shard,盡可能減少數據分布不均衡。
內存使用
數據加工任務單個并發單元的內存使用限制為6 GB,超過此限制時任務運行性能將變慢,導致處理延遲。
內存使用超限制的引起原因是單次拉取的LogGroup數量過大,需要修改高級參數
system.process.batch_size
來調整內存使用。重要高級參數
system.process.batch_size
的默認值(最大值)是1000,可以調整為1000以內的正整數。CPU使用
數據加工任務單個并發單元的CPU使用限制為100%,可以根據上文擴展并發度上限實現更高的CPU要求。
維表數據量
維表數據條目數限制為兩百萬,數據內存使用限制為2 GB。數據量超過該限制時,將做截斷處理,使用限制內的數據內容。涉及函數包括res_rds_mysql、res_log_logstore_pull和res_oss_file等。
重要單個任務中如果包含多個維表,將共享此限制。建議盡量精簡維表數據。
結果數據寫入
限制項
說明
目標Logstore寫入
將處理結果寫入目標Logstore時,需要滿足Logstore的數據寫入限制,具體請參考基礎資源和數據讀寫。
如果在使用e_output、e_coutput函數時,指定
hash_key_field
或者hash_key
參數且通過Key路由Shard模式(KeyHash)寫入數據至目標Logstore,建議合理分配Key與Shard,盡可能減少數據分布不均衡。此限制可通過數據加工任務日志進行定位,參考錯誤日志查看方式。
重要數據加工在遇到目標Logstore寫入限制錯誤時會執行無限重試,以保證數據完整,但是加工任務進度會因此受影響,導致負責當前源Shard的負載處理延遲。
跨地域傳輸
通過公網Endpoint完成跨地域數據傳輸時,由于公網網絡質量無法保證,加工結果寫入目標Logstore可能會出現網絡錯誤,導致數據加工任務處理延遲。日志服務Endpoint請參考服務入口。
建議為目標Project開啟傳輸加速服務,并在數據加工中配置其傳輸加速Endpoint以提高網絡傳輸穩定性。更多信息,請參見管理傳輸加速。