Rumah  >  Soal Jawab  >  teks badan

python - 100G超大文件合并排序

目前想实现两个100G文件合并,日志文件,都有日期,日期会有所交集,如一份1日到10日,另一份5日到15日,所以合并后也需要对日期进行排序。

目标是,查询某一时间区段的信息,目前的打算是:

我可以知道每个文件大小和日起始时间,所以若文件过大,就分割它,然后获取分割小文件的的起始时间,时间区段只要稍加限制,同时由于log的连续性和记录频率不太高,就能确保就只有几个小文件包含了用户需要的信息,然后只返回那几小份的文件的信息,然后全部直接扔进内存排序都不怕,效率也可以。

但我想想,是不是也有办法,直接真的可以把2个100G合成一个200G的?
或有什么更好的办法,目前在写模板的基本方法,想封装好一点以后不管了。但不知道这个要怎么玩。求教,谢谢!

PHP中文网PHP中文网2740 hari yang lalu809

membalas semua(2)saya akan balas

  • 阿神

    阿神2017-04-18 09:48:21

    Beri saya idea: Saya rasa idea anda tentang pembahagian sebenarnya agak bagus, tetapi ia sebenarnya tidak perlu dibahagikan Apa yang anda perlu lakukan ialah mengekalkan fail indeks. Maksudnya, dengan membaca fail sekali, untuk setiap 1000 entri (contohnya), mengimbangi fail permulaan dan mengimbangi tamat 1000 entri dikaitkan dengan masa mula dan masa tamat 1000 entri ini. Dengan cara ini anda mendapat fail indeks.

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

    Apabila anda ingin membuat pertanyaan pada masa hadapan, anda boleh menyemak fail indeks terlebih dahulu untuk mengetahui fail mana dan julat mana data yang diperlukan berada. Kerana setiap fail anda diisih mengikut masa, tidak perlu mengisih semasa mengindeks.

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:48:21

    Ia sangat besar, saya masih perlu bertanya mengapa ia kerap dipindahkan ke pangkalan data.

    balas
    0
  • Batalbalas