我需要对 Javascript/Node.js 中的大型(5-10 Gb)日志文件进行一些解析(我正在使用 Cube)。
日志线看起来像这样:
10:00:43.343423 I'm a friendly log message. There are 5 cats, and 7 dogs. We are in state "SUCCESS".
我们需要读取每一行,进行一些解析(例如,去掉 5
、 7
和 SUCCESS
) ,然后使用 JS 客户机将这些数据输入 Cube (https://github.com/square/cube)。
首先,Node 中逐行读取文件的规范方法是什么?
这似乎是网上相当常见的问题:
许多答案似乎都指向一些第三方模块:
但是,这似乎是一个相当基本的任务——当然,在 stdlib 中有一种逐行读取文本文件的简单方法?
其次,我需要处理每一行(例如,将时间戳转换为 Date 对象,并提取有用的字段)。
最好的方法是什么,使吞吐量最大化?有没有什么方法可以不阻止读取每一行或者将其发送到 Cube?
第三-我猜测使用字符串分割,和 JS 等价的包含(IndexOf!= -1?)会比正则表达式快很多吗?有人在解析 Node.js 中的大量文本数据方面有很多经验吗?
干杯, 维克多