亚马逊s3到亚马逊SQL Server rds的CSV文件

时间:2015-02-18 18:29:36

标签: amazon-web-services amazon-s3 amazon-rds

是否有任何示例我可以找到如何将数据从Amazon S3内的CSV文件复制到Microsoft SQL Server Amazon RDS?

在文档中,它只提到了将数据从本地数据库导入RDS。

2 个答案:

答案 0 :(得分:0)

方法就像 - 你必须启动EC2实例并将S3 CSV文件复制到其中,然后从那里你必须使用批量插入命令。例如:

BULK INSERT SchoolsTemp
FROM 'Schools.csv'
WITH
(
    FIRSTROW = 2,
    FIELDTERMINATOR = ',',  --CSV field delimiter
    ROWTERMINATOR = '\n',   --Use to shift the control to next row
    TABLOCK
)

所有这些都可以在AWS Data Pipeline中拼接在一起。

答案 1 :(得分:0)

看起来他们设置了Sql Server RDS与S3的集成。我发现this aws docs article对其进行了详细解释。

设置正确的凭据后,它们似乎会添加特定的存储过程以下载(并上传/删除)到D:\S3目录中。我个人还没有这样做,但是我想分享一下,因为在另一篇文章的评论中提到不支持BULK INSERT。但这将为BULK INSERT使用s3中的文件提供一种方式。

将文件复制到RDS实例:

exec msdb.dbo.rds_download_from_s3
        @s3_arn_of_file='arn:aws:s3:::bucket_name/bulk_data.csv',
        @rds_file_path='D:\S3\seed_data\data.csv',
        @overwrite_file=1; 

然后运行BULK INSERT

BULK INSERT MyData
FROM 'D:\S3\seed_data\data.csv'
WITH
(
    FIRSTROW = 2,
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n'
)