Replicando SAP ASE a Amazon Redshift con AWS DMS
Tags: awsdms, redshift, database, spanish
Published: 2021-04-25 03:31:43


Continuando con la introducción de **AWS DMS (Database Migration Service)**, realizaremos una replicación de base de datos cuando el origen es **SAP ASE** hacia **Amazon Redshift** usando **AWS DMS**.

###Definiciones  

####AWS DMS
*“AWS Database Migration Service ayuda a migrar las bases de datos a AWS de manera rápida y segura. La base de datos de origen permanece totalmente operativa durante la migración, lo que minimiza el tiempo de inactividad de las aplicaciones que dependen de ella. AWS Database Migration Service puede migrar datos hacia y desde la mayoría de las bases de datos comerciales de código abierto de uso más generalizado.”* [1]

####Amazon Redshift
*“Amazon Redshift es un servicio de almacenamiento de datos en la nube completamente administrado a escala de petabytes. Puede comenzar con solo unos cientos de gigabytes de datos y, luego, ampliarlos a un petabyte o más. Esto le permite usar los datos para adquirir nuevos desarrollos para su empresa y sus clientes.”* [2]

####SAP ASE
Es una base de datos relacional la cual fue adquirida hace algunos años por SAP, ASE es Adaptive Server Enterprise (ASE) y es el motor de bases de datos (RDBMS). ASE es un sistema de gestión de datos, altamente escalable, de alto rendimiento, con soporte a grandes volúmenes de datos, transacciones y usuarios, y de bajo costo. [3]

####A continuación, ejemplo del proceso replicación 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xd39lf7zjqezydmsjtmz.png)
 


####Antes de iniciar las configuraciones, algunas consideraciones importantes
* AWS DMS soporta SAP ASE versiones **12.5.3 o superior, 15, 15.5, 15.7, 16** y posteriores como fuentes.
* Revisar: Limitaciones en el uso de SAP ASE como fuente para AWS DMS [4]
* Revisar: Requisitos previos para usar una base de datos SAP ASE como fuente para AWS DMS [5]

###Pasos 

* Creamos una base de datos en **SAP ASE** llamada **formula1** la cual tiene una tabla de nombre: **pilotos** que contiene algunos pilotos de Formula 1 con el dato de la Scuderia la cual iniciaron.

* Creamos nuestro replicador en **AWS DMS**, para efectos de demostración podemos usar una instancia pequeña.
 
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h03nrq320xupxdmkyd6y.png)
  
 
* Luego, creamos dos conexiones(endpoints), una de origen (source) que será nuestro **SAP ASE** que esta en una **instancia EC2** y otra como destino (target) para Amazon Redshift. 
 
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/377uf6rdsge6t05wtglt.png)
  
* Validamos que las conexiones estén activas, realizando una prueba desde el replicador y la conexión creada.

* Creamos una nueva tarea (task) en AWS DMS la cual contiene: 

       a. Origen (SAP ASE) y destino (Amazon Redshift).

       b. Replicador creado anteriormente.

       c. Tipo de migración (migration type) usaremos *“Migrate existing data and replicate ongoing changes”* Migre los datos existentes y replique los cambios en curso: realice una migración única desde el origen al destino y luego continúe replicando los cambios de datos desde el origen al destino.

       d. Asignaciones de tablas (Table mappings) creando la siguiente regla:

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tmdh5woihw5u06hq1969.png)
  

e. Activamos los logs de CloudWatch para realizar el seguimiento de los eventos de la tarea y si existe alguna advertencia o error podamos revisar a detalle. 

f. Finalizamos los pasos creando la tarea y continuamos con el inicio de esta, ejecutando *Start*.



* Validamos que la tarea se ejecutó y realizo el volcado de los datos, para ello, vemos en la consola de AWS en la sección de DMS.

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1t17sdub7klqh2cib53r.png)
  


* Y en el base de datos conectándonos a **Amazon Redshift** desde la consola de AWS visualizamos los datos:
 
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1co1jrpb6extq3cx61a3.png)
  

####Veamos un ejemplo de replicación 
• Insertar nuevos datos **(Niki Lauda)**
• Modificar datos **(Scuderia Jordan - Rubens Barrichello y Michael Schumacher)**
• Eliminar datos **(Damon Hill)**


* Cuando realizamos los cambios de datos en el origen, podemos ver en la tarea de ejecución de **AWS DMS** la cantidad de cambios que hemos realizado.

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x97urzcs7w7h4wjvwobe.png)
  
 


* Volvemos a **Amazon Redshift** en la consola y observamos si los cambios fueron replicados
 
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/szlwf7oyma2hrsd1ohbj.png)
  
####Resumen
Con el ejemplo realizado, pudimos ver cómo crear una replicación de origen **SAP ASE** hacia **Amazon Redshift** usando **AWS DMS**, agregar, eliminar y modificar datos.

Es **importante** mencionar, que este es un ejemplo básico, sin embargo, cuando usamos **AWS DMS** para migraciones y replicaciones siempre recomiendo usar **AWS Schema Tool**, la cual es una excelente herramienta como lo mencione en mi artículo anterior, adicional  podemos realizar preevaluación **(pre-assessment)** antes de realizar ejecutar una tarea en **AWS DMS**.

También recomiendo revisar documentación de **AWS DMS** para los orígenes preparar, en este ejemplo vimos **SAP ASE**, sin embargo para todos los motores de base de datos hay información de interés.[6] 

**Recomendado: 
AWS DMS Workshop https://dms-immersionday.workshop.aws/en/**

[1]: https://aws.amazon.com/dms/
[2]: https://aws.amazon.com/es/redshift/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc
[3]: https://www.sap.com/products/sybase-ase.html
[4]: https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html#CHAP_Source.SAP.Limitations
[5]: https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html#CHAP_Source.SAP.Prerequisites
[6]:https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html