如何将javascript数组元素流式发送/发送到S3存储桶?

时间:2019-08-27 18:22:43

标签: javascript arrays node.js json amazon-s3

我正在努力减少数据收集器的内存需求,在此情况下,一小部分请求会导致ram使用量> 5gb。最终输出是带有很长数组的字符串化JSON对象,最多可容纳500,000个对象。

数据收集器以json对象数组的形式一次获取500条记录。当前,该数组被连接到一个累加器变量上。当有大量记录请求时,超过200,000个,该变量将开始占用大量内存,这要求我们的EC2实例具有10gb的内存。

我正在寻找一种方法来获取每组记录并将它们附加到S3文件中以优化ram利用率。模拟流式传输每个记录集的效果将一个示例中的ram使用量从2gb降低到30mb。

文件存储在S3中后,由另一个程序下载并根据用户设置转换为不同的格式。

我已经研究了Firehose以及分段上传,但是基于当前的结构,我没有看到确切的解决方案。我可以更改保存文件的格式,但仅限于位于S3中。当前格式为:

{
  count: 5555,
  results: [
    {record1},
    {record2},
    ...
    {record200000}
  ]
}

我想使现有文件格式尽可能接近其当前格式,但是可以进行完整的更改,只需要在阅读程序方面进行其他工作即可。

0 个答案:

没有答案