将多个本地 csv 文件上传到 AWS RDS
Upload multiple local csv files to AWS RDS
将多个本地 csv 文件上传到 AWS RDS 的最快方法是什么?
我在本地计算机上有数千个 csv 文件中的 100 Gbs 数据。
我看到了两种实现方式:
1) 创建本地 postgres 数据库并解析 CSV 文件以将数据插入本地 postgres 数据库。然后,pg_dump
您的数据库内容到本地 .sql
文件。然后您可以将此 .sql
文件上传到 S3。转储文件在 S3 中后,启动一个 EC2 实例,将转储文件 psql
发送到您的 postgres RDS 实例。
2) 使用 s3 sync
将您的 CSV 文件复制到 S3 存储桶。接下来,启动 EC2 实例,它将逐行解析您的 CSV 行,并将数据插入到您的 RDS 实例中
在这两种情况下,您都希望将数据从 EC2 实例插入到 RDS 实例中,以最大程度地减少延迟。如果您要从本地计算机向 RDS 实例中插入数据,这将花费很长时间。由于 AWS 数据中心内的网络接近,EC2 实例和 RDS 实例之间的通信将更快。
扩展@spg 的回答:他是正确的,EC2 到 RDS 比本地到 RDS 快 MUCH。
- 因此启动一个 EC2 实例并安装 Postgres 客户端
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 ','"
将多个本地 csv 文件上传到 AWS RDS 的最快方法是什么? 我在本地计算机上有数千个 csv 文件中的 100 Gbs 数据。
我看到了两种实现方式:
1) 创建本地 postgres 数据库并解析 CSV 文件以将数据插入本地 postgres 数据库。然后,pg_dump
您的数据库内容到本地 .sql
文件。然后您可以将此 .sql
文件上传到 S3。转储文件在 S3 中后,启动一个 EC2 实例,将转储文件 psql
发送到您的 postgres RDS 实例。
2) 使用 s3 sync
将您的 CSV 文件复制到 S3 存储桶。接下来,启动 EC2 实例,它将逐行解析您的 CSV 行,并将数据插入到您的 RDS 实例中
在这两种情况下,您都希望将数据从 EC2 实例插入到 RDS 实例中,以最大程度地减少延迟。如果您要从本地计算机向 RDS 实例中插入数据,这将花费很长时间。由于 AWS 数据中心内的网络接近,EC2 实例和 RDS 实例之间的通信将更快。
扩展@spg 的回答:他是正确的,EC2 到 RDS 比本地到 RDS 快 MUCH。
- 因此启动一个 EC2 实例并安装 Postgres 客户端
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 ','"