Je suis un noob complet en ce qui concerne le mouvement NoSQL. J'ai beaucoup entendu parler de MongoDB et de CouchDB. Je sais qu'il y a des différences entre les deux. Que recommandez-vous d'apprendre comme première étape dans le monde NoSQL?
Voir les liens suivants
Mise à jour : J'ai trouvé très bien comparaison de NoSQL bases de données.
MongoDB (3.2)
Utilisation optimale : Si vous avez besoin de requêtes dynamiques. Si vous préférez définir des index, ne mappez pas/ne réduisez pas les fonctions. Si vous avez besoin de bonnes performances sur une grosse base de données. Si vous vouliez CouchDB, mais que vos données changent trop, remplissant les disques.
Par exemple : Pour la plupart des choses que vous feriez avec MySQL ou PostgreSQL, mais avoir des colonnes prédéfinies vous retient vraiment.
CouchDB (1.2)
Utilisation optimale : Pour accumuler, en modifiant occasionnellement, des données sur lesquelles des requêtes prédéfinies doivent être exécutées. Endroits où la gestion des versions est importante.
Par exemple : CRM, systèmes CMS. La réplication maître-maître est une fonctionnalité particulièrement intéressante, permettant des déploiements faciles sur plusieurs sites.
Si vous venez du monde MySQL, MongoDB "se sentira" beaucoup plus naturel pour vous en raison de la prise en charge de son langage de type requête.
Je pense que c'est ce qui le rend si amical pour beaucoup de gens.
CouchDB est fantastique si vous souhaitez utiliser le support vraiment formidable de réplication maître-maître avec une configuration multi-nœuds, éventuellement dans différents centres de données ou quelque chose du genre.
La réplication de MongoDB (jeux de réplicas) est une configuration maître-esclave-esclave-esclave-*. Vous ne pouvez écrire sur le maître que dans un jeu de réplicas et en lire l'un quelconque.
Pour une configuration de site standard, c'est très bien. Cela correspond très bien à l'utilisation de MySQL.
Toutefois, si vous essayez de créer un service global, tel qu'un CDN, qui doit conserver tous les nœuds mondiaux synchronisés, même en lecture/écriture, la réplication dans CouchDB sera un avantage considérable pour vous.
Alors que MongoDB a un langage de type requête que vous pouvez utiliser et qui semble très intuitif, CouchDB adopte une approche de "réduction de carte" et ce concept de vues. Cela semble étrange au début, mais au fur et à mesure que vous maîtrisez la situation, vous commencez à vous sentir intuitif.
Voici un aperçu rapide pour que cela ait du sens:
Donc, ces deux sources utilisent des documents JSON, mais CouchDB suit cette approche plus "chaque serveur est un maître et peut se synchroniser avec le monde", ce qui est fantastique si vous en avez besoin, alors que MongoDB est vraiment le MySQL du monde NoSQL.
Donc, si cela ressemble plus à ce dont vous avez besoin/envie, allez-y.
Les petites différences comme le protocole binaire de Mongo et l'interface RESTful de CouchDB sont des détails mineurs.
Si vous voulez une vitesse brute et que vous aimez la sécurité des données, vous pouvez faire fonctionner Mongo plus rapidement que CouchDB car vous pouvez lui indiquer de fonctionner en mémoire insuffisante et non commis des choses sur le disque sauf pour les intervalles clairsemés.
Vous pouvez faire la même chose avec Couch, mais son protocole de communication basé sur HTTP sera 2 à 4 fois plus lent que la communication binaire brute avec Mongo dans cette "vitesse sur tout!" scénario.
Gardez à l'esprit qu'une vitesse folle et insensée est inutile si une panne de serveur ou une défaillance de disque corrompt et fait basculer votre base de données dans un oubli, de sorte que le point de données n'est pas aussi étonnant qu'il y parait Street, dans ce cas, regardez Redis).
J'espère que tout aide!
Il existe maintenant beaucoup plus de bases de données NoSQL sur le marché que jamais auparavant. Je suggère même de jeter un coup d'œil au quadrant magique Gartner si vous recherchez une base de données qui conviendra également aux applications d'entreprise basée sur le support, l'évolutivité, la gestion et les coûts.
http://www.gartner.com/technology/reprints.do?id=1-23A415Q&ct=141020&st=sb
Je voudrais suggérer Couchbase à tous ceux qui ne l’ont pas encore essayé, mais qui ne sont pas basés sur la version présentée dans le rapport (2.5.1), car il ya près de deux révisions par rapport à CB Server aujourd’hui, la publication de la version 4.0 étant prévue dans 2H15. .
http://www.couchbase.com/coming-in-couchbase-server-4-
L'autre aspect de Couchbase en tant que fournisseur/produit est qu'il s'agit d'un type de base de données multi-usage. Il peut servir de magasin K/V pur, de base de données orientée document avec mise à l’échelle multidimensionnelle, Memcached, de cache-apart avec persistance, et prend en charge la norme SQL conforme à la norme ANSI 92 avec les jointures automatiques, la réplication en clusters DR avec la pression d’un bouton, et a même un composant mobile intégré à l'écosystème.
Si rien d'autre, cela vaut la peine de consulter les derniers points de repère:
http://info.couchbase.com/Benchmark_MongoDB_VS_CouchbaseServer_HPW_BM.htmlhttp://info.couchbase.com/NoSQL-Technical-Comparison-Report.html
Les vidéos Edureka sur youtube concernant NoSQL font partie des meilleurs tutoriels vidéo. J'ai commencé sur MongoDb & Cassandra après avoir visionné ces vidéos.
https://www.youtube.com/watch?v=gJFG04Sy6NY
https://www.youtube.com/watch?v=KSq6tMMXZ8s
https://www.youtube.com/watch?v=3z1KFA2qcSo
De bonnes présentations sont disponibles sur slideshare.net
http://www.slideshare.net/quipo/nosql-databases-why-what-and-when?qid=3bb9f7f6-a53d-41b1-8403-cd6f181d0ca7&v=qf1&b=&from_search=1
http://www.slideshare.net/EdurekaIN/no-sql-databases-35591065?qid=f1b9c095-6d70-4d0a-91da-1df664c4f389&v=qf1&b=&from_search=3
La présentation Edureka dans Slideshare est une extension de la vidéo sur youtube. Vous pouvez traiter cette présentation comme un résumé de la vidéo youtube.