问题描述
- 程序需要处理的数据量很大的时候该怎么做呢?
-
如果程序一次需要处理的数据有很多,比如上千万条宠物信息,保存在txt中有100多个G,这时候需要对每条宠物数据做逐一处理,然后对处理结果分类综合再进行二次处理。
操作的时候,所有数据都同时放到内存中不太现实,请问这种情况下一般的处理思路是什么?
想的是做一个中间文件,第一次处理的时候,处理一条数据保存一条数据。但因为二次处理需要对所有的数据综合分析,所以还是要完全读取中间文件的数据。
刚做这方面的内容,请各位前辈多多指点,十分感谢。
解决方案
如果综合分析这个过程满足结合律,或者部分满足结合律,可以考虑借鉴Hadoop中的partition过程,即:
从初始文件读入,分析后根据数据内容写到多个文件中,将需要统计分析的数据放到同一个文件中,然后逐个文件分析
解决方案二:
你这不就是hadoop适合做的事情嘛,找个hadoop的文章,搞个helloworld试试去吧。
解决方案三:
为什么不用数据库。如果你不用数据库,你要做的事情就是自己做一个类似数据库的东西。比如用hashtable、btree等等。
解决方案四:
看下批处理的方法,然后试试吧
解决方案五:
存到数据库,到操作时一部分,一部分的读取到链表,然后操作链表,再存回数据库
解决方案六:
如果处理好这个问题,相当于楼主自己写了一个数据库软件,数据库中信息较多,我们通常都需要把相同结构的数据分表操作,何况楼主说的是接近100G这么大的信息量,就算放到数据库,我们也还需要考虑性能问题,比如说集群服务器等等,更别说增删改查排序了。所以楼主还是尝试数据库软件这些现行办法比较好。
时间: 2025-01-18 21:40:01