NoSql Crash Course / Tutorial [fermé]


100

J'ai vu NoSQL apparaître un peu sur SO et j'ai une solide compréhension de la raison pour laquelle vous l'utiliseriez (à partir d'ici, Wikipedia, etc.). Cela pourrait être dû au manque de définition concrète et uniforme de ce qu'il est (plus un paradigme qu'une mise en œuvre concrète), mais j'ai du mal à comprendre comment je pourrais concevoir un système qui l'utiliserait ou comment Je l'implémenterais dans mon système. Je suis vraiment coincé dans un état d'esprit relationnel-db pensant aux choses en termes de tables et de jointures ...

En tout cas, est-ce que quelqu'un connaît un cours intensif / tutoriel sur un système qui l'utiliserait (sorte de "bonjour le monde" pour un système basé sur NoSQL) ou un tutoriel qui utilise une application "Hello World" existante basée sur SQL et le convertit en NoSQL (pas nécessairement en code, mais juste une explication de haut niveau).


J'ai vraiment aimé cette vidéo . Est un webinaire de 10Gen. Il explique comment publier du contenu de base et ajouter des interactions sociales (balises, commentaires, agrégation de données) à l'aide de MongoDB.
Onema

Réponses:



53

Dans sa forme la plus élémentaire, NoSQL n'est en réalité qu'un moyen de stocker des objets en utilisant une sorte de système d'appariement clé / valeur. Vous l'utilisez tout le temps déjà, je suppose. Par exemple. en javascript, vous pouvez créer un objet nommé foo, puis foo['myobj'] = myobj;stocker des éléments dans l'objet.

Tout ce que les serveurs NoSQL font vraiment est de vous donner un moyen d'ajouter / supprimer / interroger des tableaux massifs tout en permettant la persistance et la tolérance aux pannes. Vous pouvez créer un serveur NoSQL en mémoire sur environ 100 lignes de code.

Alors faisons-le de cette façon ... dans CouchDB, vous utilisez map / Reduce ... alors créons une fonction de carte faisant la même chose qu'un peu de code SQL:

SELECT * FROM users WHERE age > 10

Dans CouchDB, vous fournissez au serveur une fonction JavaScript qui s'exécute sur chaque élément de la base de données ...

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

C'est tout ce qu'il y a vraiment à faire ..... cela devient beaucoup plus complexe à partir de là du côté du serveur, car le serveur doit gérer des plantages et plusieurs révisions du même objet, mais ce n'est qu'un exemple.


10
Votre exemple semble inefficace dans une grande base de données. Le serveur peut-il indexer sur le type de document ou être intelligent sur les clés qu'il utilise et indexer sur les clés? Comme les clés pourraient être user1, user2, etc.
Jess

3

Jetez un œil à cette vidéo de DNR TV, en faisant quelques travaux pratiques avec MongoDB . Ça pourrait être bien pour une première introduction.



1

y_serial est écrit comme un module Python unique qui se lit comme un didacticiel fonctionnel et comprend de nombreux conseils et références: http://yserial.sourceforge.net/

Cela prend la perspective de la persistance d'un objet Python arbitraire (par exemple une structure de données de dictionnaire) d'une manière "NoSQL" (pas seulement SQL).





En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.