2012-03-23 89 views
5

Necesito crear un sistema analítico. Ya construí el sistema usando MognoDB y PHP pero sin usar OLAP. Ahora mis consultas son realmente lo mejor que puedo obtener, pero el sistema es muy lento porque no tiene cubo. Puede tomar un minuto cargar un informe de los últimos 7 días. Realmente necesito las opciones del cubo - slice & dados.Cubo OLAP - PHP y MongoDB

Entonces, ¿cuál sería la solución para mí? ¿Hay un buen sistema de cubos construido con MongoDB y que puede insertar datos de vista & a través de PHP? ¿Tal vez MongoDB no será bueno para mí? ¿Debería usar otra base de datos e iniciar todo el sistema desde 0? ¿Qué soluciones OLAP existen utilizando PHP?

Editar: Más información - Bueno, el sistema es como Google Analytics. Es necesario poder saber cuántas vistas en cada día, debe poder informar desde solo una fuente de tráfico y un país especificados. El sistema necesita manejar 1,000,000 vistas únicas cada día. Pero no solo el recuento de visitas, es necesario que pueda ver la cantidad de usuarios que regresan, cuál es el tiempo promedio para cada usuario, etc.

Gracias.

+0

No ha dicho nada sobre el tipo de datos, cantidad de registros, datos maestros, cuál es la fuente de los datos, cuáles son los requisitos de informes, qué agregación usa. ¿Cómo podemos responder esto sin que se adivine? necesitas proporcionar mucha más información, y dudo mucho que la respuesta sea solo el motor cubo + olap. – T9b

+0

Thanls. Lo siento, agregado. ¿Puedes explicar un poco más sobre este motor cubo + olap? ¿Cómo puedo hacerlo usando PHP? ¿Qué hay de mi mongodb? ¿Debo usar otro DB? –

+0

No estoy seguro de cuál es tu obsesión con PHP y mongoDB. Todo lo que necesita se puede hacer en cualquier base de datos lo suficientemente bien. Parece que no estás cargando tus datos de forma adecuada o que tu SQL no es lo suficientemente bueno. Proporcione su código, estructuras de DB, etc. que diga que no funcionan bien. – T9b

Respuesta

2

MongoDB no está diseñado para aplicaciones tipo cubos OLAP. Puedo pensar en dos enfoques:

1) Determine por adelantado las consultas que deberá realizar y almacene sus datos en el formato óptimo con anticipación. Por ejemplo, si desea conocer las visitas por país por día, a medida que se realice cada visita haga algo como:

db.visits.update ({'país': país, 'día': día_actual()}, {$ inc: {visitas: 1}})

Repita para cada métrica. Las actualizaciones de Fire-and-forget desde su aplicación al DB de análisis agregarán una sobrecarga mínima para atender una solicitud al visitante. Entonces sus consultas serán en gran medida precalculadas.

2) Pruebe el backend de MongoDB de JasperSoft.

2

Para actualizar un poco las respuestas, icCube ahora ofrece acceso a MongoDB. Debería ser capaz de configurar alguna consulta MongoDB para crear tablas que icCube va a usar para informes y análisis.

Cuestiones relacionadas