将数据从CSV文件导入Amazon Web Services RDS MySQL数据库
我已经创建了一个托管在AmazonWeb服务上的关系数据库(MySQL)。我接下来要做的是,将本地CSV文件中的数据导入此数据库。如果有人能给我一个关于如何做的提纲,我将不胜感激。谢谢 我认为最好的办法是用您选择的语言开发一个脚本,以连接到数据库并导入它 如果数据库可以通过internet访问,则可以在本地运行该脚本。如果它位于专用子网中,则可以在访问专用子网的EC2实例上或在连接到VPC的lambda上运行该脚本。如果您希望运行时少于5分钟左右,那么实际上应该只使用lambda 编辑:注意lambda只支持少数语言 AWS Lambda支持使用Node.js(JavaScript)、Python和Java编写的代码 (与Java 8兼容)和C#(.NET内核)将数据从CSV文件导入Amazon Web Services RDS MySQL数据库,mysql,amazon-web-services,amazon-s3,mysql-workbench,amazon-rds,Mysql,Amazon Web Services,Amazon S3,Mysql Workbench,Amazon Rds,我已经创建了一个托管在AmazonWeb服务上的关系数据库(MySQL)。我接下来要做的是,将本地CSV文件中的数据导入此数据库。如果有人能给我一个关于如何做的提纲,我将不胜感激。谢谢 我认为最好的办法是用您选择的语言开发一个脚本,以连接到数据库并导入它 如果数据库可以通过internet访问,则可以在本地运行该脚本。如果它位于专用子网中,则可以在访问专用子网的EC2实例上或在连接到VPC的lambda上运行该脚本。如果您希望运行时少于5分钟左右,那么实际上应该只使用lambda 编辑:注意la
通过使用MySQL命令行,这是最简单、最省力的。对于大负载,考虑旋转一个新的EC2实例,安装MySQL CL工具,并将文件传输到该机器。然后,通过CL连接到数据库后,您将执行以下操作:
mysql> LOAD DATA LOCAL INFILE 'C:/upload.csv' INTO TABLE myTable;
还有一些选项可以匹配文件的详细信息并忽略标题(文档中还有很多)
如果您对使用CL犹豫不决,请下载MySQL Workbench。它将no prob连接到AWS RDS
结束语:
- AWS的Aurora RDS与MySQL兼容,所以命令也可以在那里使用
- “LOCAL”标志实际上将文件从客户机(运行命令的地方)传输到DB服务器。如果没有本地,文件必须位于DB服务器上(无法使用RDS提前将其传输到该服务器)
- 在大文件上也非常有效刚刚通过此方法发送了一个8.2GB文件(2.6亿行)。从t2中等EC2到db.t2小极光只花了10个多小时
- 如果需要注意唯一键或逐行读取CSV并在插入/更新之前更改数据,则这不是解决方案
还有另一个选项,您可以使用外部工具ALOMA,该工具可以实时为您导入数据。取决于文件的大小,但如果文件小于1GB,我发现DataGrip导入较小的文件时不会出现任何问题: 您可以使用很好的映射工具和图形化IDE。DataGrip可免费试用30天 我遇到自己的RDS连接丢失,文件较大,如>2GB。不确定是关于DataGrip还是AWS端
mysql> LOAD DATA LOCAL INFILE 'C:/upload.csv' INTO TABLE myTable FIELDS TERMINATED BY ','
ENCLOSED BY '"' IGNORE 1 LINES;