У меня есть два файла с UUID на каждой строке. Каждый файл имеет несколько сотен тысяч строк (они создаются из дампов базы данных). Эти файлы должны быть отсортированы и обнаружены различия (добавление/удаление). Это легко сделать с помощью нескольких * NIX инструментов и занимает всего несколько секунд:Сортировка и разметка больших файлов с помощью Node.js
$ sort file-a.txt > file-a-sorted.txt
$ sort file-b.txt > file-b-sorted.txt
$ diff file-a-sorted.txt file-b-sorted.txt
Однако я хотел бы добавить эту функцию в CLI мы (построен на узле), который предназначен для мультиплатформенной использования , Таким образом, нереста подпроцесса и делегирование этих инструментов не является вариантом.
Будучи «немым» и загружая каждый файл в память, разделение на строки новой строки и вызывание .sort()
на результирующий массив работает на удивление хорошо (это быстро, хотя и с использованием довольно большой памяти ...), но обнаружение различий оказывается довольно сложным ,
Я уверен, что ответ лежит где-то в области потоков, но мне не хватает опыта, манипулируя ими, поэтому я не уверен, с чего начать.
Что такое эффективные методы для загрузки, сортировки и различения таких больших файлов с помощью Node.js?
Я не ищу полных решений (хотя, не стесняйтесь!), Только указатели были бы действительно полезны на этом этапе.
Спасибо!
Спасибо, что нашли время предложить этот инструмент - это очень хорошо =] –