Esta es la tercera 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 DB2. 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 () o SQLGateway. Explicaremos la primera opción aquí. La segunda opción fue explicada por @Robert.Cemper1003 en un excelente artículo: [Migración de base de datos usando SQLgateway](https://es.community.intersystems.com/post/migraci%C3%B3n-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 DB2 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, sigue estos pasos:** 1. Ve al repositorio git: https://github.com/yurimarx/migration-db2-iris. 2. Clona el proyecto: git clone https://github.com/yurimarx/migration-db2-iris.git.   3. Ve a la carpeta del proyecto migration-db2-iris. 4. Realiza el _build_: docker-compose build. 5. Ejecuta los contenedores: docker-compose up -d. 6. Comprueba en el escritorio de tu docker con las instancias si todo está bien: ![](/sites/default/files/inline/images/images/image(3531).png) ## Sobre los datos que se van a migrar En las dos primeras partes, trabajamos con una base de datos de ventas. Sin embargo, DB2, cuando se instala, viene con una base de datos de muestra (es una base de datos de ventas más completa), y será la que usemos en este artículo. Los datos que se van a migrar se representan aquí: ![](/sites/default/files/inline/images/images/image(3532).png) Por lo tanto, el proceso de migración de DB2 a IRIS incluirá 22 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 DB2 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: . Y sigue las instrucciones de instalación para tener este magnífico producto en tu 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 DB2 a DBeaver:** 1.    Antes de conectar DB2 por primera vez, espera de 5 a 10 minutos. Este es el tiempo que el _script_ de DB2 necesita para construir la base de datos de muestra después de la creación de la instancia de Docker. 2.    En DBeaver, ve a File > New. 3.    Selecciona Database Connection y haz clic en Next: ![](/sites/default/files/inline/images/images/image(3533).png) 4.    Haz clic en la pestaña SQL > DB2 LUW y luego en Next: ![](/sites/default/files/inline/images/images/image(3534).png) 5.    Completa los campos de conexión a DB2 en la pestaña Main, como se muestra en esta imagen :
●    Host: localhost●    Port: 50000●    Database: sample●    Username: db2inst1●    Password: password●    Haz clic en Finish.
**Para configurar la conexión de InterSystems IRIS a** **DBeaver:** 1.    En DBeaver, ve a File > New. 2.    Selecciona Database Connection y haz clic en Next: ![](/sites/default/files/inline/images/images/image(3537).png) 3.    Haz clic en la pestaña SQL > InterSystems IRIS y luego en Next: ![](/sites/default/files/inline/images/images/image(3538).png) 4.    Si DBeaver solicita descargar el driver de InterSystems IRIS, haz clic en Sí u Ok. 5.    Completa los campos de conexión de InterSystems IRIS como se muestra en esta imagen:
●    Host: localhost●    Database/Schema: user●    Username: _SYSTEM●    Password: SYS●    Haz clic en Test Connection y en Finish
Las conexiones (db y user) están disponibles en Database Navigator: ![](/sites/default/files/inline/images/images/image(3540).png) ## Realizar la migración Para realizar la migración hay que seguir estos pasos: 1.    Expande la conexión de muestra (DB2 connection) > public y selecciona todas las tablas. Haz clic derecho con el ratón sobre las tablas seleccionadas y elige Export Data, así: ![](/sites/default/files/inline/images/images/image(3541).png) 2.    Selecciona Database, como se ve en esta imagen, y haz clic en Next: ![](/sites/default/files/inline/images/images/image(3542).png) 3.    Haz clic en el botón Choose: ![](/sites/default/files/inline/images/images/image(3543).png) 4.     Selecciona dc_test y haz clic en Ok. ![](/sites/default/files/inline/images/images/image(3544).png) 5.    Ahora será necesario cambiar algunas configuraciones de tipos de datos para la base de datos de destino, porque  IRIS y DB2 utilizan diferentes tipos de datos para almacenar valores XML. 6.    Expande la tabla DB2INST1.CATALOG, selecciona el campo CATALOG (es un tipo de campo XML) y haz clic en Columns… ![](/sites/default/files/inline/images/images/image(3545).png) 7.    Cambia el Target Type de LONGVARBINARY a VARCHAR(10000) y haz clic en Ok.   ![](/sites/default/files/inline/images/images/image(3546).png) 8.    Repite el proceso con las tablas

a.    CUSTOMER, campos INFO y HISTORY.
b.    PRODUCT, campo DESCRIPTION.
c.    SUPPLIERS, campo ADDR.
d.    PURCHASEORDER, campo PORDER.

9.    Ahora, con los Target Data Types cambiados, haz clic en Next. ![](/sites/default/files/inline/images/images/image(3547).png) 10.    Establece el Fetch size en 1000000 y haz clic en Next. ![](/sites/default/files/inline/images/images/image(3548).png) 11.    Acepta los valores predeterminados de Data load settings y haz clic en Next. ![](/sites/default/files/inline/images/images/image(3549).png) 12.    En Confirm haz clic en Proceed. ![](/sites/default/files/inline/images/images/image(3550).png) 13.    Ahora podrás ver en el Navegador de bases de datos todas las tablas DB2 que se encuentran dentro del esquema de InterSystems IRIS dc_test ![](/sites/default/files/inline/images/images/image(3551).png) 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.