批次處理 中階
批次處理設計模式
請說明大規模批次處理的常見設計模式。
分區平行化(Partition Parallelism)
將資料按 key(如日期、用戶 ID 範圍)分區,各分區平行獨立處理,大幅縮短總處理時間。
增量處理(Incremental Processing)
每次只處理上次運行後新增/變更的資料,而非全量重跑。需記錄高水位線(High Watermark)或上次處理的最大 ID/時間戳。
Checkpoint 與容錯
長時間執行的批次任務需定期 Checkpoint(將中間結果持久化)。任務失敗時從最近的 Checkpoint 恢復,避免從頭重跑。
資料傾斜處理(Data Skew)
若某些 Key 的資料量遠大於其他(如熱門商品、超級用戶),會導致部分 Task 執行極慢。解法:加鹽(Salting)打散熱點 Key、廣播小表(Broadcast Join)。
批次大小優化
批次太小:任務調度開銷大。批次太大:記憶體壓力大、失敗重跑代價高。需根據資料量和計算資源調整。
輸出一致性
批次輸出到目標系統時,應使用原子性寫入(如先寫臨時表,再 RENAME),避免讀者看到部分結果。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
