Я слышал много о хранилищах данных, ориентированных на документы, таких как CouchDB. Я понимаю использование BigTable, например, таких как Cassandra. Прочитав this question, мне было интересно, какие условия будут заслуживать, используя хранилище документов?Каковы наилучшие способы использования хранилищ документов?
ответ
Магазины колонок, такие как Bigtable и Cassandra, имеют очень ограниченные возможности запросов. Приложение отвечает за поддержание индексов для запроса более сложной модели данных.
Базы данных документов позволяют запрашивать контент, а не только ключ. Он также будет управлять индексами для вас, уменьшая сложность вашего приложения.
Domain-driven design евангелизирует использование агрегатов и объектов ценности. As Ayende points out, (комплексные) агрегаты являются очень естественными кандидатами для хранения в виде единого документа, вместо нормализации их по нескольким таблицам или семействам столбцов. Это уменьшит сложность вашего уровня персистентности. Также меньше шансов, что связанные данные будут разбросаны по нескольким узлам, так как все данные содержатся в одном документе.
Если вашему приложению необходимо хранить полиморфные объекты, базы данных документов также являются хорошим кандидатом. Конечно, это также можно было бы сохранить в Cassandra, но у вас не будет столько запросов. По крайней мере, не из коробки.
Подумайте о базе данных документов как о роскошном спортивном автомобиле. Ему не нужен профессиональный драйвер (читай: сложное приложение), чтобы достать вас от A до B, у него есть такие функции, как кондиционер и удобные сиденья, и в течение приемлемого времени он будет крутить дорожку с высокой масштабируемостью. Однако, если вы хотите установить запись круга на дорожке с высокой масштабируемостью, вам понадобится профессиональный драйвер и высоко оптимизированный автомобиль (например, Cassandra), в котором отсутствуют функции, такие как кондиционирование воздуха.
Другой особенностью CouchDB является то, что вы можете создать эти скопления, а не документы хранятся вручную, но мнения (которые получены из сохраненных данных, и обновляется автоматически.)
Это как электрические стеклоподъемники, подогрев сидений или ножного стерео.
Bumping Naughty от природы, конечно, – JasonSmith
- 1. Каковы наилучшие способы использования SQL Profiler
- 2. Каковы наилучшие способы написания документов XUL для дополнения Firefox?
- 3. Каковы наилучшие способы хранения этих данных?
- 4. Каковы наилучшие способы поддержания времени сервера
- 5. Каковы наилучшие способы автоматизации сеанса отладки GDB?
- 6. Каковы наилучшие способы предотвращения SQLInjection в CodeIgniter
- 7. Каковы наилучшие способы поиска в журналах?
- 8. Каковы наилучшие преимущества использования Pinax?
- 9. Наилучшие способы повторного использования методов Java
- 10. Каковы наилучшие способы связывания @ Html.DropDownListFor в ASP.NET MVC5?
- 11. Каковы способы использования атомных путей?
- 12. Каковы варианты использования нереляционных хранилищ данных?
- 13. Каковы наилучшие способы повышения производительности KineticJS, особенно на мобильных устройствах?
- 14. Каковы наилучшие стратегии использования нескольких библиотек AJAX?
- 15. Каковы наилучшие методы использования hbm2java Hibernate?
- 16. Каковы наилучшие методы использования ассемблеров сборки?
- 17. Каковы наилучшие методы использования AJAX с DataGrids?
- 18. Каковы наилучшие сценарии использования Windows Workflow?
- 19. Каковы наилучшие методы использования CSS3/JS/jQuery?
- 20. Скрытые способы клонирования git-хранилищ?
- 21. Каковы наилучшие способы избежать проблем с памятью в iOS?
- 22. Каковы наилучшие способы определения того, какой порт используется приложением?
- 23. Каковы наилучшие способы предотвращения вашего фишинга на вашем сайте?
- 24. Каковы наилучшие способы редактирования кода? (в реальном времени)
- 25. Каковы наилучшие способы избавиться от несущественных входных нейронов?
- 26. Каковы наилучшие способы получения данных JSON по запросу?
- 27. Каковы наилучшие способы управления памятью на большой петле PHP?
- 28. Каковы наилучшие методы взаимодействия языков?
- 29. Каковы наилучшие способы использования десятичных знаков и datetimes с буферами протоколов?
- 30. Каковы наилучшие методы авторизации?
Эй, какое приятное описание! Единственное, что я хотел бы добавить, это то, что CouchDB нацелен на то, чтобы быть Honda Accord баз данных, а не Ferrari. Однако я думаю, что они разные метафоры, только связанные по совпадению. – JasonSmith