【发布时间】:2017-08-20 10:21:38
【问题描述】:
我的本地机器上有一个巨大的.csv 文件。我想将该数据加载到 DynamoDB(eu-west-1,爱尔兰)中。你会怎么做?
-
我的第一个方法是:
- 在本地迭代 CSV 文件
- 通过
curl -X POST -d '<row>' .../connector/mydata向 AWS 发送一行 - 在 lambda 中处理上一次调用并写入 DynamoDB
我不喜欢那个解决方案,因为:
- 请求过多
- 如果我发送没有 CSV 标头信息的数据,我必须对 lambda 进行硬编码
- 如果我使用 CSV 标头发送数据,则流量过多
我也曾考虑将文件放入
S3存储桶并使用lambda处理它,但文件很大,而且 lambda 的内存和时间限制让我害怕。我也在考虑在 EC2 机器上完成这项工作,但我失去了反应(如果我在不使用机器时关闭机器)或者我赔钱(如果我不关闭机器)。
有人告诉我 Kinesis 可能是一种解决方案,但我不相信。
如果您是我,请告诉我在 DynamoDB 中获取 huge CSV 文件的最佳方法是什么。我想尽量减少“第二次”上传的工作量。
我更喜欢使用 Node.js 或 R。Python 作为最后的解决方案可能是可以接受的。
【问题讨论】:
标签: node.js csv amazon-web-services amazon-s3 lambda