Нужно выбрать лучшее решение по скорости мелких файлов
Может быть не в том разделе пишу, просьба тогда перенести тему.
В общем, нужно подобрать лучшее решение которое существует на момент сентября 2022. Задача заключается в следующем: есть очень много мелких файлов в разных папках. более 1 миллиона текстовых файлов, весом от 1 до 500 КБ. Эти файлы в разных папках находятся. Нужно найти решение, которое способно максимально быстро, насколько это возможно, архивировать эти файлы, разархивировать, копировать из всех папок, и переносить в одну. Короче обычная простая работа с файлами, казалось бы, на первый взгляд. Но нет. Скорости этих операций очень низкие. Времени очень много уходит на все эти сортировки. Все тесты по возможности могу предоставить. Сразу скажу, что обыденные потребительские SSD/HDD тут не особо выкручивают ситуацию по скоростям. Нужно что-то другое выбирать. Я могу ещё больше мыслей предложить на счёт этой темы, но мне хотелось бы услышать сначала экспертов/энтузиастов/инженеров/сис.админов серверов и т.д. Прежде чем отвечать, прочитайте весь топик! А также, отвечайте развёрнуто, а не просто "Попробуй что-то". |
Цитата:
|
Цитата:
Начнём с того, что у меня только .txt файлы. В них содержатся данные такого вида: Скрытый текст
-----
text1: text2 text3: text4 text5: text6 text7: text8 ----- text1: text2 text3: text4 text5: text6 text7: text8 ----- Либо такое же, только без text7: text8 Честно, я даже не знаю что именно подходит под такие задачи:
Но уж точно никак не подходит mysql база данных под txt файлы, их удаление на дубликаты, и объединение в 1 файл. |
Цитата:
Цитата:
NoSQL, например, mongo. |
Кроме
Цитата:
Цитата:
Просто, мне всего лишь то надо отсортировать очень быстро, и к себе на комп скачать 1 готовый отсортированный файл из миллиона мелких файлов. Хранить мне эти миллионы файлов не нужно нигде. |
Цитата:
|
quesd, есть программки быстрого поиска. Например Everything
Даёте ему проиндексироваться (это 1-2 мин). Далее в нём поиском по простому шаблону *.txt, отмечаете все файлы, снимаете метку с ненужных и самым простым образом копируете/перемещаете отмеченные простым перетаскиванием в нужную вам папку. |
Цитата:
Цитата:
Да и на счёт архивирования и разархивирования терабайтов данных уж точно никак не ускорит данная программа. |
а наличие в результате самих текстовых файлов является обязательным условием?
как понял, их содержание - это классические пары логин:пароль. такое прекрасно впихуемо в любую бд, и это все прекрасно жмется, легко ищется, фильтруется и сортируется. если критичен источник - вводите в бд третье поле и пишете его там. ну и т.д. |
Цитата:
Либо я не понимаю концепцию, либо база данных мне вообще не нужна в данной задаче. И опять же, мне это лишь временно нужно. Т.е отсортировать - и скачать к себе на комп готовый отсортированный файл. Всё остальное удалить. Про RAM-диски слышали? Я на них намёк веду. |
Цитата:
Ну или в принципе все варианты рабочие. Другого решения у меня нет. Может кто и подскажет. Быстрое решение я вам предложил. Цитата:
|
Цитата:
Если имеет значение только содержание, то алгоритм такой: открывается файл, строки из него переносятся в базу, последняя - закрывается, открывается следующий и т.д. Насрать, если будут дубли. Просто в базе сортируете значения (напр, по возрастанию, не суть), далее простейший цикл "если строка №+1 = строке №, удалить строку №+1". Профит. Далее играйтесь с этим как угодно. Цитата:
Положить водопровод, а не искать сапоги скороходы, чтоб быстрее носить воду вёдрами. |
@bredych Вы мне сейчас рассказали работу как сделать свой антипаблик с помощью базы данных. Меня такой вариант не устраивает. У меня уже есть самописный софт для таких задач.
Мне просто нужно решение, которое как можно быстрее разархивирует архив, находит файлы, удаляет дубликатные файлы, копирует миллион файлов в другую одну папку, объединяет всё в 1 файл. И уже этот 1 файл у меня воспринимает и парсит определённые данные. Если что, я создам новую тему, какие ещё есть методы чтобы быстрее парсить данные. Это тоже мне нужно. Но на данный момент, в приоритете у меня скорее это Цитата:
|
Цитата:
|
Цитата:
Цитата:
Ну и собственно, судя по Вашему запросу, задача одноразовая? Тут проще таки воспользоваться какими-то готовыми решениями, пусть даже с немаленькими временными затратами... |
Цитата:
Если же в плане, закинуть архив, распаковать, отсортировать файлы и удалить архив и все эти файлы - то ответ да. Здесь не нужно хранить будет файлы, т.к я один отсортированный файл скачаю к себе на комп. Цитата:
Цитата:
Цитата:
Если же речь идёт про архивирование/копирование/перетаскивание - то тут наоборот всё. Один большой файл займёт на все эти операции очень мало времени, по сравнению с миллионами мелких файлов, которые могут растянуться на очень много часов. Ну по крайней мере, это так работает на NTFS. В других ФС я не тестил. Но очень хотелось бы протестировать! Но не знаю с какой ФС начать, и какую выбрать, чтобы гарантированно были максимальные скорости на мелкие файлы!!! Как раз по этому вы и видите этот топик - чтобы ответить на этот вопрос. Ну точнее, один из моих вопросов. Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Или однократная задача, или регулярная. И то и другое сразу - не бывает. |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Время: 09:33. |
Время: 09:33.
© OSzone.net 2001-