python - 100G超大文件合并排序
PHP中文网
PHP中文网 2017-04-18 09:46:21
0
2
848

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

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

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

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

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(2)
阿神

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

으아악

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

伊谢尔伦

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

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