Sono un noob completo quando si tratta del movimento NoSQL. Ho sentito molto su MongoDB e CouchDB. So che ci sono differenze tra i due. Quale raccomandi l'apprendimento come primo passo nel mondo NoSQL?
Sono un noob completo quando si tratta del movimento NoSQL. Ho sentito molto su MongoDB e CouchDB. So che ci sono differenze tra i due. Quale raccomandi l'apprendimento come primo passo nel mondo NoSQL?
Risposte:
Vedi i link seguenti
Aggiornamento : ho trovato un ottimo confronto tra i database NoSQL .
MongoDB (3.2)
Utilizzo ottimale : se hai bisogno di query dinamiche. Se si preferisce definire gli indici, non mappare / ridurre le funzioni. Se hai bisogno di buone prestazioni su un database di grandi dimensioni. Se volevi CouchDB, ma i tuoi dati cambiano troppo, riempiendo i dischi.
Ad esempio : per la maggior parte delle cose che faresti con MySQL o PostgreSQL, ma avere colonne predefinite ti trattiene davvero.
CouchDB (1.2)
Utilizzo ottimale : per accumulare e modificare occasionalmente i dati su cui devono essere eseguite le query predefinite. Luoghi in cui il controllo delle versioni è importante.
Ad esempio : CRM, sistemi CMS. La replica master-master è una funzionalità particolarmente interessante, che consente facili implementazioni su più siti.
Se vieni dal mondo MySQL, MongoDB ti "sentirà" molto più naturale grazie al suo supporto linguistico simile a una query.
Penso che sia ciò che lo rende così amichevole per molte persone.
CouchDB è fantastico se si desidera utilizzare l'ottimo supporto di replica master-master con una configurazione multi-nodo, possibilmente in diversi data center o qualcosa del genere.
La replica di MongoDB (set di repliche) è un'impostazione master-slave-slave-slave- *, puoi solo scrivere sul master in un set di repliche e leggere da qualsiasi di esse.
Per una configurazione del sito standard, va bene. Si abbina molto bene all'utilizzo di MySQL.
Ma se stai cercando di creare un servizio globale come un CDN che deve mantenere sincronizzati tutti i nodi globali anche se leggi / scrivi a tutti loro, qualcosa come la replica in CouchDB sarà un grande vantaggio per te.
Mentre MongoDB ha un linguaggio simile a una query che puoi usare e sembra molto intuitivo, CouchDB adotta un approccio di "riduzione della mappa" e questo concetto di visualizzazioni. All'inizio sembra strano, ma man mano che lo si prende, inizia davvero a sentirsi intuitivo.
Ecco una rapida panoramica, quindi ha un senso:
Quindi entrambe queste fonti usano documenti JSON, ma CouchDB segue questo approccio "ogni server è un maestro e può sincronizzarsi con il mondo" che è fantastico se ne hai bisogno, mentre MongoDB è davvero il MySQL del mondo NoSQL.
Quindi, se suona più come quello di cui hai bisogno / desideri, provalo.
Piccole differenze come il protocollo binario di Mongo e l'interfaccia RESTful di CouchDB sono tutti dettagli minori.
Se vuoi la velocità pura e l'inferno con la sicurezza dei dati, puoi far funzionare Mongo più velocemente di CouchDB in quanto puoi dire che funziona senza memoria e non commette cose sul disco tranne che per intervalli sparsi.
Puoi fare lo stesso con Couch, ma il suo protocollo di comunicazione basato su HTTP sarà 2-4x più lento della comunicazione binaria grezza con Mongo in questa "velocità su tutto!" scenario.
Tieni presente che la folle velocità folle è inutile se un crash del server o un errore del disco corrompe e brucia il tuo DB nell'oblio, quindi quel punto di dati non è così sorprendente come potrebbe sembrare (a meno che tu non stia facendo sistemi di trading in tempo reale su Wall Street, nel qual caso guarda Redis).
Spero che tutto aiuti!
Ora ci sono molti più database NoSQL sul mercato che mai. Suggerisco anche di dare un'occhiata al Quadrante magico di Gartner se stai cercando un database che sarà anche ottimo per le applicazioni aziendali basate su supporto, espandibilità, gestione e costi.
http://www.gartner.com/technology/reprints.do?id=1-23A415Q&ct=141020&st=sb
Vorrei suggerire Couchbase a chiunque non l'abbia ancora provato, ma non in base alla versione mostrata nel rapporto (2.5.1) perché ci sono quasi 2 revisioni dietro a dove si trova CB Server oggi, vicino alla versione 4.0 in 2H15 .
http://www.couchbase.com/coming-in-couchbase-server-4-0
L'altra parte di Couchbase come fornitore / prodotto è che si tratta di un tipo di DB multiuso. Può fungere da puro archivio K / V, Document Oriented Database con ridimensionamento multidimensionale, Memcached, cache-side con persistenza e supporta SQL conforme ANSI 92 con join automatici, replica in cluster DR con la semplice pressione di un pulsante e ha persino un componente mobile incorporato nell'ecosistema.
Se non altro, vale la pena dare un'occhiata agli ultimi benchmark:
http://info.couchbase.com/Benchmark_MongoDB_VS_CouchbaseServer_HPW_BM.html http://info.couchbase.com/NoSQL-Technical-Comparison-Report.html