2012-08-29 17 views
8

Ho sentito molti database di chiavi/valori di nosql online ora. Puoi dare un esempio di ciò per cui sei usato. Che tipo di dati del mondo reale sono i migliori per questo tipo di database?Che cosa sono i database NoSql Key/Value utilizzati per

+0

Non capisco il downvote? Questa è una domanda valida, non è vero? –

risposta

5

Penso che "What the heck are you actually using NoSQL for" sia una lettura eccellente per i casi di utilizzo della vita reale per i database NoSQL. Permettetemi di citare alcuni di loro qui:

  • gestione di grandi flussi di dati non transazionale: log di Apache, registri di applicazione, i log di MySQL, clickstream, ecc

  • sincronizzazione dati online e offline. Questa è una nicchia che CouchDB ha preso di mira. Tempi di risposta rapidi sotto tutti i carichi.

  • Evitare i join pesanti per quando il carico della query per i join complessi diventa troppo grande per un RDBMS.

  • Sistemi soft real-time in cui la bassa latenza è fondamentale. I giochi sono un esempio.

  • Applicazioni in cui è necessario supportare un'ampia varietà di diversi modelli di scrittura, lettura, interrogazione e coerenza. Esistono sistemi ottimizzati per il 50% di letture scritte al 50%, scritture al 95% o letture al 95%.

  • Applicazioni di sola lettura che richiedono estrema velocità e resilienza, semplici query e possono tollerare dati leggermente obsoleti.

  • Applicazioni che richiedono prestazioni moderate, accesso in lettura/scrittura, query semplici, completamente dati autorevoli.

  • Applicazione di sola lettura con requisiti di query complessi.

  • Bilanciamento del carico per contenere i dati e le concentrazioni di utilizzo e per mantenere occupato il microprocessore.

  • Inserimenti, aggiornamenti e query in tempo reale.

  • Dati gerarchici come discussioni discussioni e esplosione di parti.

  • Creazione di tabelle dinamiche.

  • Applicazioni a due livelli in cui i dati a bassa latenza sono resi disponibili tramite un'interfaccia veloce NoSQL, ma i dati stessi possono essere calcolati e aggiornati mediante applicazioni Hadoop ad alta latenza o altre app a bassa priorità.

  • Lettura sequenziale dei dati. È necessario selezionare il modello di archiviazione dati sottostante. Un albero B potrebbe non essere il miglior modello per letture sequenziali.

  • Affettare parte del servizio che potrebbe richiedere prestazioni e scalabilità migliori sul proprio sistema. Ad esempio, potrebbe essere necessario che gli accessi utente siano ad alte prestazioni e questa funzione potrebbe utilizzare un servizio dedicato per raggiungere tali obiettivi.

  • Caching. Un livello di caching ad alte prestazioni per siti Web e altre applicazioni. Esempio è una cache per il sistema di aggregazione dei dati utilizzato dal Large Hadron Collider.

  • Voto.

  • Contatori visualizzazione pagina in tempo reale.

  • Registrazione utente, profilo e dati di sessione.

  • Documenti, gestione cataloghi e sistemi di gestione dei contenuti. Questi sono facilitati dalla possibilità di archiviare documenti complessi che hanno un insieme piuttosto che organizzati come tabelle relazionali. Logica simile si applica a inventario, carrelli della spesa e altri tipi di dati strutturati.

  • Archiviazione. Memorizzazione di un grande flusso continuo di dati che è ancora accessibile on-line.

  • Database orientati ai documenti con uno schema flessibile in grado di gestire le modifiche dello schema nel tempo.

  • Analisi. Utilizzare MapReduce, Hive o Pig per eseguire query analitiche e sistemi di scalabilità che supportano elevati carichi di scrittura.

+0

Grazie ... ho pensato che fosse possibile utilizzarlo per il mio prossimo progetto, ma immagino di no. Penso che un database grafico potrebbe essere più appropriato. ancora grazie per la tua spiegazione – Luke101

Problemi correlati