在 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\ 的資料夾 (如果此資料夾尚不存在)。然後,範例從 S3 將來源檔案 bulk_data.csv 下載至資料庫執行個體上名為 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;

因為 @overwrite_file 參數設為 1,如果檔案已事先存在於 S3,則會覆寫檔案。