Pregunta

Quiero crear una aplicación 'Google Analytics' tipo para la web - es decir, una herramienta basada en la web para hacer algo de informes y gráficos de mi base de datos. El problema es que la base de datos es enorme, por lo que no puede hacer las consultas en tiempo real, ya que se toman demasiado tiempo y la herramienta no responderá.

¿Cómo puedo utilizar una tarea programada para que me ayude? ¿Cuál es la mejor manera de poder hacer mis gráficos de respuesta? Creo que voy a necesitar denomalize algunos de mis tablas de bases de datos, pero ¿cómo puedo hacer estas consultas más rápidamente? ¿Qué valores intermedios puedo almacenar en otra tabla de base de datos para que sea más rápido?

Gracias!

¿Fue útil?

Solución

Business Intelligence (BI) es una disciplina bastante madura -. Y encontrará respuestas a sus preguntas en cualquier libro sobre la ampliación de las bases de datos de informes y almacenamiento de datos

Una lista de alto nivel de las tácticas incluiría:

  • partición (porque son índices poco de ayuda para la mayoría de informes)
  • tablas de resumen (generados generalmente a través de un proceso por lotes se someten a través de cron)
  • se necesita un buen optimizador (algunas bases de datos como MySQL no - así que las decisiones que unen pobres)
  • consulta paralelismo (algunas bases de datos proporcionarán aceleraciones lineales simplemente dividiendo su consulta en múltiples hilos)
  • estrella del esquema - un modelo de datos es buena cruciales para un buen rendimiento

En la presentación de informes dinámica general supera los pantalones unos informes estáticos - por lo que si usted está después de informes de gran alcance que acababa de intentar copiar los datos en un modelo apropiado, use agregados, posiblemente cambiar la base de datos para obtener un buen optimizador y la adecuada características en lugar de ejecutar informes por lotes.

Otros consejos

Una forma sencilla de abordar esto sería la creación de una selección de tablas de resumen para contener los datos pre-agregado. Estos podrían estar ocupados en una base usando crontab regular.

Como alternativa, puede ser digno de mirar algo así como http://mondrian.pentaho.org .

Me meto familiarizado con "esquemas de estrella"

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top