¿Para qué sirve GoldenGate?
Básicamente podemos resumir su funcionalidad en la siguiente frase:
"Oracle GoldenGate permite capturar con muy bajo impacto, enrutar, transformar y enviar información entre sistemas heterogéneos en tiempo real"
O lo que es lo mismo, OGG básicamente mueve información del sitio A al sitio B, pero lo hace con mucha clase, eso sí. Repasemos sus funcionalidades principales.
Muy bajo impacto – Esto quiere decir que no sobrecarga los sistemas origen de los que extrae la información. Para conseguirlo, OGG no lee de la base de datos, si no que vigila los archivos tipo redo que están presentes en las diferentes bases de datos con las que opera para saber cuándo se ha confirmado una transacción.
Sistemas heterogéneos – Gracias a ODBC, ingeniería inversa y a unas cosas llamadas VAM, OGG es capaz de interconectar una barbaridad de sistemas diferentes. Hay más sistemas destino que origen, ya que no todas las bases de datos del mercado utilizan tecnología que permita garantizar una integridad referencial completa (y sin esto OGG no puede funcionar).
Tiempo real – En la publicidad de OGG uno puede leer que la replicación de la información sucede con una latencia inferior a un segundo, lo que es muy impresionante. Si bien esto es cierto, no lo es siempre. Depende del tipo de escenario, tecnologías implicadas y el factor de la distancia para conseguir esas latencias. Pero en cualquier caso, estaremos hablando siempre de segundos, nunca de minutos.
Escenarios de uso con GoldenGate
Dada la naturaleza de su propósito, OGG puede sernos útil en diferentes escenarios, como por ejemplo migraciones zero-downtime, query off-loading o disponibilidad continua de la información en sistemas geográficamente dispersos. Voy a centrarme sin embargo en los dos escenarios relacionados con los sistemas BI.

Operational Reporting
Hay veces que es necesario disponer de determinados informes tácticos para toma de decisiones que utilicen información en tiempo real. Podemos decir “nuestro ETL corre cada hora… cada media hora… cada 10 minutos…!!” y no será suficiente.
Este tipo de reporting sobre la fuente de datos transaccional es costoso en términos de rendimiento, y suele penalizar gravemente al sistema OLTP origen.
Para este tipo de situaciones OGG puede ayudarnos descargando información en tiempo real a otra plataforma (hardware obsoleto, otro SO, otra base de datos más barata…) de manera que las peticiones de reporting sobre esta información caliente podamos mandarlas a ese nuevo sistema. De esta manera, el sistema origen no se verá impactado en absoluto (bueno, mínimamente por OGG) y habremos cumplido el objetivo de ofrecer reporting con datos en tiempo real.

Real Time – BI
Hemos hablado todo el rato de mover información entre bases de datos, pero OGG también nos permite alimentar a nuestra herramienta ETL con los datos que extrae en tiempo real. De hecho, OGG es capaz incluso de realizar transformaciones sencillas, convirtiéndose él mismo en una mini-aplicación ETL para casos simples.
¿Qué conseguimos con esto? Pues algo muy interesante. Nuestro datawarehouse puede contener información consolidada de diferentes fuentes alimentada de forma periódica (diaria, cada seis horas…) y gracias a OGG puede contener también una parte de información consolidada y actualizada al segundo sin apenas impactar al sistema origen. A partir de aquí OBIEE es capaz de decidir donde tiene que buscar la información. ¿Me pides datos de ayer? Pues voy a buscarlos al datawarehouse, ¿Me pides datos de hace 10 minutos? Pues voy a pillarlos a mi minirepositorio de datos real-time alimentado por OGG.
En este repositorio real time sólo tendremos que mantener la información durante el tiempo que no cubre mi ventana ETL. Es decir, si mi ETL funciona cada 6 horas, será necesario almacenar como mucho 6 horas de información proveniente del OLTP via OGG. A partir de ese momento la información ya será recogida por el ETL y pasará a estar disponible en el DWH.
Los puntos clave de esta solución son:
- OGG puede obtener datos de diferentes fuentes (igual que nuestro ETL) pero en tiempo real.
- El impacto en los sistemas origen es mínimo ya que no accede a los datos sino a los archivos redo log para reconstruir las tran sacciones confirmadas.