Curso intensivo de NoSql / tutorial [cerrado]


100

He visto NoSQL aparecer bastante en SO y tengo una sólida comprensión de por qué lo usaría (desde aquí, Wikipedia, etc.). Esto podría deberse a la falta de una definición concreta y uniforme de lo que es (más un paradigma que una implementación concreta), pero estoy luchando para entender cómo diseñaría un sistema que lo usaría o cómo Lo implementaría en mi sistema. Estoy realmente atrapado en una mentalidad de base de datos relacional pensando en las cosas en términos de tablas y combinaciones ...

En cualquier caso, ¿alguien sabe de un curso intensivo / tutorial sobre un sistema que lo usaría (una especie de "hola mundo" para un sistema basado en NoSQL) o un tutorial que toma una aplicación "Hola mundo" existente basada en SQL? y lo convierte a NoSQL (no necesariamente en código, sino solo una explicación de alto nivel).


Me gustó mucho este video . Es un seminario web de 10Gen. Explica cómo publicar contenido básico y agregar interacciones sociales (etiquetas, comentarios, agregación de datos) usando MongoDB.
Onema

Respuestas:



53

En su forma más básica, NoSQL no es más que una forma de almacenar objetos usando algún tipo de sistema de emparejamiento clave / valor. Usas esto todo el tiempo, supongo. Por ejemplo. en javascript puede crear un objeto llamado foo y luego hacer foo['myobj'] = myobj;para almacenar cosas en el objeto.

Todo lo que los servidores NoSQL realmente hacen es brindarle una forma de agregar / eliminar / consultar matrices masivas y aún permitir la persistencia y la tolerancia a fallas. Puede crear un servidor NoSQL en memoria en aproximadamente 100 líneas de código.

Así que hagámoslo de esta manera ... en CouchDB usa map / reduce ... así que creemos una función de mapa que haga lo mismo que un poco de código SQL:

SELECT * FROM users WHERE age > 10

En CouchDB le proporciona al servidor una función de JavaScript que se ejecuta en cada elemento de la base de datos ...

function (doc)
{
    if (doc.objType == "users") {
       if (doc.age > 10) {
           emit(doc._id, null)
       }
    }
}

Eso es todo lo que hay que hacer ... se vuelve mucho más complejo a partir de ahí en el extremo del servidor, ya que el servidor tiene que manejar fallas y múltiples revisiones del mismo objeto, pero esto es solo un ejemplo.


10
Su ejemplo parece que sería ineficiente en una gran base de datos. ¿Puede el servidor indexar el tipo de documento o ser inteligente con las claves que usa e indexar las claves? Las claves similares podrían ser user1, user2, etc.
Jess

3

Eche un vistazo a este video de DNR TV, haciendo algunas prácticas con MongoDB . Podría ser bueno para una primera presentación.



1

y_serial está escrito como un único módulo de Python que se lee como un tutorial funcional e incluye muchos consejos y referencias: http://yserial.sourceforge.net/

Esto toma la perspectiva de cómo conservar un objeto Python arbitrario (por ejemplo, una estructura de datos de diccionario) en una forma "NoSQL" (no solo SQL).





Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.