Artículo
· 9 feb, 2024 Lectura de 5 min

Herramienta de migración de datos - Parte IV: de Microsoft SQL Server a IRIS

Esta es la cuarta parte de una serie de artículos sobre migración desde las principales bases de datos del mercado a InterSystems IRIS. En esta parte, explicaré los pasos para migrar desde Microsoft SQL Server.

Como describí en los anteriores artículos, actualmente hay varias opciones para hacer la migración. Sin embargo, las dos opciones más populares incluyen el uso de DBeaver (https://openexchange.intersystems.com/package/DBeaver) o SQLGateway. Explicaremos la primera opción aquí. La segunda opción fue explicada por Robert Cemper en un excelente artículo: Migración de base de datos usando SQLgateway.

Obtención de los datos de muestra para el proceso de migración

En Github es posible descargar un proyecto de docker-compose para crear y ejecutar dos bases de datos:

  • Source Database (Base de datos de origen): Instancia Docker de la base de datos SQL Server con una base de datos de muestra.
  • Target Database (Base de datos objetivo): Instancia Docker de InterSystems IRIS con un esquema preparado para recibir la base de datos de origen.

Para obtener la muestra y ejecutarla, hay que seguir estos pasos:

1.    Ir al repositorio git https://github.com/yurimarx/migration-mssql-iris y hacer clic en "Download".
2.    Clonar el proyecto: git clone  https://github.com/yurimarx/migration-mssql-iris.git.  
3.    Ir a la carpeta del proyecto migration-mssql-iris.
4.    Realizar el build: docker-compose build.
5.    Ejecutar los contenedores: docker-compose up -d.
6.    Comprobar si todo está bien con las instancias en el escritorio de tu Docker:

Sobre los datos que se van a migrar

En las dos primeras partes, trabajamos con una base de datos de ventas. En la parte III, usamos una base de datos DB2 de muestra (es una base de datos de ventas más completa). Ahora trabajaremos con la famosa base de datos de muestra AdventureWorks. Los datos que se van a migrar se representan aquí:

Esquemas de AdventureWorks

AdventureWorks es una base de datos de muestra, con 5 temas empresariales, uno para cada esquema. Así, tenemos tablas relacionadas con el tema Recursos Humanos (HR), datos personales (de clientes y trabajadores), Producción (Production), Compras (Purchasing) y Ventas (Sales).

Por lo tanto, el proceso de migración desde SQL Server a IRIS incluirá 6 esquemas y 70 tablas. Estos son los detalles de las tablas:

El destino de la migración será el esquema dc_test que se encuentra dentro del namespace USER en la base de datos de InterSystems IRIS.
 

Herramienta open-source para migrar de SQL Server a IRIS: DBeaver

DBeaver es una herramienta de bases de datos para conectar, crear, descartar, seleccionar, actualizar y eliminar objetos de datos en las principales bases de datos del mercado. Se puede descargar en Open Exchange: https://openexchange.intersystems.com/package/DBeaver. Y seguid las instrucciones de instalación para tener este magnífico producto en vuestro portátil o equipo de sobremesa.

DBeaver puede utilizarse para migrar datos entre conexiones de bases de datos, incluso si son de diferentes fabricantes y versiones.


Cómo conectar las bases de datos de origen y destino mediante DBeaver

Ahora vamos a establecer las conexiones de bases de datos que se van a migrar.

Para establecer la conexión de MS SQL a DBeaver, hay que seguir estos pasos:

1.    En DBeaver, ir a File > New.
2.    Seleccionar Database Connection y hacer clic en Next:

3.    Hacer clic en la pestaña SQL > SQL Server y después en Next:

4.    Completa los campos de conexión a SQL Server como se muestra en esta imagen:

●    Host: localhost
●    Port: 1433
●    Database: AdventureWorks
●    Username: SA
●    Password: MSSQLServer@2019
●    Hacer clic en OK.

Para configurar la conexión de InterSystems IRIS a DBeaver:


1.    En DBeaver, ir a File > New.
2.    Seleccionar Database Connection y hacer clic en Next:

3.    Hacer clic en la pestaña SQL > InterSystems IRIS y después en Next:

4.    Si DBeaver solicita descargar el driver de InterSystems IRIS, hacer clic en Sí u Ok.
5.    Completar los campos de conexión de InterSystems IRIS como se muestra en esta imagen:

●    Host: localhost
●    Database/Schema: user
●    Username: _SYSTEM
●    Password: SYS
●    Hacer clic en Test Connection y en OK.

Las conexiones (AdventureWorks y user) están disponibles en el Database Navigator:


Realizar la migración

Para realizar la migración hay que seguir estos pasos:

1.    Expandir la conexión de SQL Server > Schemas > HumanResources > Tables y seleccionar todas las tablas. Hacer clic derecho con el ratón sobre las tablas seleccionadas y elegir Export Data, así :

2.    Seleccionar Database, como se ve en esta imagen, y hacer clic en Next:

3.    Hacer clic en el botón Choose:

4.    Selecccionar dc_test y hacer clic en Ok.

5.    Ahora es necesario cambiar el campo rowguid del tipo de datos varchar(16) a varchar(50), porque algunas filas tienen más de 16 caracteres.

6.    Expandir la tabla AdventureWorks.HumanResources.Employee, seleccionar el campo rowguid y hacer clic en Columns…

7.    Cambiar el Target Type de VARCHAR(16) a VARCHAR(50) y hacer clic en Ok.  

8.    Repetir el mismo proceso con todas las otras tablas con el mismo campo en los otros esquemas.
9.    Ahora, cuando los Target Data Types hayan sido cambiados, hacer clic en Next.

10.    Establecer el Fetch size en 1000000 y hacer clic en Next.

11.    Aceptar los valores predeterminados en "Data load settings" y hacer clic en Next.

12.    En Confirm, hacer clic en Proceed.

13.    Ahora podréis ver en el Database Navigator todas las tablas de SQL Server dentro del esquema dc_test de InterSystems IRIS:

Repetid el proceso de migración con los otros esquemas.

El proceso de migración es muy sencillo en el caso de las tablas, pero en el caso de las vistas, funciones, triggers y procedimientos almacenados, será necesario reescribir el código fuente SQL utilizando ObjectScript o SQL.

Comentarios (0)1
Inicie sesión o regístrese para continuar