javascript - 如何将 javascript 数组元素流式传输/发送到 S3 存储桶?
问题描述
我正在努力减少数据收集器的内存需求,其中一小部分请求可能导致 ram 使用量超过 5gb。最终输出是一个字符串化的 JSON 对象,具有一个非常长的数组,最多 500,000 个对象。
数据收集器一次获取 500 条记录,格式为 json 对象数组。目前,该数组被连接到一个累加器变量上。当有海量记录请求时,200,000+,变量开始占用大量内存,要求我们的 EC2 实例有 10gb 的内存。
我正在寻找一种方法来获取每组记录并将它们附加到 S3 文件以优化 ram 利用率。模拟流式传输每个记录集的效果将一个示例中的 ram 使用量从 2gb 更改为 30mb。
文件存储在 S3 中后,由另一个程序下载并根据用户设置转换为不同的格式。
我研究了 Firehose 以及多部分上传,但我没有看到基于当前结构的确切解决方案。我可以更改保存文件的格式,但仅限于位于 S3 中。当前格式为:
{
count: 5555,
results: [
{record1},
{record2},
...
{record200000}
]
}
我想保持现有文件格式尽可能接近其当前形式,但可以进行完全更改,只需要在阅读程序方面进行额外的工作。
解决方案
推荐阅读
- azure - Azure AD SSO 与 ServiceNow 集成不起作用
- r - 了解 glmer 算法;帮助使用 R 进行调试
- javascript - 表单数组上的补丁值未设置材质多选的值
- javascript - 立即截断前导零
- unity3d - 如何在 Unity 中制作两个对象之间的交互动画?
- python - 由于 null,字符串连接不起作用
- r - 日期 %within% 间隔
- automapper - 在 Insert() 上未调用 Dapper Extensions 自定义 ClassMapper
- twitter-bootstrap - 如何使用我的样式自定义引导文档
- reactjs - 反应中的事件处理