Inicio > Business Analytics > Changed Data Capture (CDC) con Oracle Data Integrator (ODI)

Changed Data Capture (CDC) con Oracle Data Integrator (ODI)

cdc_petitEn los proyectos de integración de datos, una optimización muy importante es la detección de cambios (CDC) producidos por otras aplicaciones en el origen de datos, ya que si somos capaces de aislar los registros modificados (nuevos o eliminados) podremos reducir drásticamente el volumen de datos a procesar para tener las BD de origen y destino “sincronizadas”, tratando sólo los datos realmente necesarios.

En líneas generales, un mecanismo de CDC debería:

  • Detectar y registrar los cambios producidos en el origen.
  • Trasladar la información modificada a la BD destino.
  • Purgar el registro de cambios una vez procesados en destino.

CDC es una de las características estándar de Oracle Data Integrator (ODI), y vamos a explicar a continuación su arquitectura y funcionamiento.

ODI ofrece dos modos de registro de cambios (journalizing) en el origen de datos:

  • Simple: Registra los cambios en cada tabla de manera independiente.
  • Consistente: Registra los cambios en conjuntos de tablas, manteniendo la integridad referencial en el conjunto.

CDC funciona siguiendo un modelo de publicación/suscripción, en el que participan los siguientes elementos:

  • Journals (registro de cambios): Una relación de registros modificados con el tipo de cambio (alta/baja/modificación).
  • Procesos de captura: Son los responsables de mantener los “Journals” y pueden implementarse de diferentes maneras, condicionados principalmente por la tecnología de la BD origen. Pueden capturar los cambios mediante triggers en diversos motores de BD (método intrusivo, ya que impacta notablemente en el rendimiento de la BD origen) o analizando los logs de transacciones (siendo la manera óptima ya que su impacto es insignificante). Disponible para Oracle >= 10.2.0.4, IBM DB2/400 y mediante un conector (a licenciar) también para IBM DB2/Mainframe, IMS DB, VSAM Batch y CICS, MS-SQL Server >= 2005. Los cambios en un “Journal” sólo se capturan cuando tiene algún Suscriptor registrado.
  • Suscriptores: Son las entidades (aplicaciones, procesos de integración, …) que van a consumir la información de los “Journals”. Una vez que el último suscriptor ha procesado todos los cambios registrados, éstos son purgados del “Journal”.
  • Vistas del “Journal”: Son la interface de los suscriptores al contenido del “Journal”, a través de ellas se da acceso a los cambios registrados para su consumo.

cdc_flux

El proceso básico de configuración de CDC es el siguiente:

  • Configurar parámetros de CDC en el modelo de datos origen (modo de Journalizing y KM –Knowledge Module– correspondiente a la tecnología a utilizar en la captura, trigger o log, y configurar sus opciones).
  • Añadir las tablas para las que se desean registrar los cambios.
  • Si el modo de Journalizing elegido es el consistente, establecer el orden en qué procesar las tablas (de manera que se asegure la integridad referencial).
  • Añadir suscriptores (a una tabla o a un modelo, si hemos elegido el modo consistente).
  • Iniciar el Journalizing (la escucha de los procesos de captura, especificando el contexto de ejecución y el Agente que se responsabilizará de las actualizaciones).

El proceso de journalizing requiere de unas estructuras de datos, que son creadas automáticamente al iniciarlo y que se ubican en un esquema independiente a modo de staging area (diferente a la staging area del modelo destino utilizada en la integración), de manera que todos los objetos temporales necesarios son creados en ese esquema.

Únicamente en el caso de captura de cambios mediante triggers se modifica el esquema de datos origen, añadiéndole los triggers. Al eliminar el “Journal”, dichas estructuras son eliminadas también de manera automática.

Cuando existan varios contextos de ejecución, el despliegue del “Journal” en un contexto puede automatizarse en forma de paquete, y de idéntica manera, también su eliminación.

Una vez configurado el Journalizing, estará listo para ser utilizado en el desarrollo de interfaces.

De manera resumida, la utilización de CDC se traduce en la aparición en las tablas que están bajo Journalizing de atributos adicionales para su filtrado y proceso selectivo, excluyendo los registros no modificados. También contaremos con la posibilidad de utilizar las Journalizing Tools en el desarrollo de paquetes, para controlar el flujo de ejecución (y decidir si existen o no cambios para una tabla y si se debe lanzar o no su interface de carga). Al final del flujo de carga se invocará el proceso de purga del “Journal” para que elimine los cambios ya procesados, una vez concluido el tratamiento por el último suscriptor.

  1. Aún no hay comentarios.
  1. febrero 15, 2013 en 13:55

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: