Usi del database NoSQL nella scienza dei dati


16

Come si possono utilizzare database NoSQL come MongoDB per l'analisi dei dati? Quali sono le funzionalità che possono rendere l'analisi dei dati più veloce e potente?


2
L'uso principale è l'archiviazione e il recupero dei dati. In realtà, questo è l'unico uso per un database NOSQL o qualsiasi database. Vuoi migliorare la tua domanda?
Spaziato

Sì, il database viene utilizzato principalmente per l'archiviazione e il recupero dei dati. Come possono essere utilizzati per l'analisi dei dati? Quali sono gli strumenti integrati nei database NOSQL come mongodb che rende l'analisi dei dati semplice e potente?
jithinjustin,

1
Migliora la tua domanda modificandola, non aggiungendo ai commenti.
Spaziato

Risposte:


23

Ad essere sinceri, la maggior parte dei database NoSQL non sono molto adatti alle applicazioni nei big data. Per la stragrande maggioranza di tutte le applicazioni di big data, le prestazioni di MongoDB rispetto a un database relazionale come MySQL sono significativamente scarse abbastanza da giustificare la totale assenza di MongoDB.

Detto questo, ci sono un paio di proprietà davvero utili dei database NoSQL che sicuramente funzionano a tuo favore quando lavori con grandi set di dati, anche se la possibilità di quei benefici supera le prestazioni generalmente scarse di NoSQL rispetto a SQL per read- le operazioni intensive (più simili ai tipici casi d'uso dei big data) sono basse.

  • Nessuno schema : se stai lavorando con molti dati non strutturati, potrebbe essere difficile decidere effettivamente e applicare rigidamente uno schema. I database NoSQL in generale lo supportano molto e ti permetteranno di inserire al volo documenti senza schema, che certamente non è qualcosa che un database SQL supporterà.
  • JSON - Se ti capita di lavorare con documenti in stile JSON anziché confile CSV , vedrai molti vantaggi nell'usare qualcosa come MongoDB per un livello di database. In genere, tuttavia, i risparmi sul flusso di lavoro non superano i tempi di query aumentati.
  • Facilità d'uso - Non sto dicendo che i database SQL siano sempre difficili da usare, o che Cassandra sia la cosa più semplice al mondo da configurare, ma in generale i database NoSQL sono più facili da configurare e utilizzare rispetto ai database SQL. MongoDB ne è un esempio particolarmente forte, noto per essere uno dei livelli di database più facili da usare (al di fuori di SQLite ). SQL si occupa anche di un sacco di normalizzazione e c'è una grande eredità di best practice SQL che in genere ostacola il processo di sviluppo.

Personalmente potrei suggerire di consultare anche database di grafici come Neo4j che mostrano prestazioni davvero buone per determinati tipi di query se stai cercando di scegliere un backend per le tue applicazioni di data science.


Hai ragione. I database NOSQL vengono utilizzati principalmente per l'archiviazione di dati non strutturati o semi-strutturati come json. Puoi spiegare alcuni dei tipi di analisi dei dati che possiamo fare con loro. Quali sono gli strumenti integrati in mongodb che possono essere utilizzati per l'analisi dei dati?
jithinjustin,

1
@jithinjustin non esistono strumenti di analisi dei dati integrati in mongo o in nessun database. Inoltre, jsonsono dati totalmente strutturati. È possibile eseguire tecnicamente qualsiasi tipo di analisi dei dati su di esso, utilizzando un database NOSQL in realtà non è correlato. Ci sono strumenti costruiti su mongo, come analytica però.
indico,

1
Non lo so. MongoDB può funzionare meglio di MySQL. Avresti un argomento migliore se dicessi PostgreSQL (che, a proposito, può accettare JSON). Ad ogni modo, non considererei alcune "prestazioni" arbitrarie (non sappiamo quale sia il caso d'uso) come motivo per non usare NoSQL. Inoltre, non effettuare sconti utilizzando più database. Ricorda, MongoDB ha incredibili funzionalità di aggregazione che SQL non ha.
Tom,

1
@Tom sulle prestazioni, scoprirai che l'unica attività su cui mongo supera effettivamente mysql sono gli inserti ( moredevs.ro/mysql-vs-mongodb-performance-benchmark ), che è una parte relativamente piccola dell'analisi dei dati. Le funzionalità di aggregazione di SQL sono MOLTO più mature di quelle di Mongo. Per quanto riguarda MYSQL rispetto a Postgres, i numeri sono molto distorti ed entrambi tendono ad offrire prestazioni simili. MYSQL è più comune, motivo per cui l'ho menzionato invece, ma i due sono abbastanza simili.
indico,

Ho sempre visto prestazioni migliori su MongoDB quando le cose si adattano alla memoria. Prendo benchmark con un guadagno di sale perché se cerchi un po 'su Google troverai un sacco di benchmark che mostrano MongoDB più velocemente. Dipende davvero dalle tue esigenze. Detto questo, per aiutare a rispondere alla domanda originale, penso che ci siano molti usi per NoSQL nella scienza e nell'analisi dei big data.
Tom,


4

Prendi in considerazione, prova e forse utilizza anche più database. Qui non è solo un problema di "esibizione". Veramente si ridurrà alle tue esigenze. Di quanti dati stai parlando? che tipo di dati? quanto velocemente ne hai bisogno? Leggi di più pesante o scrivi pesante?

Ecco una cosa che non puoi fare in un database SQL: Calcola il sentimento. http://www.slideshare.net/shift8/mongodb-machine-learning

Naturalmente la velocità in quel caso potrebbe non essere abbastanza veloce per le tue esigenze, ma è qualcosa che è possibile. Con una certa memorizzazione nella cache di valori aggregati specifici, era addirittura accettabile. Perché dovresti farlo? Convenienza.

La convenienza è davvero qualcosa che ti farà convincere. Questo è esattamente il motivo per cui (a mio avviso) sono stati creati database NoSQL. Anche le prestazioni ovviamente, ma sto cercando di scontare i benchmark e concentrarmi maggiormente su altre preoccupazioni.

I database MongoDB (e alcuni altri NoSQL) hanno alcune funzionalità molto potenti come la mappa / riduzione integrata. Ciò potrebbe comportare un risparmio sia in termini di costi che di tempo usando qualcosa come Hadoop. Oppure potrebbe fornire un prototipo o MVP per avviare un'attività più ampia.

Che dire dei database dei grafici? Sono anche "NoSQL". Guarda database come OrientDB. Se vuoi discutere delle prestazioni ... Non penso che mi mostrerai un database SQL che è più veloce lì =) ... e i database grafici hanno un'applicazione davvero incredibile basata su ciò che devi fare.

La regola della tecnologia (e di Internet) non è troppo comoda per una cosa. Sarai limitato e ti preparerai per il fallimento.


1
Non vedo nulla in quel link o qui che dimostri che non puoi fare analisi del sentiment in un database SQL. gli esempi mongoDB beneficiano di Javascript nel DB, quindi è possibile utilizzare qualsiasi linguaggio incorporato in un database SQL. Ad esempio Postgres + R.
Spacedman il

Mi piacerebbe vedere dove è possibile eseguire il codice e mappare / ridurre in quei database. In tutta serietà (soprattutto Postgres). ... e anche se tu potessi, ciò non rende comunque la risposta meno valida. Uno semplicemente potrebbe voler usare NoSQL. Funziona
Tom,

1
Postgres + C, Python, Perl, R, alimentano il tuo DB Postgres negli ultimi algoritmi di machine learning. Facile: postgresql.org/docs/9.0/static/xplang.html
Spacedman

Bello. Dovrò provarlo qualche volta. Che ne dici di MySQL?
Tom,
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.