¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
dev
José Alberto Ruiz Casarrubios 15/11/2021 Cargando comentarios…
Este es el tercer post de la serie dedicada a Oracle GoldenGate. En este caso, vamos a ver cómo implementar un proceso de replicación entre una base de datos Oracle y un bus de eventos Kafka, utilizando Oracle GoldenGate Classic y Oracle GoldenGate for Big Data.
En el post anterior, hemos conseguido disponer de dos vistas de lectura en Postgresql para poder separar los modelos de la base de datos principal, Oracle, utilizándose únicamente para acciones de escritura.
El siguiente hito para Negocio y su iniciativa de abrir productos para empresas es realizar un envío de notificaciones a los nuevos clientes para darles la bienvenida. Es decir, cada vez que se inserte un nuevo cliente en la base de datos, se enviará la notificación.
Para ello, se decide actuar de forma similar al caso anterior pero, en vez de replicar los datos en una nueva base de datos, se van a enviar a un bus de eventos. Una vez la información llega al bus de eventos, se podrá recoger en un futuro cercano por un servicio que se encargará de la generación y envío de las notificaciones.
En el diseño de este proceso tenemos que tener en cuenta:
Teniendo en cuenta estos puntos y siguiendo con el producto Oracle GoldenGate, tenemos que añadir una nueva pieza al sistema: Oracle GoldenGate for Big Data.
Oracle GoldenGate for Big Data nos va a posibilitar el envío de los datos correspondientes a nuevos clientes a un bus de eventos.
La siguiente imagen muestra cómo será la arquitectura a implementar teniendo en cuenta las dos fuentes a manejar:
El proceso de replicación, como se ha comentado anteriormente, solo va a constar de la etapa de CDC ya que no es necesaria una carga inicial. El origen de los datos va a ser la base de datos Oracle y el destino, va a ser Kafka.
Teniendo en cuenta esto, en la siguiente tabla podemos ver los diferentes componentes que necesitaremos:
ETAPA | TIPO ELEMENTO | UBICACIÓN | FUNCIÓN | NOMBRE IMPLE. |
---|---|---|---|---|
CDC | EXTRACT | GG Classic | Extraer, de forma continua, los cambios realizados en Oracle y crear el trail local | ecdcbd |
CDC | DATA PUMP | GG Classic | Procesar el trail local y generar el trail remoto para enviar al destino | pcdcbd |
CDC | REPLICAT | GG Big Data | Procesar el trail remoto (recibido desde GG Classic) y publicar el evento con los datos del nuevo cliente en el bus de eventos | rcdcbd |
La siguiente imagen muestra los distintos elementos a implementar:
Durante los siguientes puntos, vamos a pasar a la práctica. Para que el post sea más legible, el detalle de cada paso lo encontraremos en el fichero Readme del repositorio asociado.
Lo primero que tenemos que hacer es crear la infraestructura que soportará el caso de uso. Lo haremos sobre AWS y está compuesta principalmente por:
El detalle de estos pasos lo encontraremos en el apartado del Readme correspondiente a la creación de la infraestructura.
Al igual que hicimos en el post anterior, para que el proceso de replicación sea posible es necesario configurar la base de datos origen. Además, crearemos un usuario propio para GoldenGate, “oggadm1” y le daremos los privilegios necesarios.
Para ejecutar este paso iremos al apartado del Readme correspondiente a la preparación de la base de datos origen para la replicación.
Si vemos el diagrama de arquitectura final, en este punto tendríamos los siguientes elementos implementados:
Ya tenemos las fuentes de datos de origen y destino preparadas y las máquinas virtuales EC2 listas. Ahora tenemos que instalar las dos versiones de Oracle GoldenGate, la correspondiente al lado origen para Oracle, y la correspondiente al lado destino para Big Data.
Oracle GoldenGate Classic
Para instalar y configurar Oracle GoldenGate Classic para Oracle tenemos que seguir los pasos indicados en el apartado correspondiente del fichero Readme del repositorio.
En este apartado, vamos a ver los siguientes puntos:
Oracle GoldenGate for Big Data
Para instalar y configurar Oracle GoldenGate for Big Data tenemos que seguir los pasos indicados en el apartado “Instalando Oracle GoldenGate For Big Data” del fichero Readme del repositorio.
En este apartado, vamos a ver los siguientes puntos:
Ahora ya tenemos todos los componentes de la infraestructura listos para usar:
Una vez que tenemos creada la infraestructura y GoldenGate instalado en cada máquina EC2, tenemos que implementar el proceso de replicación que hemos diseñado anteriormente. Debemos recordar que consiste únicamente en la etapa de CDC.
Implementando el proceso de CDC en Origen
De forma similar a como se hizo en el anterior post, es necesario implementar los componentes extract y data pump en el lado de GoldenGate Classic.
A la hora de crear estos elementos debemos tener en cuenta que Negocio indica en sus requisitos que solo se deben publicar los cambios correspondientes a clientes nuevos. Por lo tanto, vamos a indicar en el extract que se ignoren las actualizaciones y los borrados.
Se podría hacer también a nivel de replicat en destino, pero consideramos que así reducimos el tráfico al enviarse sólo los cambios correspondientes a nuevos clientes.
Para crear estos dos elementos, tenemos que seguir las instrucciones detalladas en apartado asociado al proceso de replicación del fichero Readme.
Una vez implementados, tendríamos completa la parte del lado origen:
Creando el replicat en GoldenGate for Big Data
El siguiente paso es publicar los cambios en el bus de eventos. Para ello, necesitamos configurar el replicat en Oracle GoldenGate for Big Data. Este replicat simplemente utilizará un conector para publicar los cambios en Kafka.
Para ello tenemos que seguir las instrucciones detalladas en apartado asociado a la creación del replicat del fichero Readme.
En este punto ya tenemos todos los elementos del proceso implementados y arrancados:
Una vez que hemos implementado todos los pasos, solo nos queda probar el proceso de replicación en tiempo real, comprobando cómo se publican los cambios en el bus de eventos.
En este caso tenemos que comprobar los requisitos expresados por Negocio, indicando que solo se deben publicar los cambios correspondientes a clientes nuevos.
Para ello, tenemos que probar que al insertar una nueva fila en la tabla de Oracle sí se manda un mensaje a Kafka, pero si actualizamos o eliminamos esa fila, no se recibe nada en Kafka.
Para realizar este proceso, al igual que en apartados anteriores, nos vamos a apoyar en el apartado de pruebas del fichero readme del repositorio de código.
Una vez terminado el caso de uso, podemos proceder a la destrucción de la infraestructura que hemos creado en AWS. Para ello, realizamos los pasos explicados en el apartado correspondiente a la destrucción del entorno del fichero readme.
En este post hemos visto cómo se puede usar Oracle GoldenGate para replicar datos desde un origen (Oracle) a Kafka.
Mediante esta replicación conseguimos que los datos correspondientes a los cambios se publiquen en el bus de eventos y puedan estar disponibles a los diferentes consumidores para implementar cualquier tipo de caso de uso.
Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.
Estamos comprometidos.
Tecnología, personas e impacto positivo.
Cuéntanos qué te parece.