Step1:使用spring batch批量從mysql業(yè)務(wù)數(shù)據(jù)庫抓取資料并存儲到本地文件,如計算知識點得分率,每一行可以是一個學(xué)生的一次考試的得分情況。
Step2:將步驟一產(chǎn)生的大文件(內(nèi)存無法裝下)切割成N個小文件,適合一次性裝入內(nèi)存。
Step3:依次對這N個小文件進(jìn)行排序(如計算知識點得分率,則按照用戶唯一標(biāo)識的hash值排序),推薦使用快速排序算法。
Step4:使用外歸并排序算法將這N個排序后的小文件合并成一個有序的大文件。
Step5:按順序讀取步驟四產(chǎn)生的大文件,進(jìn)行業(yè)務(wù)計算。