Il vantaggio principale di un database relazionale è la capacità di correlare e indicizzare le informazioni. La maggior parte dei sistemi 'NoSQL' non fornisce un'algebra relazionale o un ottimo linguaggio di interrogazione.
Quello che devi chiederti è, la commutazione ha senso per il mio caso d'uso previsto?
Hai perso il punto. Il punto è che a volte non hai un indice (nel modo in cui lo fai con un DB relazionale generale comunque). Anche quando hai un indice, la capacità di metterlo insieme è difficile e su quali basi di dati relazionali eccellono. Le soluzioni NoSQL hanno una serie di nuove strutture che rendono banalmente facili molti casi di utilizzo, ad es. Redis è un DB orientato alla struttura dati adatto per la creazione rapida di qualsiasi cosa con le code o la sua architettura pub-sub. MongoDB è un database di documenti a forma libera che archivia documenti come JSON (BSON) ed eccelle in rapido sviluppo. Le soluzioni BigTable sono un po 'meno strutturate, ma amplia l'idea di una riga per avere famiglie di colonne - coppie di valori chiave contenute in ogni riga disposte in modo efficiente su disco. Puoi costruire un indice invertito con una tecnologia come ElasticSearch.
Non tutto ha bisogno delle garanzie di coerenza o del layout del disco di un RDBMS tradizionale. Un altro importante caso d'uso di NoSQL è la massiccia scalabilità, molte soluzioni (ad es. BigTable - HBase/Cassandra) sono progettate per dividere e ridimensionare in orizzontale facilmente (non così facile con SQL!). Cassandra in particolare è progettato senza SPOF. Inoltre, i datastore orientati alle colonne sono pensati per ottimizzare le velocità del disco tramite letture sequenziali (e ridurre write-amplification). Detto questo, a meno che non ne abbia davvero bisogno, un server SQL tradizionale è generalmente abbastanza buono.
Ci sono vantaggi e svantaggi. Personalmente, uso un mix di entrambi. Utilizzare lo strumento giusto per il lavoro giusto, che può finire per essere PostgreSQL o MySQL il più delle volte.
È possibile associare un sistema di valori-chiave di base a una tabella SQL con due colonne, una chiave univoca e un valore. Questo è abbastanza veloce. Non hai bisogno di fare alcuna relazione o correlazione o raccolta di dati. Basta trovare il valore e restituirlo. Questa è una semplificazione eccessiva, i database NoSQL hanno molte funzionalità e applicazioni interessanti oltre ai semplici negozi K, V.
Non so se i dati scientifici siano adatti alla maggior parte delle implementazioni NoSQL, che dipendono dai dati. Se guardi HBase o Cassandra, potrebbe adattarsi alle esigenze di uno scienziato (con una corretta progettazione di riga di comando - il timestamp non deve essere il primo, controlla OpenTSDB). Conosco molte aziende che memorizzano le letture dei sensori in Cassandra utilizzando un partizionatore casuale per ordine e l'UUID del sensore per riportare le letture in file di grassi giornalieri. Ogni giorno vengono creati nuovi database intorno a casi d'uso specifici, in modo che la risposta possa cambiare. Per casi d'uso specifici, è possibile ottenere enormi vantaggi per l'utilizzo di datastore specifici a spese di flessibilità e strumenti.
perché si desidera "... sostituire un database relazionale che utilizzo". ?? –
perché la quantità di dati che verranno presto archiviati (quando un nuovo gruppo che sta arrivando a bordo inizia a inviare automaticamente i dati dai propri strumenti) apparentemente renderà il sistema molto lento. – Ankur
Un database relazionale correttamente configurato, su un buon hardware sarà in grado di far fronte alla maggior parte dei carichi. –