是否有任何示例可以找到如何将数据从Amazon S3内的CSV文件复制到Microsoft SQL Server Amazon RDS?
在文档中,仅提及有关从本地数据库将数据导入RDS的内容。
方法将是-您必须启动一个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中缝合在一起。
似乎他们设置了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'
)