Artículo
· 14 jul, 2022 Lectura de 6 min

Herramienta de migración de datos - Parte I: de Postgres a IRIS

A veces es necesario transferir o migrar datos y esquemas de datos de Postgres a IRIS. Actualmente hay varias opciones para hacerlo, pero las dos más populares son DBeaver y SQLGateway. Ésta última es descrita por Robert Cemper en este excelente artículo: DB Migration using SQLgateway (Migración de base de datos usando SQLgateway).

Yo describiré en este artículo cómo realizar la migración utilizando DBeaver:

Obtener los datos de muestra para realizar el proceso de migración

En GitHub es posible descargar un proyecto de Docker Compose para crear y ejecutar 2 bases de datos:

  • Base de datos de origen: Instancia Docker para la base de datos PostgreSQL con una base de datos de muestra.
  • Base de datos objetivo: Instancia Docker para InterSystems IRIS con un esquema preparado para recibir la base de datos de origen.

Sigue estos pasos para obtener el ejemplo y ejecutarlo:

  1. Ve a https://github.com/yurimarx/migration-pg-iris y haz clic en Download para ir al repositorio de git.
  2. Clona el proyecto: git clone https://github.com/yurimarx/migration-pg-iris.git.  
  3. Ve a la carpeta del proyecto migration-pg-iris.
  4. Realiza la compilación: docker-compose build.
  5. Ejecuta los contenedores: docker-compose up -d.
  6. Consulta en tu escritorio Docker si las instancias están bien:

Sobre los datos que se van a migrar

Los datos que se van a migrar se representan aquí:

Así que el proceso de migración de PostgreSQL a IRIS migrará:

  • 08 tablas.
  • 1 000 000 de filas de "sale".
  • 250 000 filas de "users".
  • 300 filas de "product".
  • 500 filas de "store".
  • 100 filas de "country".
  • 30 filas de "city".
  • 5 filas de "status_name".

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 de código abierto para migrar de PostgreSQL a IRIS: DBeaver

DBeaver es una herramienta de gestión de base de datos para conectar, crear, seleccionar, actualizar y eliminar objetos de datos de las principales bases de datos del mercado. Descárgala en: https://openexchange.intersystems.com/package/DBeaver. Ahora, sigue las instrucciones de instalación para tener este magnífico producto en tu equipo.

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

Conectar las bases de datos de origen y destino mediante DBeaver

Ahora vamos a establecer las conexiones de las bases de datos que se van a migrar.
Para establecer la conexión de PostgreSQL con DBeaver:

  1. En DBeaver ve a File > New.

  2. Selecciona Database Connection y haz clic en Next:

  1. Selecciona la pestaña SQL > PostgreSQL y haz clic en Next:

  1. Completa los campos de conexión de PostgreSQL como se muestra en esta imagen:
Host: localhost Port: 5438 Database: postgres Username: postgres Password: postgres Haga clic en Finish.

Para establecer la conexión de InterSystems IRIS con DBeaver:

1.    En DBeaver ve a File > New.

2.    Selecciona Database Connection y haz clic en Next:

3.    Selecciona la pestaña SQL > InterSystems IRIS y haz clic en Next:

4.    Si DBeaver solicita que se descargue el controlador de InterSystems IRIS, pulse 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
  • Click Text Connection and Finish.
  1. Las conexiones (postgres y user) están disponibles en Database Navigator:

Realizar la migración

Sigue estos pasos para realizar la migración:
1.    Expande la conexión de postgres > public y selecciona todas las tablas. Con las tablas seleccionadas, haz clic con el botón derecho del ratón y elige Export Data, como se ve en esta imagen:

2.    Selecciona Database, como en esta imagen y haz clic en Next

3.    Haz clic en el botón Choose:

4.    Selecciona dc_test y haz clic en Ok.

5.    Ahora será necesario cambiar algunas configuraciones de tipos de datos para la base de datos de destino, ya que IRIS y PostgreSQL utilizan diferentes tipos de datos para valores enteros y decimales.
6.    Expande la tabla public.country, selecciona el primer campo (country_id) y haz clic en Columns…

7.    Cambia el Target Type de int4 a integer y haz clic en Ok.

8.    Repite el proceso con las tablas

a.    public.product.
b.    public.status_name.
c.    public.users.
d.    public.city (cambia el tipo a integer para city_id y country_id).
e.    public.store (cambia el tipo a integer para store_id y city_id).
f.    public.sale (cambia el type a double para amount e integer para product_id, user_id y store_id)

g.    public.order_status (cambia status_name_id a integer).

9.    Ahora, con los Target Data Types cambiados, haz clic en Next.

10.    Establece el Fetch size en 1000000 y haz clic en Next.

11.    Acepta los valores predeterminados de Data load settings y haz clic en Next.

12.    En Confirm haz clic en Proceed.

13.    Ahora podrás ver en el Navegador de bases de datos todas las tablas PostgreSQL que se encuentran dentro del esquema de InterSystems IRIS dc_test.

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.

¿Qué se obtiene al migrar a IRIS?

Esta lista resume lo que se obtiene en IRIS:

  • Gestión de API.
  • Informes visuales (IRIS Reports).
  • AutoML (IntegratedML).
  • Desarrollo de aplicación/datos multilenguaje (Python, Java, .NET, JavaScript).
  • ESB.
  • Inteligencia empresarial (BI)/Analíticas.
  • PLN.
  • Desarrollo de microservicios.
  • Base de datos multimodelo (SQL, JSON, cubos analíticos, orientada a objetos).
  • Sharding.

En resumen, al migrar a IRIS se obtiene una plataforma de datos, cuando antes solo se tiene una base de datos.

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