2010-07-31 22 views

risposta

29

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.

+1

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

9

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.

+0

Bumping Naughty by Nature ovviamente – JasonSmith

Problemi correlati