Учитывая, что у меня очень большой файл журнала, достаточно большой, чтобы он не мог быть загружен в мою основную память, и я хотел каким-то образом его отсортировать, какова будет самая рекомендуемая техника сортировки и алгоритм?Как я могу сортировать очень большой файл журнала, слишком большой для загрузки в основную память?
Как я могу сортировать очень большой файл журнала, слишком большой для загрузки в основную память?
ответ
Если у вас есть GNU sort
, используйте его. Он знает, как обращаться с большими файлами. Для получения дополнительной информации см. Ответы на How to sort big files на Unix SE. Конечно, вам потребуется достаточное свободное место на диске.
Это зависит от ОС. Если на Linux/Unix, вы можете использовать SED команды, чтобы напечатать определенные строки
sed -n -e 120p /var/log/syslog
Какой бы строка 120 из системного журнала файла печати. Вы также можете использовать головку
head -n 15 /var/log/syslog
Будет распечатываться первые 15 строк файла syslog. Существует также grep, tail и т. Д. Для просмотра частей большого файла. Более подробно здесь на них и больше:
http://www.thegeekstuff.com/2009/08/10-awesome-examples-for-viewing-huge-log-files-in-unix
Для Windows есть Large Text File Viewer
Если вы ищете алгоритм, вы могли бы применить merge sort.
По существу, вы разбиваете свои данные на более мелкие куски и сортируете каждый кусок. Затем вы берете два сортированных куска и объединяете их (это можно сделать потоковым способом, просто возьмите наименьшее значение двух кусков и приращений). Это приведет к большему фрагменту. Продолжайте делать это, пока вы не объедините все куски.
Обычный слияние не будет выполнять эту работу. Куски становятся больше по каждой итерации, поэтому через некоторый период времени они не могут быть сохранены в памяти. – karastojko
Правильно, вам нужно будет хранить их на диске. При базовом подходе вам нужно вдвое больше места на диске, но если журналы хранятся в файлах с максимальным размером X, тогда вам потребуется не более 2 * X дополнительных дисковых пространств, даже для слияния последних и самых больших 2 кусков. – TilmannZ
- 1. Как я могу сортировать очень большой файл CSV?
- 2. Neo4j Файл журнала слишком большой
- 3. Как я могу сделать очень большой файл SVG в HTML5?
- 4. WAR Файл слишком большой
- 5. как большой слишком большой для swf-файла
- 6. Файл LoadXML слишком большой
- 7. Декомпрессированный файл слишком большой
- 8. Файл слишком большой для импорта?
- 9. sql log файл слишком большой
- 10. Как я могу обработать очень большой файл в python?
- 11. Файл слишком большой python
- 12. HTTP Загрузить очень большой файл
- 13. Большой файл XML, взорвавший память, как я могу уменьшить?
- 14. (Очень) Большой Simulink Входной файл
- 15. Как я могу найти очень большой файл json?
- 16. Как команда сортировки UNIX может сортировать очень большой файл?
- 17. Как я могу прочитать большой файл постепенно?
- 18. PHP Unzip очень большой файл
- 19. Синтаксический большой файл журнала - Python
- 20. Как зашифровать очень большой файл в python
- 21. Я переполняю флеш-память AVR с слишком большой программой?
- 22. Процесс очень большой XML-файл
- 23. Как прочитать большой файл журнала ошибок без загрузки?
- 24. Загрузить большой файл слишком медленно
- 25. Сплит очень большой файл javascript
- 26. Как я могу использовать очень большой словарь в C#?
- 27. IOError пишет очень большой файл
- 28. Загрузить большой файл слишком медленно
- 29. Ruby PStore файл слишком большой
- 30. TextWriterTraceListener файл трассировки слишком большой
Возможный дубликат [хороший просмотрщик журнала IIS для больших файлов журналов?] (Http://stackoverflow.com/questions/157677/a-good-iis-log-viewer-for-large-log-files) – Mat
Возможный дубликат: http://stackoverflow.com/q/37062366/56778 –