찾다

 >  Q&A  >  본문

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

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

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

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

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

PHP中文网PHP中文网2788일 전868

모든 응답(2)나는 대답할 것이다

  • 阿神

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

    아이디어를 주세요. 분할에 대한 아이디어는 실제로 꽤 좋다고 생각하지만 실제로 분할할 필요는 없습니다. 인덱스 파일을 유지하기만 하면 됩니다. 즉, 파일을 한 번 읽으면(예: 1000개 항목마다) 1000개 항목의 시작 파일 오프셋과 끝 오프셋이 이러한 1000개 항목의 시작 시간 및 종료 시간과 연결됩니다. 이렇게 하면 인덱스 파일을 얻을 수 있습니다.

    으아악

    나중에 쿼리할 경우 먼저 인덱스 파일을 확인하여 필요한 데이터가 어떤 파일과 어느 범위에 있는지 알 수 있습니다. 각 파일은 시간별로 정렬되므로 인덱스를 작성할 때 정렬할 필요가 없습니다.

    회신하다
    0
  • 伊谢尔伦

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

    너무 커서 왜 정기적으로 데이터베이스로 전송되는지 쿼리해야 합니다.

    회신하다
    0
  • 취소회신하다