将多个本地csv文件上传到AWS RDS的最快方法是什么? 我在本地计算机上有数千个csv文件中有100 Gbs的数据。
答案 0 :(得分:0)
我看到了实现这一目标的两种方法:
1)创建一个本地postgres数据库并将您的CSV文件包装在本地postgres数据库中插入数据。然后,pg_dump
将您的数据库的内容发送到本地.sql
文件。然后,您可以将此.sql
文件上传到S3。转储文件在S3中后,启动一个将转储文件psql
打包到postgres RDS实例的EC2实例。
2)使用s3 sync
将CSV文件复制到S3存储桶。接下来,旋转并逐个解析CSV行的EC2实例,并将数据插入RDS实例
在这两种情况下,您都希望从EC2实例中插入RDS实例中的数据,以最大程度地减少延迟。如果要从本地计算机在RDS实例中插入数据,则需要很长时间。由于AWS数据中心内部的网络邻近性,EC2实例与RDS实例之间的通信速度会快得多。
答案 1 :(得分:0)
要扩展@spg的答案:他是正确的,因为EC2到RDS将比RDS的本地更快 MUCH 。
psql
。scp
将CSV文件直接复制到EC2实例。使用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 ','"