话题 首页 > Python2 教程 > Python2 教程话题列表 > 详情

有没有方法可以把2个100G合成一个200G?

精华
q462173711 2016-10-20 02:42:32 浏览(4963) 回复(4) 赞(0)
目前想实现两个100G文件合并,日志文件,都有日期,日期会有所交集,如一份1日到10日,另一份5日到15日,所以合并后也需要对日期进行排序。
目标是,查询某一时间区段的信息,目前的打算是:
我可以知道每个文件大小和日起始时间,所以若文件过大,就分割它,然后获取分割小文件的的起始时间,时间区段只要稍加限制,同时由于log的连续性和记录频率不太高,就能确保就只有几个小文件包含了用户需要的信息,然后只返回那几小份的文件的信息,然后全部直接扔进内存排序都不怕,效率也可以。
但我想想,是不是也有办法,直接真的可以把2个100G合成一个200G的?或有什么更好的办法,目前在写模板的基本方法,想封装好一点以后不管了。但不知道这个要怎么玩。求教,谢谢!
python linux

回答(4)

babyfiyme 2016-10-20

提供个思路:我觉得你分割的思想其实挺好的,只是实际上并不需要真的分割,你要做的只是维护一个索引文件。就是说通过读一遍文件,每1000条(比方说),将1000条的起始文件偏移和结束偏移更这1000条的起始时间和结束时间关联起来。这样你可以得到一个索引文件。

时间1~时间2,文件1,offset1~offset2
时间3~时间4,文件2,offset3~offset4
...

将来你要查询的时候,先查索引文件,就可以知道需要的数据在哪个文件的什么区间里面了。因为你每个文件本身是按时间排序的,所以在建立索引的时候无需排序。

一笔荒芜 2018-05-31

好慢呀,空空如也,半天不来大神解决,大佬在哪啦

1144100656 2018-05-31

好慢呀,空空如也,半天不来大神解决,大佬在哪啦

1152696398 2018-05-31

留名留名!!!,同样的问题,看看咋结局!!!

要回复,请先登录 或者注册