Desde hace un tiempo vengo investigando sobre los distintos sistemas NoSQL que se están volviendo tan de moda (?) últimamente, todo esto por el documento que Google liberó ya hace un tiempo acerca de su monstruo tras cortinas (Bigtable).
esto del NoSQL es un termino, según la wikipedia
usado en informática para agrupar una serie de almacenes de datos no relacionales que no proporcionan garantías ACID
en pocas palabras, no hay ninguna sentencia SQL, olvídate de las queridas Transacciones y lentos SELECT, INSERT, UPDATE, DELETE etc para consultar los datos que hayas almacenado. Es aqui donde viene lo bueno, pues (hasta donde he visto) estos sistemas tampoco almacenan la información en tablas como las que todos conocemos, sino, en grafos, documentos , clave=>valor y quien sabe de que otras formas!
pues bien, para poder dar mi aporte me di a la tarea de investigar los distintos tipos de sistemas de gestión de bases de datos nosql, encontrándome así una buena cantidad de proyectos libres (como nos gustan) dedicándose al 100% a este tema, por nombrar algunos
Redis
Tokyo Cabinet (recomendado por un profe :) y mi tema de investigación por ahora )
Cassandra (el que usa el FB pero ya liberado w00w, mantenido por la gente de Apache)
Hypertable
Neo4j
MongoDB
El mejor repositorio que he encontrado hasta el momento acerca de todo este movimiento se encuentra en myNoSQL acá encontrarás mucha información al respecto, en ingles claro.
Después de todo lo leído e intentando recrear un modelo mental sobre todo esto, sobre como modelar toda una base de datos usando solo un key=>value, sobre como organizar un simple sistema de usuarios por ejemplo, no me ha quedado mas que empezar con las pruebas claro.
Luego de escribir una pequeñisima aplicación utilizando Tokyo Cabinet y Python (de la cual hablaré en un próximo post) me he dado cuenta que, definitivamente este es el camino a seguir, que ya es hora de entrar en las grandes ligas y dejar a un lado los problemas de rendimiento de los joins, los store procedures, los triggers, que el estándar sql de Oracle, que el de Postgre, que el de Sql Server etc. Entre otros tantos inconvenientes que se presentan al escalar una aplicación que usa un modelo relacional.
Personalmente, apesar de que pienso que este es el camino a seguir, siento que aun falta muchisima documentación la cual es la clave para el exito en todo este mundillo, talvez haya mucho en ingles, pero y en español ?? algun repositorio por ahi ??
Comments powered by Disqus