NoSql Crash Course / Tutorial [chiuso]


100

Ho visto NoSQL apparire un po 'su SO e ho una solida comprensione del motivo per cui dovresti usarlo (da qui, Wikipedia, ecc.). Ciò potrebbe essere dovuto alla mancanza di una definizione concreta e uniforme di cosa sia (più un paradigma che un'implementazione concreta), ma sto lottando per capire come farei a progettare un sistema che lo usi o come Lo implementerei nel mio sistema. Sono davvero bloccato in una mentalità relazionale che pensa alle cose in termini di tabelle e join ...

In ogni caso, qualcuno sa di un corso intensivo / tutorial su un sistema che lo utilizzerebbe (una specie di "hello world" per un sistema basato su NoSQL) o di un tutorial che utilizza un'app "Hello World" esistente basata su SQL e lo converte in NoSQL (non necessariamente in codice, ma solo una spiegazione di alto livello).


Mi è piaciuto molto questo video . È un webinar di 10Gen. Spiega come pubblicare contenuti di base e aggiungere interazioni sociali (tag, commenti, aggregazione di dati) utilizzando MongoDB.
Onema

Risposte:



53

Nella sua forma più elementare NoSQL non è altro che un modo per memorizzare oggetti usando una sorta di sistema di accoppiamento chiave / valore. Lo usi già tutto il tempo, presumo. Per esempio. in javascript puoi creare un oggetto chiamato foo e poi fare foo['myobj'] = myobj;per memorizzare cose nell'oggetto.

Tutto ciò che i server NoSQL fanno davvero è darti un modo per aggiungere / eliminare / interrogare array di grandi dimensioni e consentire comunque persistenza e tolleranza ai guasti. È possibile creare un NoSQL nel server di memoria in circa 100 righe di codice.

Quindi facciamolo in questo modo ... in CouchDB usi map / reduce ... quindi creiamo una funzione map come un po 'di codice SQL:

SELECT * FROM users WHERE age > 10

In CouchDB fornisci al server una funzione JavaScript che viene eseguita su ogni elemento nel database ...

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

Questo è tutto quello che c'è in realtà ..... diventa molto più complesso da lì sul lato server, poiché il server deve gestire arresti anomali e revisioni multiple dello stesso oggetto, ma questo è solo un esempio.


10
Il tuo esempio sembra che sarebbe inefficiente in un grande DB. Il server può indicizzare sul tipo di documento o essere intelligente riguardo alle chiavi che utilizza e indicizzare sulle chiavi? Ad esempio, le chiavi potrebbero essere utente1, utente2, ecc.
Jess

3

Dai un'occhiata a questo video di DNR TV, mentre fai un po 'di pratica con MongoDB . Potrebbe essere carino per una prima introduzione.



1

y_serial è scritto come un singolo modulo Python che si legge come un tutorial funzionante e include molti suggerimenti e riferimenti: http://yserial.sourceforge.net/

Questo prende la prospettiva di come persistere un oggetto Python arbitrario (ad esempio una struttura dati del dizionario) in un modo "NoSQL" (non solo SQL).





Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.