Разбор огромных лог-файлов в Node.js - построчно

Мне нужно сделать несколько больших (5-10 ГБ) файлов журналов в Javascript / Node.js (ям с использованием куба).

Логлайн выглядит примерно так:

10:00:43.343423 I'm a friendly log message. There are 5 cats, and 7 dogs. We are in state "SUCCESS".

Нам нужно прочитать каждую строку, сделать анализ (например, вырезать,57 а такжеSUCCESS), затем закачайте эти данные в Cube (https://github.com/square/cube) используя свой клиент JS.

Во-первых, что такое канонический способ чтения в файле построчно в Node?

Кажется, это довольно распространенный вопрос в Интернете:

http://www.quora.com/What-is-the-best-way-to-read-a-file-line-by-line-in-node-jsЧитать файл по одной строке в node.js?

Многие ответы, кажется, указывают на кучу сторонних модулей:

https://github.com/nickewing/line-readerhttps://github.com/jahewson/node-bylinehttps://github.com/pkrumins/node-lazyhttps://github.com/Gagle/Node-BufferedReader

Тем не менее, это кажется довольно простой задачей - конечно, естьпростой способ в stdlib читать текстовый файл, построчно?

Во-вторых, мне нужно обработать каждую строку (например, преобразовать метку времени в объект Date и извлечь полезные поля).

Какие'лучший способ сделать это, максимизируя пропускную способность? Есть ли способ победить?блокировать либо чтение в каждой строке, либо отправку его в Cube?

В-третьих - яугадать, используя разбиения строк, и JS-эквивалент содержит (IndexOf! = -1?) будет намного быстрее, чем регулярные выражения? У кого-нибудь был большой опыт разбора огромных объемов текстовых данных в Node.js?

Ура, Виктор

Ответы на вопрос(9)

Ваш ответ на вопрос