¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
Conoce nuestra 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.
Conoce nuestra marca.dev
José Alberto Ruiz Casarrubios 30/09/2021 Cargando comentarios…
Este es el primer post de la serie dedicada a CDC (Change Data Capture) utilizando Oracle GoldenGate. Empezaremos por un post de contenido teórico y continuaremos con una serie de posts más prácticos orientados a satisfacer determinados casos de uso.
Oracle GoldenGate es una solución de CDC para la replicación de datos entre diferentes orígenes y destinos en tiempo real.
Esto permite, por ejemplo, replicar datos entre los sistemas operacionales y sistemas analíticos o informacionales en tiempo real, manteniendo siempre la integridad de los datos.
Además, mediante GoldenGate podemos replicar datos entre diferentes tipos de fuentes, incluyendo desde bases de datos a servicios Cloud (AWS, GCP, Azure) o un bus de eventos como Kafka.
Al estar basado en la lectura de logs transaccionales, no afecta al rendimiento del motor de base de datos.
Cuando hablamos de Oracle GoldenGate seguramente estemos pensando en un único componente que se conecta a todos los destinos y orígenes. Realmente esto no es así y, en la práctica, usamos diferentes “tipos” de Oracle GoldenGate según las fuentes con las que estemos trabajando.
Lo podemos ver rápidamente si accedemos a la página de descargas. Si tenemos en cuenta la fuente, los más importantes son:
Base de datos Oracle | Base de datos no Oracle | Otras fuentes |
---|---|---|
GoldenGate Classic for Oracle | GoldenGate for Postgresql GoldenGate for MySQL GoldenGate for DB2 GoldenGate for SQL Server |
GoldenGate Classic for Big Data |
Vamos a explicar muy brevemente cuáles son los componentes principales de Oracle GoldenGate:
Además, existen dos componentes que son los encargados de orquestar todo el proceso:
La siguiente imagen describe de forma gráfica todos los elementos involucrados en un proceso típico de replicación:
Cuando hablamos de Change Data Capture (CDC), hablamos de un proceso de replicación continua de datos.
En la mayoría de procesos de replicación continua, se suelen diferenciar dos pasos o etapas:
En la siguiente imagen podemos ver los diferentes componentes implicados en ambas etapas:
De forma resumida, vamos a ver cada componente, su responsabilidad y dónde se ubica:
ETAPA | TIPO DE ELEMENTO | UBICACIÓN | FUNCIÓN |
---|---|---|---|
CARGA INICIAL | EXTRACT | GG Origen | Extraer del origen el conjunto de datos de inicio a replicar |
CARGA INICIA | REPLICAT | GG Destino | Replica los cambios en el destino correspondientes a los datos obtenidos |
CDC | EXTRACT | GG Origen | Extraer, de forma continua, los cambios realizados en el origen y crear el trail local |
CDC | DATA PUMP | GG Origen | Procesar el trail local y generar el trail remoto para enviar al destino |
CDC | REPLICAT | GG Destino | Procesar el trail remoto y aplicar los cambios en la fuente destino |
Hay que tener en cuenta que, aunque son dos etapas diferentes, se implementan a la vez. Esto se debe a que, una vez concluida la carga inicial, los componentes asociados a la etapa propia de CDC deben estar “up & running” para no perder ningún cambio en las tablas seleccionadas y que no haya que repetir un proceso de carga inicial para dejar ambas fuentes (origen y destino) sincronizadas de nuevo.
Si vamos a la página de descargas de GoldenGate veremos que existe una versión “Microservices”, y podemos preguntarnos a qué se refiere. Por ejemplo, ya en la versión 19.1.0.0.4, podemos encontrar los dos tipos de descargas:
La diferencia está en la arquitectura sobre la que se ha desarrollado el propio producto GoldenGate, encontrando, a nivel interno, una versión más monolítica (versión “Classic”) y una versión modularizada (versión “Microservices”).
A nivel de uso, en la interacción con GoldenGate también encontraremos diferencias. En la versión “Classic” usaremos un cli, GGSCI y scripts, mientras que en la versión Microservices usaremos la consola web o el API Rest.
En la mayor parte de los posts siguientes nos vamos a basar en la versión “Classic”, ya que así conseguimos una visión completa de los componentes y su funcionamiento. Sin embargo, en los post finales de la serie hablaremos también de la versión “Microservices”
Dentro de los servicios que podemos encontrar en Oracle Cloud disponemos de un servicio totalmente gestionado de Oracle GoldenGate. Este servicio se basa en Oracle GoldenGate Microservices y pone a nuestra disposición la consola web en la que podremos gestionar los diferentes elementos.
De igual manera que con la versión Microservices, la mayor parte de los post van a ir orientados a un entorno no gestionado y se utilizará principalmente la versión “Classic”, en los post finales de la serie hablaremos más en detalle del servicio Cloud.
Como hemos comentado al inicio, el objetivo de este post es introducir Oracle GoldenGate. En los próximos post de la serie vamos a ver ejemplos prácticos basados en casos de uso de Negocio:
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.
Cuéntanos qué te parece.