Hay algunos escenarios en los que se requiere un ritmo rápido para el monitoreo de datos. Aquí es donde entran los paneles de control en tiempo real. Un panel de control en tiempo real puede mostrar información con un alto grado de frecuencia. Esta información es utilizada por el público para tomar decisiones rápidas para corregir el comportamiento de ciertas tendencias previsibles. Los cuadros de mando en tiempo real también pueden activar alertas basadas en umbrales empresariales que permiten al público reaccionar rápidamente basándose en información actualizada al minuto.
La inteligencia de negocios en tiempo real es relevante para múltiples industrias y departamentos. Los paneles de control se pueden usar para monitorear el desempeño del centro de llamadas, el uso del sistema de TI, la seguridad de los datos, los precios dinámicos y la optimización del inventario e incluso apoyar la detección de fraude y los esfuerzos de administración de riesgos. Basado en nuestra experiencia en la construcción de un panel de control en tiempo real para monitorear los datos del centro de llamadas, este artículo destacará los consejos y lecciones aprendidas para cualquier persona que esté llevando a cabo un proyecto similar.
ETL
Scheduling Frequency In reality the dashboard is not real time. It is a batch job with a very short refresh/update frequency. In our case it was 1 minute, which is also a limitation on Data Services batch jobs. It is important to know these limitations and also to know how fast your entire ETL batch job can run.
Si la duración total del trabajo por lotes> la frecuencia de ejecución del trabajo por lotes, se crean procesos superpuestos que inmediatamente pueden causar dos problemas:
Sobrecarga el servidor o genera ralentizaciones de refresco
Crear inconsistencias en sus datos si su ETL no hace correctamente bloques y colas de proceso de escritura a las tablas de DB.
Run Optimization Given the need presented above: batch job total duration < batch job run frequency, you must search for the optimal setting to run your batch job. In Data Services there are some situations that can easily speed up your job execution but there is a delicate balance you must consider. One example is the memory method it uses to run the batch job, which can be selected from:
Página
En memoria
Además, siempre que tenga un proceso de comparación de tablas, el rendimiento se puede optimizar ejecutando la comparación como un proceso separado.
El método In se ejecuta más rápido cuando el servidor tiene suficientes recursos de RAM, sin embargo, si su servidor no tiene suficiente RAM libre, se sobrecargará y no podrá ponerse al día con nuevos procesos de desove, ejecutándose cada vez más en la memoria física hasta que cause un error. Bloqueo completo del servidor.
Gato
Memory management Tomcat, under determined circumstances, does not perform well with memory management and garbage collection. When executing several QAAWS every minute the memory it uses can build up very quickly. Any Tomcat service on a 32bit Windows environment will have a limitation of 1.2 GB of memory to allocate. Tomcat becomes unstable when it reaches that limit and new requests are still coming in at a constant rate.
Hay varios ajustes en Tomcat y JVM memoria que se puede hacer para optimizar esto.
Un ejemplo de estos ajustes es los límites de memoria que se pueden establecer cuando se inicia Tomcat; Estos se pueden establecer mediante el registro de Windows o modificadores de tiempo de ejecución.
Cache Optim flag The QAAWS application that comes bundled with Business Objects has a limitation set to cache data requests. When the same request is done in short periods of time the cache data is sent instead of running the query again. To avoid this and get new data every time, you need to disable this functionality on the dsws application properties:
Para desactivarlo, debe establecer el indicador qaaws.cache_dpresult.optim como false.
Restart Script In order to keep Tomcat service from memory overloads it is a good practice to schedule an overnight restart that will force garbage collection. The script can be very basic or contain additional cleanup tasks.
HTML Container Placing the flash file on html container will allow you to execute some actions prior and during the flash file execution. You can run javascripts, pass mandatory flash variables (i.e. suppressing tomcat error messages when running qaaws), etc.
El contenedor html más básico para un archivo flash xcelsius se verá de la siguiente manera:
Auto refresh Java script As mentioned before, an HTML container will allow you to run javascript programs on the Explorer window executing your xcelsius flash file. Many applications can be given to javascript but one of them could be the browser page auto-refresh function. With the refresh you can wipe out outdated errors from screen.
No Error flash Variable The no error flash variable is a new functionality on Xcelisus SP4. It allows you to set the pop-up error windows off in cases where the error is not directly related to Xcelsius logic, i.e. Tomcat outages, scheduled system restarts, etc.
Para añadir esta funcionalidad a cualquier panel de Xcelsius, primero debe agregar la entrada de la variable flash a su archivo xlf.
Finalmente, también es necesario pasar la variable al SWF como se indica en el ejemplo del código contenedor HTML anterior.
I hope these lessons learned are helpful to anyone working on a real time dashboard. Feel free to leave a comment or question below if you need more information on any of the tips provided in this post.