sql >> Base de Datos >  >> RDS >> Database

Replicación incremental de datos en IRI Workbench

Nuestro primer artículo sobre la replicación de datos en la GUI de IRI Workbench para NextForm (edición DB) o Voracity demostró cómo copiar y transformar datos a medida que pasaban de Oracle a dos destinos. Este artículo muestra cómo sincronizar incrementalmente una tabla de producción y una de respaldo en bases de datos separadas.

En este caso, la base de datos de producción es Oracle, la base de datos de respaldo es MySQL y la tabla se denomina SG_TRANSACTIONS en ambos. Hay filas de transacciones que contienen el número de cuenta, el tipo de transacción, la fecha de la transacción y el monto de la transacción con los nombres de columna ACCT_NUM, TRANSTYPE, TRANS_DATE y TRANS_AMOUNT.

Tenga en cuenta que también puede crear tablas definiendo y ejecutando sentencias en archivos SQL dentro de IRI Workbench.

Ejecutar el Asistente

Hay asistentes en IRI Workbench que se pueden usar para crear un script de trabajo de migración que copiará las filas de una tabla a otra. En este caso, replicaremos los datos de la tabla SG_TRANSACTIONS de ORACLE en la tabla SG_TRANSACTIONS de MySQL.

Previamente creé el proyecto Replicación. Deberíamos hacer clic en esa carpeta en el Explorador de proyectos para resaltar el proyecto antes de ejecutar el asistente. Esto asegura que el asistente guardará mi script de trabajo en esa carpeta. Nuestro trabajo de replicación se creará a través de un asistente disponible en el Menú NextForm en la barra de herramientas.

Para ejecutar el asistente, haga clic en la flecha junto al icono de NextForm. Tenga en cuenta que en el artículo anterior usamos el Nuevo trabajo de reformateo asistente porque uno de los destinos fue filtrado, enmascarado y reformateado. Dado que este caso es una replicación directa, usaremos el Nuevo trabajo de migración de fuente única asistente en su lugar.

En la primera pantalla del asistente llamada Archivo de especificación de trabajo , verifique que la Carpeta El campo tiene Replicación como el valor (nombre del proyecto). En el Nombre de archivo campo, escriba el nombre del script de trabajo que estamos creando; Lo llamé SG_Transaction_Transfer. Seleccione Crear secuencia de comandos botón de radio, luego seleccione Siguiente para ir a Migración de fuente única ventana.

En Información de origen , seleccione Examinar junto a la Fuente campo. Ahora seleccione el ODBC botón de radio en la fuente de datos y haga clic en Examinar botón.

En la Selección de tabla ODBC ventana, seleccione el DSN de la lista desplegable; luego seleccione el Nombre de la tabla, y haga clic en Aceptar . ODBC se utiliza para conectarse a nuestras tablas de base de datos de origen y de destino cuando se mueven datos mediante nuestros scripts de trabajo. Haga clic en Aceptar de nuevo para volver a la Migración de fuente única ventana.


Explore o descubra sus metadatos de origen

Todos los programas IRI requieren diseños de metadatos para sus fuentes y destinos de datos en un formato de archivo de definición de datos (DDF) estándar. Estos diseños normalmente se crean una vez, se almacenan centralmente y se utilizan como referencias para sus mapas y modelos.

Si ya se ha creado un archivo de metadatos, en Información de origen , haga clic en Examinar junto a los Metadatos campo. En Abrir metadatos ventana, seleccione el archivo de metadatos en Elementos coincidentes cuadro que define las columnas en el SG_TRANSACTIONS mesa. Luego haga clic en Aceptar para volver a la migración de origen único ventana.

Si necesita crear el archivo de metadatos ahora, seleccione Descubrir botón. Esto lo lleva a la Configuración Opciones ventana. Verifique que la carpeta sea /el nombre de su proyecto /metadatos. En el Nombre de archivo campo, escriba el nombre del archivo de metadatos y haga clic en Siguiente . En la Identificación de la fuente de datos ventana, verifique que los campos se hayan completado correctamente y haga clic en Siguiente para ir al Visor y editor de datos de campo ventana.

