需要在大型数据库表创建期间管理聚合数据的策略

时间:2010-10-27 13:43:33

标签: database algorithm design-patterns java-ee

想象一下,每个月将所有世界高中学生的成绩收集到一个表格中,并且在每个学生的记录中,您需要在学生的班级,城市和国家/地区中包含该科目的最终平均成绩。这可以在后期处理中完成,但是您的老板说它必须在数据收集期间完成。

约束:将行写入平面文件,然后批量插入新表中。

在没有向JVM或RDBMS添加过多内存/处理开销的情况下,在完成表之前,依赖于几十万个平均值的好策略或设计模式是什么?任何想法都会有所帮助。

注意:由于该表是以只读方式使用的,因此我们在完成时为其添加聚簇索引。

1 个答案:

答案 0 :(得分:2)

我告诉我的老板停止微观管理。

但严重的是,按类,城市和国家对数据进行排序。然后通过保持类,城市和国家的运行总数和计数来计算每个的运行平均值。遇到其他类时,请将类名和平均值写入文件。对城市和国家/地区执行相同操作仅对每个文件使用不同的文件然后,您可以打开已排序的数据文件和平均文件,并逐个在数据库中插入行。

如果你想使用一个可以处理所有写入磁盘的框架,我会考虑使用Hadoop进行处理。