

# Transferencia de archivos entre RDS for SQL Server y Amazon S3
<a name="Appendix.SQLServer.Options.S3-integration.using"></a>

Puede utilizar los procedimientos almacenados de Amazon RDS para descargar y cargar archivos entre Amazon S3 y su instancia de base de datos de RDS. También puede utilizar los procedimientos almacenados de Amazon RDS para visualizar y eliminar los archivos de la instancia de RDS.

Los archivos que descarga desde y carga a S3 se almacenan en la carpeta `D:\S3`. Esta es la única carpeta que puede utilizar para acceder a los archivos. Puede organizar los archivos en subcarpetas, que se crean cuando incluye la carpeta de destino durante la descarga.

Algunos procedimientos almacenados necesitan que asigne un nombre de recurso de Amazon (ARN) al bucket de S3 y al archivo. El formato del ARN es `arn:aws:s3:::amzn-s3-demo-bucket/file_name`. Amazon S3 no requiere un número de cuenta ni una región de AWS en los ARN.

Las tareas de integración de S3 se ejecutan de forma secuencial y comparten la misma cola que las tareas de restauración y copia de seguridad nativas. Como máximo, solo puede tener dos tareas en curso en cualquier momento en esta cola. La tarea puede tardar hasta cinco minutos en comenzar a procesarse.

## Descarga de archivos desde un bucket de Amazon S3 a una instancia de base de datos de SQL Server
<a name="Appendix.SQLServer.Options.S3-integration.using.download"></a>

Para descargar archivos desde un bucket de S3 a una instancia de base de datos de RDS for SQL Server, utilice el Amazon RDS procedimiento almacenado `msdb.dbo.rds_download_from_s3` con los siguientes parámetros.


| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `@s3_arn_of_file`  |  NVARCHAR  |  –  |  Obligatorio  |  El ARN de S3 del archivo que desea descargar, por ejemplo: `arn:aws:s3:::amzn-s3-demo-bucket/mydata.csv`  | 
|  `@rds_file_path`  |  NVARCHAR  |  –  |  Opcional  |  La ruta del archivo de la instancia de RDS. Si no se especifica, la ruta del archivo es `D:\S3\<filename in s3>`. RDS admite rutas absolutas y relativas. Si desea crear una subcarpeta, inclúyala en la ruta del archivo.  | 
|  `@overwrite_file`  |  INT  |  0  |  Opcional  | Sobrescribir el archivo existente:  0 = No sobrescribir 1 = Sobrescribir | 

Puede descargar archivos sin una extensión de archivo y archivos con las siguientes extensiones de archivo: .bcp, .csv, .dat, .fmt, .info, .lst, .tbl, .txt y .xml.

**nota**  
Los archivos con la extensión de archivo .ispac se pueden descargar cuando SQL Server Integration Services está habilitado. Para obtener más información sobre la habilitación de SSIS, consulte [SQL Server Integration Services](Appendix.SQLServer.Options.SSIS.md).  
Los archivos con las siguientes extensiones de archivo se pueden descargar cuando SQL Server Analysis Services está habilitado: .abf, .asdatabase, .configsettings, .deploymentoptions, .deploymenttargets y .xmla. Para obtener más información sobre cómo habilitar SSAS, consulte [SQL Server Analysis Services](Appendix.SQLServer.Options.SSAS.md).

En el siguiente ejemplo se muestra el procedimiento almacenado para descargar archivos desde 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;
```

La operación de ejemplo `rds_download_from_s3` crea una carpeta denominada `seed_data` en `D:\S3\`, si la carpeta no existe. A continuación, el ejemplo descarga el archivo de origen `bulk_data.csv` desde S3 a un nuevo archivo denominado `data.csv` en la instancia de base de datos. Si el archivo existía previamente, se sobrescribe porque el parámetro `@overwrite_file` está establecido en `1`.

## Carga de archivos desde una instancia de base de datos de SQL Server a un bucket de Amazon S3
<a name="Appendix.SQLServer.Options.S3-integration.using.upload"></a>

Para cargar archivos desde una instancia de base de datos de RDS for SQL Server en un bucket de S3, utilice el el Amazon RDS procedimiento almacenado `msdb.dbo.rds_upload_to_s3` con los siguientes parámetros.


| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `@s3_arn_of_file`  |  NVARCHAR  |  –  |  Obligatorio  |  El ARN de S3 del archivo que desea crear en S3, por ejemplo: `arn:aws:s3:::amzn-s3-demo-bucket/mydata.csv`  | 
|  `@rds_file_path`  |  NVARCHAR  |  –  |  Obligatorio  | La ruta del archivo que desea cargar en S3. Se admiten rutas relativas y absolutas. | 
|  `@overwrite_file`  |  INT  |  –  |  Opcional  |  Sobrescribir el archivo existente:  0 = No sobrescribir 1 = Sobrescribir  | 

En el siguiente ejemplo se carga el archivo denominado `data.csv` desde la ubicación especificada en `D:\S3\seed_data\` al archivo `new_data.csv` del bucket de S3 que especifica el ARN.

```
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;
```

Si el archivo existía previamente en S3, se sobrescribe porque el parámetro @overwrite\$1file está establecido en `1`.