使用nodejs合并数百万个数据

时间:2017-05-15 08:02:30

标签: javascript arrays json node.js

我需要帮助/提示

我有大量需要合并,排序和过滤的json数据。现在,他们被分成不同的文件夹。几乎2GB的json文件。

我现在正在做的是:

  • 读取每个文件夹中的所有文件
  • 将JSON解析数据附加到我脚本中的Array variable
  • Array variable
  • 进行排序
  • 过滤
  • 将其保存到一个文件

我正在重新思考而不是appending parsed data to a variable,也许我应该将它存储在一个文件中?...你们怎么想? 在处理这种情况时,哪种方法更好?

顺便说一句,我正在体验一个 Javascript Heap out of memory

1 个答案:

答案 0 :(得分:0)

您可以使用某种数据库,例如MySQL与桌面引擎"内存"所以它只会被保存在ram中并且会快速闪耀并且会在重新启动后被删除,但是你应该在操作之后将其截断,而这一切都是临时性的。当您在表中有数据时,很容易过滤/排序所需的位并逐步获取数据,让我们说1000行并根据需要解析它。您不必在js中保存2gig数据。

2gig的数据可能会在循环期间阻塞你的js线程,无论如何你都会被冻结的应用程序。

如果你使用一些文件保存临时数据以避免数据库,我建议使用一些临时磁盘安装在RAM上,这样你的i / o速度会更好。