Bueno, bueno, bueno,
Por fín he terminado la documentación del proyecto en el que estoy metido en estos momentos, el estudio e implementación de una solución NoSQL para el análisis de logs de acceso a Internet.
En la empresilla familiar en la que trabajo me han encargado estudiar y buscar si alguna de las soluciones Open Source NoSQL que existen actualmente puede ser útil para las necesidades de la empresa. Hay que decir que la conclusión bien pudiera haber sido, como ya ha pasado en alguna otra ocasión, que no nos conviene, claro.
Además, este último año, desde octubre de 2011, estoy realizando el (magnífico) Máster de Software Libre organizado por Igalia y la Universidad Rey Juan Carlos de Madrid.
Total, que he decidido aplicar parte de los conocimientos adquiridos en el máster a este trabajo y les he presentado a mi jefe la la posibilidad de presentarlo como proyecto de fin de máster (como parte del máster hay que llevar a cabo un proyecto y exponerlo), posibilidad que ha sido aceptada.
El trabajo que presento en este artículo corresponde al proyecto de la “Vª Edición del Máster en Desarrollo y Administración de Proyectos de Software Libre” y se compone de:
- Una memoria con una descripción completa del trabajo desarrollado (descargable en formatos PDF y OpenDocument)
- Una presentación con una descripción más breve (descargable en formatos PDF y OpenDocument)
- Código fuente de las clases y scripts desarrollados, archivos de configuración y resultados de los tests disponibles en este repositorio de Github
- El código fuente de las clases PHP (clases utilizadas por scripts de tests) ha sido documentado con phpDocumentor y está disponible aquí
Toda la documentación ha sido escrita en inglés
El proyecto se compone de cuatro partes:
- Un estudio inicial de cuál es el estado actual de las soluciones Open Source NoSQL
- Justificación de por qué he escogido MongoDB y cómo lo he instalado y configurado
- Diseño de un esquema para la base de datos de análisis de logs, de varias clases PHP y una batería de scripts para comparar el rendimiento de MongoDB y MySQL
- Resultados de los tests comparativos y conclusiones
La presentación que resume el trabajo hecho es ésta:
Para ser coherentes con los principios del Software Libre (y los míos propios) en este trabajo:
- he utilizado herramientas libres siempre que ha sido posible (menos el puesto de trabajo, un Windows Vista, todo lo demás )
- (casi) todo el contenido generado está disponible públicamente en Internet y tiene licencia abierta. Esto incluye la documentación generada con el análisis y el código desarrollado.
Otros artículos
En esta web hay disponibles algunos posts que he ido redactando durante el desarrollo del proyecto:
- Buscando una solución NoSQL para el análisis de logs (1 de 4)
- Buscando una solución NoSQL para el análisis de logs (2 de 4)
- Buscando una solución NoSQL para el análisis de logs (3 de 4)
- Buscando una solución NoSQL para el análisis de logs (4 de 4)
- Instalando MongoDB + drivers en SUSE Linux SLES 10, algunos apuntes
- Esquema de datos NoSQL para el análisis de logs de acceso a Internet
- Inserciones masivas en MongoDB: sangre, sudor y lágrimas
- MongoDB vs MySQL: Inserción de datos
- MongoDB vs MySQL: Tests de lectura multiusuario
- MongoDB vs MySQL: Tests de escritura multiusuario
- MongoDB vs MySQL: Tests de lectura y escritura combinados
- MongoDB vs MySQL: Tests de agregación
- Comparativa MongoDB vs MySQL: Conclusiones
Comentarios
Jefferson Arcos#
Felicitaciones por este proyecto tan interesante… pense que nadie aun habia hecho algo como esto… de verdad me ayudara mucho en mi tesis de grado porque precisamente realizare un analisis comparativo entre el NoSQL y el modelo relacional Muchas Gracias porque tu trabajo me guiara un poco en lo que hare.
Ciges#
Gracias, Jefferson. Encantado de que te sirva
Échale un vistazo a la memoria, que describe todo el trabajo que he hecho (los posts de la web que indico sólo cuentan una pequeño parte). En la memoria y en este post tienes unos cuantos enlaces a artículos que me han servido para aclararme las ideas.
En la web de 10gen (el fabricabte de MongoDB) tienen también algunas presentaciones muy ilustrativas sobre el diseño de esquemas NoSQL.
¡Ánimo con la tesis!
Alonso Isidoro Roman#
Queria felicitarte por tu trabajo, muy útil, has visto el proyecto spring-data? tiene un modulo para poder usar mongodb a la manera de spring.
http://www.springsource.org/spring-data/mongodb
PD
Yo tmb estuve trabajando una temporada en PSA/Peugeot en Madrid, buenos tiempos…
Ciges#
Pues no, no lo conocía. Aunque en alguna ocasión he usado con Spring no trabajo con Java habitualmente (en mi departamento somos más bien de PHP)
Es lógico que el acceso a MongoDB (y otros sistemas NoSQL) se vayan integrando en los distintos frameworks de acceso a datos.
Tomo nota y gracias por la info!
Añadir comentarios ...