J'ai beaucoup entendu parler des magasins de données axés sur les documents comme CouchDB. Je comprends les utilisations de BigTable comme les magasins tels que Cassandra. Après avoir lu this question, je me demandais quelles seraient les conditions pour mériter l'utilisation d'un magasin de documents?Quelles sont les meilleures utilisations des magasins de documents?
Répondre
Les mémoires de famille de colonnes telles que Bigtable et Cassandra ont des capacités d'interrogation très limitées. L'application est responsable de la maintenance des index afin d'interroger un modèle de données plus complexe.
Les bases de données de documents vous permettent d'interroger le contenu, pas seulement la clé. Il gérera également les index pour vous, réduisant la complexité de votre application.
Domain-driven design évangélise l'utilisation d'agrégats et d'objets de valeur. As Ayende points out, les agrégats (complexes) sont des candidats très naturels à stocker en tant que document unique, au lieu de les normaliser sur plusieurs tables ou familles de colonnes. Cela réduira la complexité de votre couche de persistance. Il y a également moins de chances que les données associées soient dispersées sur plusieurs nœuds, car toutes les données sont contenues dans un seul document.
Si votre application a besoin de stocker des objets polymorphes, les bases de données de documents sont également un bon candidat. Bien sûr, cela pourrait également être stocké dans Cassandra, mais vous n'aurez pas autant de possibilités d'interrogation. Au moins pas hors de la boîte. Pensez à une base de documents comme une voiture de sport de luxe. Il n'a pas besoin d'un pilote professionnel (lire: application complexe) pour vous rendre de A à B, il dispose de fonctionnalités telles que la climatisation et des sièges confortables et il va roder la piste à haute évolutivité dans un temps acceptable. Toutefois, si vous voulez définir un enregistrement de tour sur la piste à haute évolutivité, vous aurez besoin d'un pilote professionnel et d'une voiture hautement optimisée (par exemple Cassandra), qui manque de fonctionnalités telles que la climatisation.
Une autre caractéristique de CouchDB est que vous pouvez créer ces agrégations, et non comme des documents stockés manuellement, mais que des vues (qui proviennent des données stockées et mises à jour automatiquement.)
C'est comme vitres électriques, chauffage sièges, ou la stéréo coup de pied.
Bumping méchant par nature bien sûr – JasonSmith
- 1. Quelles sont les utilisations acceptables de goto?
- 2. Quelles sont les utilisations légitimes des crochets de clavier globaux?
- 3. Quelles sont les utilisations des métadonnées de Clojure?
- 4. Quelles sont les meilleures pratiques pour écrire des documents de conception détaillés?
- 5. Quelles sont les meilleures fonctionnalités de Scala?
- 6. Quelles sont les utilisations intéressantes pour les agents Java?
- 7. Quelles sont certaines des meilleures pratiques Sharepoint?
- 8. Quelles sont les meilleures pratiques SOA/BPEL?
- 9. Quelles sont les utilisations de la portée "flash" dans JSF?
- 10. Combien et quelles sont les utilisations de "const" en C++?
- 11. Quelles sont les meilleures pratiques OOoBasic?
- 12. Ruby stdio consts et globals, quelles sont les utilisations?
- 13. Quelles sont les utilisations pratiques du fichier resx?
- 14. Quelles sont les meilleures méthodologies de développement distribuées pour sharepoint?
- 15. Quelles sont les meilleures pratiques de développement GUI iPAD
- 16. Quelles sont vos meilleures pratiques CoreLocation?
- 17. Quelles sont les utilisations des paramètres de modèle de modèle en C++?
- 18. Quelles sont les meilleures pratiques pour gérer les informations sensibles?
- 19. Quelles sont les meilleures pratiques pour les URL publiques «privées»?
- 20. Quelles sont les meilleures extensions de Visual Studio?
- 21. Quelles sont les meilleures pratiques pour les dépôts Kiln?
- 22. quelles sont les utilisations des différentes opérations de jointure dans sql
- 23. nServiceBus et la sécurité: quelles sont les meilleures pratiques?
- 24. Quelles sont les meilleures façons d'utiliser le SQL Profiler
- 25. Quelles sont les meilleures pratiques pour surveiller DelayedJob?
- 26. Structuremap et références, quelles sont les meilleures pratiques?
- 27. Quelles sont les meilleures pratiques pour la diffusion d'images?
- 28. Quelles sont les meilleures interfaces Nagios open source?
- 29. MSBuild, solution VS2008 et CI - quelles sont les meilleures pratiques?
- 30. Quelles sont les meilleures pratiques dans vos tests?
Hey, quelle belle description! La seule chose que j'ajouterais, c'est que CouchDB vise à être la Honda Accord des bases de données, pas la Ferrari. Cependant, je pense que ce sont des métaphores différentes, seulement liées par coïncidence. – JasonSmith