El 09-08-23 a las 12:44, Fernando Romo escribió:
Estimado Enrique,
Creo que el acercamiento debe ser pro-procesar información para llevar
a cabo la consolidación de datos estratégicos
El termino de esto se le llama “PermaComputation”, que en términos
sencillos es almacenar los resultados de datos previamente calculados
para evitar uso de recursos repetidamente.
En mi caso hice un algoritmo que le llamo “Cache diferencial”, que
consiste en procesar por ventanas una muestra de la información, si no
existe un registro previo, insertarlo y si existe, leerlo y actualizarlo.
He usado esto para el manejo de 650 sucursales de una conocida
pizzería y con esto damos los datos de manera rápida a todas las áreas
gerenciales, resaltando los llamados “kpi” (key performance indicator)
La técnica de Cache diferencial se puede usar en cualquier BD y
lenguaje, consiste en generar tablas de cache (por hora, día, més,
etc) que te permite acceder a los resultados previamente calculados
Por ejemplo:
Tomando en cuenta que tengo una tabla con inmformacieon de actividad
telefónica con unos 228,272,901 registros, el tiempo que tarda en
consultar la info base en un querrá puede ser de muy alto vs el cache
queue_log , que es la tabla base, si hago un query y le pongo
“explain analyze” para ver los tiempos de ejecucieontenemos estos
resultados:
Tabla registros tiempo
cache_year 2,711 Execution Time: 3.580 ms ( 1x) */
ache_month 24,804 Execution Time: 28.971 ms ( 8x)
cache_day 731,909 Execution Time: 342.648 ms ( 96x)
cache_hour 8,715,863 Execution Time: 2,014.931 ms ( 563x) */
Queue_log 228,272,901 Execution Time: 2,099,358.675 ms (586,413x)
Si te fijas, si hiciera un query de todos los indicadores de llamadas
anuales, desde la tabla base, tardo 586,413 veces mas que usando el
cache.
Las tablas de cache dan los mismo resultados que haciendo en la tabla
base, pero los tiempos de ejecución son muy bajos en los caches.
Esto tiene mucho sentido cuando tienes a mucha gente viendo los
indicadores constantemente, si tienes a 50 personas ejecutando un
querrá que tarda mas de 34 minutos por persona, pues colapsaras la BD
de manera terrible.
Con gusto te muestro como lo hago, siéntete libre de preguntar y si
está en mis manos, ayudarte.
Saludos…. Fernando “El Pop” Romo
eso es conociendo la base, recién estoy definiendo a cual base le
hincare el diente (son dos o tres que se demoran sus dias en
procesarse), para de acuerdo eso ver si la estrategia que propones me
servirá
mi idea es la siguiente:
definida la base , extraer un 10% de la base ( con la sugerencia de
alvaro podre volcar a una base "victima", osea que podre romperla sin
preocupación )
luego sobre la base victima, aplicar todas las opciones de mejoras:
mejora de consultas
revisión de indices,
estrategia de almacenamiento,
etc.
hacer tuning , etc.
On 9 Aug 2023, at 8:54, Enrique Herrera Noya
<enrique.herreran...@gmail.com> wrote:
Colegas:
Estoy desarrollando mi proyecto de titulo
el cual versa sobre :
En la empresa se procesa un gran volumen de datos (TeraBytes), con
los cuales se crean determinados productos y/o servicios que se
ofrecen a los clientes. Dado esto es importante la seguridad de los
datos, en los aspectos de*disponibilidad*,*accesibilidad*, y sobre
todo*integridad*de la información.
Actualmente el procesamiento de algunos conjuntos de datos, mediante
programas propios desarrollados en*Java*y utilizando*Postgresql*como
base de datos, se demora alrededor de unos dos a tres días, cada vez
que se/_precisa realizar el análisis mensual_//de ellos,/para lo cual
se utiliza en forma intensiva los recursos informáticos asignados,
dicho proceso se realizar en paralelo con otros procesos diarios.
Este uso intensivo surge porque el estado de ciertos registros van
variando cada mes, y es necesario llevar un registro histórico*.*
Se necesita realizar mejoras para optimizar el uso de los recursos
informáticos y también mejorar el código desarrollado, para disminuir
el tiempo necesario para el procesamientos de los datos.
me tope con un tema practico , como son varios teras desde el cual
debo seleccionar la muestra, me demorare mas tiempo que el plazo de
entrega de la maqueta,
entonces, para armar la maqueta se me ocurrió que podría utilizar una
bbdd abierta de algunos gigas, para utilizarla como insumo para
mostrar los pasos que
realizare con la bbdd a analizar.
atentos de sus comentarios.
Enrique Herrera Noya
--
+56 992303151
Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
Novell Certified Linux Professional CLP 10
Red Hat Delivery Specialist -Container Platform Application Deployment I
Red Hat Delivery Specialist - Container Platform Administration I
RED HAT SPECIALIST
How to Sell Red Hat OpenShift for Infrastructure
How to Sell Red Hat OpenShift for Developers
Red Hat Sales Engineer Specialist - Container Platform
Red Hat Sales Engineer Specialist – Automation
Enrique Herrera Noya
--
+56 992303151
Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
Novell Certified Linux Professional CLP 10
Red Hat Delivery Specialist -Container Platform Application Deployment I
Red Hat Delivery Specialist - Container Platform Administration I
RED HAT SPECIALIST
How to Sell Red Hat OpenShift for Infrastructure
How to Sell Red Hat OpenShift for Developers
Red Hat Sales Engineer Specialist - Container Platform
Red Hat Sales Engineer Specialist – Automation