在 RDS for SQL Server 和 Amazon S3 之间传输文件
您可以使用 Amazon RDS 存储过程在 Amazon S3 和 RDS 数据库实例之间下载和上传文件。您还可以使用 Amazon RDS 存储过程来列出和删除 RDS 实例上的文件。
您从 S3 下载和上传到 S3 的文件存储在 D:\S3
文件夹中。这是可用于访问文件的唯一文件夹。您可以将文件组织到子文件夹中,这些子文件夹是您在下载过程中包含目标文件夹时为您创建的。
某些存储过程要求您向 &S3 存储桶和文件提供 Amazon Resource Name (ARN)。您的 ARN 的格式为 arn:aws:s3:::
。Amazon S3 不需要在 ARN 中使用账号或Amazon区域。amzn-s3-demo-bucket
/file_name
S3 集成任务按顺序运行,并且与本机备份和还原任务共用同一队列。在此队列中,任何时候最多只能有两个正在进行的任务。任务可能需要长达五分钟时间才能开始处理。
将文件从 Amazon S3 存储桶下载到 SQL Server 数据库实例
要将文件从 S3 存储桶下载到 RDS for SQL Server 数据库实例,请使用具有以下参数的 Amazon RDS 存储过程 msdb.dbo.rds_download_from_s3
。
参数名称 | 数据类型 | 默认值 | 必需 | 描述 |
---|---|---|---|---|
|
NVARCHAR |
– |
必需 |
要下载的文件的 S3 ARN,例如: |
|
NVARCHAR |
– |
可选 |
RDS 实例的文件路径。如果未指定,则文件路径为 |
|
INT |
0 |
可选 |
覆盖现有文件: 0 = 不覆盖 1 = 覆盖 |
您可以下载不带文件扩展名的文件和具有以下文件扩展名的文件:.bcp、.csv、.dat、.fmt、.info、.lst、.tbl、.txt 和 .xml。
注意
启用 SQL Server Integration Services 时,支持下载具有 .ispac 文件扩展名的文件。有关启用 SSIS 的更多信息,请参阅SQL Server Integration Services。
启用 SQL Server Analysis Services 时,支持下载具有以下文件扩展名的文件:.abf、.asdatabase、.configsettings、.deploymentoptions、.deploymenttargets 和 .xmla。有关启用 SSAS 的更多信息,请参阅SQL Server Analysis Services。
以下示例显示了从 S3 下载文件的存储过程。
exec msdb.dbo.rds_download_from_s3 @s3_arn_of_file='arn:aws:s3:::
amzn-s3-demo-bucket
/bulk_data.csv
', @rds_file_path='D:\S3\seed_data\data.csv
', @overwrite_file=1
;
示例 rds_download_from_s3
操作在 seed_data
中创建一个名为 D:\S3\
的文件夹(如果该文件夹尚不存在)。然后,该示例将源文件 bulk_data.csv
从 S3 下载到数据库实例上名为 data.csv
的新文件。如果以前存在此文件,则会覆盖它,因为 @overwrite_file
参数设置为 1
。
将文件从 SQL Server 数据库实例上传到 Amazon S3 存储桶
要将文件从 RDS for SQL Server 数据库实例上传到 S3 存储桶,请使用具有以下参数的 Amazon RDS 存储过程 msdb.dbo.rds_upload_to_s3
。
参数名称 | 数据类型 | 默认值 | 必需 | 描述 |
---|---|---|---|---|
|
NVARCHAR |
– |
必需 |
要在 S3 中创建的文件的 S3 ARN,例如: |
|
NVARCHAR |
– |
必需 |
要上传到 S3 的文件的文件路径。支持绝对路径和相对路径。 |
|
INT |
– |
可选 |
覆盖现有文件: 0 = 不覆盖 1 = 覆盖 |
以下示例将名为 data.csv
的文件从 D:\S3\seed_data\
中的指定位置上传到 ARN 指定的 S3 存储桶中的 new_data.csv
文件。
exec msdb.dbo.rds_upload_to_s3 @rds_file_path='D:\S3\
seed_data\data.csv
', @s3_arn_of_file='arn:aws:s3:::amzn-s3-demo-bucket
/new_data.csv
', @overwrite_file=1
;
如果 S3 中以前存在此文件,则会覆盖它,因为 @overwrite_file 参数设置为 1
。