He estado escuchando mucho sobre tiendas de datos orientadas a documentos como CouchDB. Entiendo los usos de BigTable como tiendas como Cassandra. Después de leer this question, me preguntaba cuáles serían las condiciones para merecer el uso de una tienda de documentos.¿Cuáles son los mejores usos de las tiendas de documentos?
Respuesta
Las tiendas de familias de columnas como Bigtable y Cassandra tienen capacidades de consulta muy limitadas. La aplicación es responsable de mantener los índices para consultar un modelo de datos más complejo.
Las bases de datos de documentos le permiten consultar el contenido, no solo la clave. También administrará los índices por usted, reduciendo la complejidad de su aplicación.
Domain-driven design evangeliza el uso de agregados y objetos de valor. As Ayende points out, los agregados (complejos) son candidatos muy naturales para almacenarse como un solo documento, en lugar de normalizarlos en múltiples tablas o familias de columnas. Esto reducirá la complejidad de su capa de persistencia. También hay menos posibilidades de que los datos relacionados estén dispersos en múltiples nodos, ya que todos los datos están contenidos en un solo documento.
Si su aplicación necesita almacenar objetos polimórficos, las bases de datos de documentos también son un buen candidato. Por supuesto, esto también podría almacenarse en Cassandra, pero no tendrás tantas capacidades de consulta. Al menos no fuera de la caja.
Piense en una base de datos documental como un lujoso automóvil deportivo. No necesita un controlador profesional (léase: aplicación compleja) para llevarlo de A a B, tiene características como aire acondicionado y asientos cómodos y cubrirá la pista de escalabilidad alta en un tiempo aceptable. Sin embargo, si desea establecer un registro de vuelta en la pista de escalabilidad alta, necesitará necesita un controlador profesional y un automóvil altamente optimizado (por ejemplo, Cassandra), que carece de características tales como aire acondicionado.
Otra característica de CouchDB es que se puede crear esas agregaciones, no como documentos almacenados de forma manual, sino como puntos de vista (que se derivan de los datos almacenados y actualizados automáticamente.)
Esto es como elevalunas eléctricos, con calefacción asientos, o el estéreo de patear.
Bumping Naughty by Nature por supuesto – JasonSmith
- 1. ¿Cuáles son los usos comunes de UDP?
- 2. ¿Cuáles son los usos de Cross Join?
- 3. ¿Cuáles son los usos de buffer circular?
- 4. ¿Cuáles son los usos de svn copy?
- 5. ¿Cuáles son los usos de las subrutinas lvalue en Perl?
- 6. ¿Cuáles son los mejores componentes de Boost?
- 7. ¿Cuáles son los buenos usos de los módulos empaquetados OCaml?
- 8. ¿Cuáles son las mejores características de Scala?
- 9. ¿Cuáles son los usos de los tipos polimórficos?
- 10. ¿Cuáles son los diferentes usos de los [corchetes] en Ruby?
- 11. Índices MySQL: ¿cuáles son las mejores prácticas?
- 12. ¿Cuáles son los usos de funciones virtuales puras en C++?
- 13. ¿Cuáles son los usos del código de auto modificación?
- 14. ¿Cuáles son algunos de los usos inteligentes de LINQ?
- 15. ¿Cuáles son algunos usos de los metadatos de Clojure?
- 16. ¿Cuáles son algunos usos de los cierres para OOP?
- 17. ¿Cuáles son las mejores alternativas a Lucene?
- 18. ¿Cuáles son los usos de la construcción C++ "placement new"?
- 19. ¿Cuáles son los usos prácticos de Factory Method Pattern?
- 20. Iron Python: cuáles son los buenos usos de Iron Python
- 21. ¿Cuáles son todos los usos de '@' en C#?
- 22. ¿Cuáles son los usos del predicado de falla en Prolog?
- 23. ¿Cuáles son los usos prácticos de un constructor protegido?
- 24. ¿Cuáles son algunos usos interesantes para los agentes de Java?
- 25. ¿Cuáles son sus mejores prácticas para los proyectos de backbone.js?
- 26. ¿Cuáles son los mejores documentos para aprender sobre algoritmos para comunicar actualizaciones en un sistema distribuido?
- 27. ¿Cuáles son los usos inusuales y creativos del lienzo html5
- 28. ¿Cuáles son los usos prácticos del módulo (%) en la programación?
- 29. ¿Cuáles son las mejores formas de bloquear aplicaciones de Android?
- 30. ¿Cuáles son las mejores prácticas para repositorios de horno?
¡Qué bonita descripción! Lo único que agregaría es que CouchDB pretende ser el Honda Accord de bases de datos, no el Ferrari. Sin embargo, creo que son metáforas diferentes, solo relacionadas por coincidencia. – JasonSmith