在 RDS for SQL Server 和 Amazon S3 之间传输文件 - Amazon Relational Database Service

在 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:::amzn-s3-demo-bucket/file_name。Amazon S3 不需要在 ARN 中使用账号或AWS区域。

S3 集成任务按顺序运行,并且与本机备份和还原任务共用同一队列。在此队列中,任何时候最多只能有两个正在进行的任务。任务可能需要长达五分钟时间才能开始处理。

将文件从 Amazon S3 存储桶下载到 SQL Server 数据库实例

要将文件从 S3 存储桶下载到 RDS for SQL Server 数据库实例,请使用具有以下参数的 Amazon RDS 存储过程 msdb.dbo.rds_download_from_s3

参数名称 数据类型 默认值 必需 描述

@s3_arn_of_file

NVARCHAR

必需

要下载的文件的 S3 ARN,例如:arn:aws:s3:::amzn-s3-demo-bucket/mydata.csv

@rds_file_path

NVARCHAR

可选

RDS 实例的文件路径。如果未指定,则文件路径为 D:\S3\<filename in s3>。RDS 支持绝对路径和相对路径。如果要创建子文件夹,请将其包含在文件路径中。

@overwrite_file

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

参数名称 数据类型 默认值 必需 描述

@s3_arn_of_file

NVARCHAR

必需

要在 S3 中创建的文件的 S3 ARN,例如:arn:aws:s3:::amzn-s3-demo-bucket/mydata.csv

@rds_file_path

NVARCHAR

必需

要上传到 S3 的文件的文件路径。支持绝对路径和相对路径。

@overwrite_file

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