Подтвердить что ты не робот

Каковы наилучшие способы использования хранилищ документов?

Я слышал много о хранилищах данных, ориентированных на документы, таких как CouchDB. Я понимаю использование BigTable, например, таких как Cassandra. Прочитав этот вопрос, мне было интересно, какие условия будут заслуживать, используя хранилище документов?

4b9b3361

Ответ 1

Столбцовые магазины, такие как Bigtable и Cassandra, имеют очень ограниченные возможности запросов. Приложение отвечает за поддержание индексов для запроса более сложной модели данных.

Базы данных документов позволяют запрашивать контент, а не только ключ. Он также будет управлять индексами для вас, уменьшая сложность вашего приложения.

Проект, управляемый доменом, благословляет использование агрегатов и объектов ценности. Как указывает Айенде, (сложные) агрегаты являются очень естественными кандидатами, которые должны храниться как единый документ, а не нормализуя их по нескольким таблицам или семействам столбцов, Это уменьшит сложность вашего уровня персистентности. Там также меньше шансов, что связанные данные будут разбросаны по нескольким узлам, так как все данные содержатся в одном документе.

Если вашему приложению необходимо хранить полиморфные объекты, базы данных документов также являются хорошим кандидатом. Конечно, это также можно было бы сохранить в Cassandra, но у вас не будет столько запросов. По крайней мере, не из коробки.

Подумайте о базе данных документов как о роскошном спортивном автомобиле. Ему не нужен профессиональный драйвер (читай: сложное приложение), чтобы достать вас от A до B, у него есть такие функции, как кондиционер и удобные сиденья, и в течение приемлемого времени он будет крутить дорожку с высокой масштабируемостью. Однако, если вы хотите установить запись круга на дорожке с высокой масштабируемостью, вам понадобится профессиональный драйвер и высоко оптимизированный автомобиль (например, Cassandra), в котором отсутствуют такие функции, как кондиционер.

Ответ 2

Еще одна особенность CouchDB заключается в том, что вы можете создавать эти агрегирования, а не как документы, хранящиеся вручную, а как представления (которые получены из сохраненных данных и обновляются автоматически).

Это похоже на электрические стеклоподъемники, обогреваемые сиденья или стук стерео.