La mitad superior de la ventana tiene los nombres de las columnas y una muestra de los registros de la tabla, si los hay. La mitad inferior tiene el campo Nombre para ser utilizado en el script de trabajo, datos equivalentes de IRI Tipo para la base de datos original Tipo de fuente , y el ordinal Posición del campo (columna). Haga clic en Finalizar .


Ahora está de vuelta en la migración de fuente única ventana.

Definir el objetivo

En Información de destino , seleccione Examinar junto al campo de Objetivo . Ahora, en el objetivo de datos ventana, seleccione el ODBC botón de opción y haga clic en Examinar junto al ODBC campo. Luego seleccione la salida DSN y Nombre de la tabla (Twister MYSQL y SG_Transactions) en la Selección de tabla ODBC ventana. Asegúrese de seleccionar la casilla para Copiar metadatos de la fuente . Haga clic en Aceptar, y haga clic en Aceptar de nuevo.

Toda la información necesaria se encuentra ahora en Migración de fuente única ventana. Haga clic en Finalizar .


La secuencia de comandos del lenguaje de control NextForm SG_Transaction_Transfer.ncl se crea y se puede ver en el editor de texto con reconocimiento de sintaxis codificado por colores de IRI Workbench.

Replicar los nuevos registros

Este script copiará todas las filas que existen en SG_TRANSACTIONS tabla en Oracle a la tabla con el mismo nombre en MySQL. Pero, después de la primera ejecución, solo queremos copiar nuevas filas en la tabla de respaldo. Para hacer esto, debemos agregar una instrucción /QUERY a la sección de entrada del script del trabajo para que solo se procesen las filas más nuevas cada vez que ejecute el trabajo (ad hoc o programado).

Para modificar el script desde el editor de IRI Workbench, haga clic con el botón derecho en el cuerpo del script. Seleccione IRI , luego Editar fuentes . En las Fuentes de datos ventana de diálogo, seleccione Editar opciones de fuente .

En la parte inferior de las Opciones de fuente la ventana es una Consulta campo. Aquí es donde agregamos la declaración de consulta SQL que solo seleccionará las filas más nuevas de la tabla de Oracle. Asumiremos que este es un proceso de fin de mes. La siguiente instrucción QUERY filtra las filas por un intervalo de un mes, pero podemos elegir cualquier intervalo. En lugar de usar fechas específicas en el script, también podríamos usar variables de entorno para especificar el intervalo.

select * from NIGHTLY.SG_TRANSACTIONS where to_char(TRANS_DATE, 'YYYY-MM-DD') > 
'2016-11-30' AND  (to_char(TRANS_DATE, 'YYYY-MM-DD') < '2017-01-01')"

Ahora haga clic en Aceptar , luego Finalizar para actualizar y guardar nuestro script de trabajo original creado por el asistente con la nueva instrucción /QUERY dentro:

La primera vez que se ejecuta el script, se debe comentar la instrucción /QUERY porque queremos que se copien todos los registros. Después de eso, queremos ejecutar con la instrucción /QUERY para replicar filas de un intervalo de fechas que aún no se ha copiado en la tabla de respaldo.

Este trabajo se puede ejecutar desde la GUI o desde la línea de comandos donde se licencia un ejecutable de la edición de base de datos de NextForm, Voracity o CoSort (sortcl).

Aquí hay una muestra de filas en la tabla de producción:

Y aquí hay una muestra de filas en la tabla de copia de seguridad antes de ejecutar la copia de seguridad de fin de mes de diciembre. Por lo tanto, las filas de esta tabla actualmente solo llegan hasta finales de noviembre.

Después de ejecutar nuestro trabajo de replicación con la instrucción /QUERY, solo se agregan los registros de diciembre a la tabla de respaldo. Observe que hay un registro de enero en la tabla de producción, pero este registro no se ha copiado en la tabla de respaldo porque el valor de fecha para esa fila está fuera de nuestro rango especificado.

También es posible agregar funciones de enmascaramiento a nivel de columna para cada destino, como muestra el siguiente trabajo:

Vea este ejemplo de replicación entre Oracle y MongoDB. Para obtener ayuda para replicar datos de forma única o recurrente, envíe un correo electrónico a [email protected].