下面是一些關鍵的指導原則,能夠在構批量處理解決方案能夠參考:數據庫
- 請記住,一般皮臉處理體系結構將會影響在線應用的體系結構,同時反過來也是同樣的。在你爲批量任務和在線應用進行設計架構和環境的時候請儘量的使用公共的模塊。
- 越簡單越好,儘可能在一個單獨的批量應用中構建簡單的批量處理,並避免複雜的邏輯結構。
- 儘可能的保持存儲的數據和進程存儲在同一個地方(換句話說就是儘可能將數據保存到你程序運行的地方)。
- 最小化系統資源的使用,尤爲針對 I/O。儘可能在內存中執行儘量多的操做。
- 檢查應用的 I/O(分析 SQL 語句)來避免沒必要要的的物理 I/O 使用。特別是如下四個常見的缺陷(flaws)須要避免:
- 在數據能夠只讀一次就能夠緩存起來的狀況下,針對每個事務都來讀取數據
- 屢次讀取/查詢同一事務中已經讀取過的數據
- 產生沒必要要的表格或者索引掃描
- 在 SQL 查詢中不指定 WHERE 查詢的值。
- 在批量運行的時候不要將一件事重複 2 次。例如,若是你須要針對你須要報表的數據彙總,請在處理每一條記錄時使用增量來存儲,儘量不要再去遍歷一次一樣的數據。
- 爲批量進程在開始的時候就分配足夠的內存,以免在運行的時候再次分配內存。
- 老是將數據完整性假定爲最壞狀況。對數據進行適當的檢查和數據校驗以保持數據完整性(integrity)。
- 可能的話,請實現內部校驗(checksums )。例如,針對文本文件,應該有一條結尾記錄,這個記錄將會說明文件中的總記錄數和關鍵字段的集合(aggregate)。
- 儘量早地在模擬生產環境下使用真實的數據量,以便於進行計劃和執行壓力測試。
- 在大數據量的批量中,數據備份可能會很是複雜和充滿挑戰,尤爲是你的系統要求不間斷(24 - 7)運行的系統。數據庫備份一般在設計時就考慮好了,可是文件備份也應該提高到一樣的重要程度。若是系統依賴於文本文件,文件備份程序不只要正確設置和造成文檔,還要按期進行測試。
https://www.cwiki.us/display/SpringBatchZH/General+Batch+Principles+and+Guidelines緩存