EL RETO

Nuestro cliente posee una Base de Datos principal empleada por las operativas de su plataforma.

Esta Base de Datos debido a su crecimiento y alto volumen de registros estaba provocando problemas de eficiencia en el sistema, que por su naturaleza debe cumplir con el requisito de alto rendimiento.

LA SOLUCION

Después de analizar el sistema y sus necesidades se decidió:

  • Establecer un proceso de volcado de la información antigua y no necesaria para la operativa diaria de la Plataforma de Apuestas en una Base de Datos que haría las funciones de Data Warehouse.
  • Establecer un proceso de purgado sobre la Base de Datos Principal con el objetivo de mantener un volumen apropiado que no comprometiera el rendimiento del sistema.
  • Desligar el Sistema de Reporting de la Plataforma de Apuestas de esa Base de Datos Principal y emplear el Data Warehouse, y por tanto incrementar la mejora del rendimiento general en la operativa diaria de la plataforma.

SOLUCION TECNOLOGICA

Como punto de partida para el Data Warehouse se utilizó un Backup de la BD Principal que tenía un gap de un año. Las Bases de Datos son Oracle 12.

Proceso de Volcado

Se empleó un proceso Java usando Spring con diversos aspectos configurables. Fue codificado para que fuera compatible con Java 1.7, Java 1.8 y Java 1.11, y para que pudiera integrarse en el software o se pudiera usar independientemente de él.

Entre algunas de sus características destacan:

  • Periodo de tiempo de volcado configurable. Para el volcado de la BD principal se adaptó para que dicho periodo no provocara un problema de eficiencia en la ejecución y el proceso no impactara en la BD principal. Además, el volcado se programó en las horas de menos carga del sistema (periodo nocturno).
  • Número de tablas a alinear en paralelo configurable. Lo que permitía ajustar el consumo de recursos.
  • El proceso, al basarse en BDs Oracle, aprovecha la tecnología de Oracle Data Pump que proporciona alta velocidad en el movimiento de datos de una base de datos a otra. No obstante, la implementación contempla la alternativa de uso de JDBC para independizarse del Gestor de Base de Datos.
  • Sistema de Detección de colisión de registros. Si existe solapamiento (fechas), el sistema detecta durante una colisión de registros cual de ellos es el más actualizado, descartando el otro.
  • Control de los tiempos de almacenamiento y adaptación del proceso en base a ellos. El proceso registra los tiempos que se tarda en almacenar cada tabla. En el siguiente ciclo, el orden de volcado de las tablas depende de los tiempos medios de esas tablas en anteriores ejecuciones, de modo que las que tardan más serán las primeras en ejecutarse, mejorando el tiempo global de respuesta.

Proceso de Purgado

Se empleó un proceso Java para el purgado de la Base de Datos de la Plataforma, pudiendo parametrizar aspectos como entidades a purgar y antigüedad de los datos a purgar.