Ho sentito parlare molto di archivi di dati orientati ai documenti come CouchDB. Capisco gli usi di BigTable come i negozi come Cassandra. Dopo aver letto this question, mi chiedevo quali sarebbero le condizioni per meritare l'utilizzo di un negozio di documenti?Quali sono gli usi migliori degli archivi di documenti?
risposta
I magazzini a colonne come Bigtable e Cassandra dispongono di funzionalità di query molto limitate. L'applicazione è responsabile della gestione degli indici per eseguire query su un modello di dati più complesso.
I database di documenti consentono di eseguire query sul contenuto, non solo sulla chiave. Gestirà anche gli indici per te, riducendo la complessità della tua applicazione.
Domain-driven design evangelizza l'uso di aggregati e oggetti di valore. As Ayende points out, gli aggregati (complessi) sono candidati molto naturali da memorizzare come documento singolo, anziché normalizzarli su più tabelle o famiglie di colonne. Ciò ridurrà la complessità del tuo livello di persistenza. Ci sono anche meno possibilità che i dati correlati siano sparsi su più nodi, poiché tutti i dati sono contenuti in un singolo documento.
Se l'applicazione deve memorizzare oggetti polimorfici, i database di documenti sono anche un buon candidato. Ovviamente, questo potrebbe anche essere memorizzato in Cassandra, ma non si avranno così tante capacità di interrogazione. Almeno non fuori dalla scatola.
Pensate a un database di documenti come una lussuosa auto sportiva. Non ha bisogno di un driver professionale (leggi: applicazione complessa) per farti passare da A a B, ha caratteristiche come l'aria condizionata e posti comodi e gira la traccia ad alta scalabilità in un tempo accettabile. Tuttavia, se si desidera impostare un record sul giro sulla traccia ad alta scalabilità, è necessario un autista professionale e un'auto altamente ottimizzata (ad esempio Cassandra), che manca di funzionalità come l'aria condizionata.
Un'altra caratteristica di CouchDB è che si può creare quelle aggregazioni, non come i documenti memorizzati manualmente, ma come viste (che sono derivate dai dati memorizzati, e aggiornato automaticamente.)
Questo è come alzacristalli elettrici, riscaldati posti, o il kicking stereo.
Bumping Naughty by Nature ovviamente – JasonSmith
- 1. Quali sono gli usi del buffer circolare?
- 2. Quali sono gli usi comuni di UDP?
- 3. Quali sono gli usi dei generi polimorfici?
- 4. Quali sono alcuni usi interessanti per gli agenti Java?
- 5. Quali sono gli usi positivi dei moduli in pacchetto OCaml?
- 6. Quali sono tutti gli usi di '@' in C#?
- 7. Quali sono gli usi del predicato di errore in Prolog?
- 8. Quali sono gli usi popolari e contemporanei di Perl?
- 9. Quali sono gli usi pratici di un costruttore protetto?
- 10. Quali sono gli usi di iter (callable, sentinel)?
- 11. Quali sono gli usi corretti di @NonNull e @Nullable?
- 12. Quali sono i migliori componenti di Boost?
- 13. Quali sono gli usi esatti del termine REALM in sicurezza?
- 14. Quali sono gli usi pratici del modulo (%) nella programmazione?
- 15. Quali sono gli usi positivi della proprietà css `content`?
- 16. Quali sono gli usi del membro get() dalla classe shared_ptr?
- 17. Quali sono gli usi delle funzioni virtuali pure in C++?
- 18. Quali sono alcuni usi intelligenti di LINQ?
- 19. Quali sono i migliori documenti per conoscere gli algoritmi per comunicare gli aggiornamenti in un sistema distribuito?
- 20. Quali sono le migliori caratteristiche di Scala?
- 21. Quali varianti di stringa inversa sono migliori?
- 22. Quali sono le migliori risorse per i modelli di progettazione e i loro usi?
- 23. Magazzini di famiglia di colonne vs archivi di documenti
- 24. Quali sono alcuni usi dei metadati Clojure?
- 25. Cosa sono i campionatori di ombre in OpenGL e quali sono gli usi possibili per loro?
- 26. Quali sono le migliori pratiche MEF?
- 27. Quali sono le migliori alternative a Lucene?
- 28. Ci sono ORM (OKM) per gli archivi di valori-chiave?
- 29. Quali sono gli intrinsechi?
- 30. Quali sono gli usi pratici del modello di metodo di fabbrica?
Ehi, che bella descrizione! L'unica cosa che vorrei aggiungere è che CouchDB vuole essere l'accordo Honda dei database, non della Ferrari. Comunque penso che siano metafore diverse, solo collegate per coincidenza. – JasonSmith