Step1:使用spring batch批量从mysql业务数据库抓取资料并存储到本地文件,如计算知识点得分率,每一行可以是一个学生的一次考试的得分情况。
Step2:将步骤一产生的大文件(内存无法装下)切割成N个小文件,适合一次性装入内存。
Step3:依次对这N个小文件进行排序(如计算知识点得分率,则按照用户唯一标识的hash值排序),推荐使用快速排序算法。
Step4:使用外归并排序算法将这N个排序后的小文件合并成一个有序的大文件。
Step5:按顺序读取步骤四产生的大文件,进行业务计算。