将多个本地csv文件上载到AWS RDS

时间:2017-03-21 17:54:17

标签: amazon-web-services rds bigdata

将多个本地csv文件上传到AWS RDS的最快方法是什么? 我在本地计算机上有数千个csv文件中有100 Gbs的数据。

2 个答案:

答案 0 :(得分:0)

我看到了实现这一目标的两种方法:

1)创建一个本地postgres数据库并将您的CSV文件包装在本地postgres数据库中插入数据。然后,pg_dump将您的数据库的内容发送到本地.sql文件。然后,您可以将此.sql文件上传到S3。转储文件在S3中后,启动一个将转储文件psql打包到postgres RDS实例的E​​C2实例。

2)使用s3 sync将CSV文件复制到S3存储桶。接下来,旋转并逐个解析CSV行的EC2实例,并将数据插入RDS实例

在这两种情况下,您都希望从EC2实例中插入RDS实例中的数据,以最大程度地减少延迟。如果要从本地计算机在RDS实例中插入数据,则需要很长时间。由于AWS数据中心内部的网络邻近性,EC2实例与RDS实例之间的通信速度会快得多。

答案 1 :(得分:0)

要扩展@spg的答案:他是正确的,因为EC2到RDS将比RDS的本地更快 MUCH

  1. 因此,启动EC2实例并安装Postgres客户端psql
  2. 使用scp将CSV文件直接复制到EC2实例。
  3. 使用psql / copy命令从CSV导入项目:

    $psql target-db ^ -U <admin user> ^ -p <port> ^ -h <DB instance name> ^ -c "\copy source-table from '/path/to/source-table.csv' with DELIMITER ','"

  4. See AWS Documentation